linux kernel - Process Hung due to scheduler time-out in Multi-Core system -
we have isr can executed on of available cores , may result success or failure condition based on whether core busy or free.in handler, queue work on work queues per core using queue_work_on() function.for each core, queue_work_on() function called , based on return values of queue_work_on(), how can pass isr return values irq_handled, irq_none
how handle when 1 of queue_work_on function fails , how return isr value.
hope provided enough context view on it.
edit:
scenario more like: have e.g. 1024 queues consumed multiple processes performing offload function host driver. after submitting offload, process gets blocked wait_for_completion() call , ideally should awaken completion notification. in driver offloaded rings enqueued , based on offload success, isr notifies worker threads dequeue rings jobs , trigger completion event. see more no of completion event waiting processes resulting in process hung task_uniterruptible state resulting in scheduler timeout. need pointers deploy possible synchronisation in multi-core system
when interrupt request comes device, must not return irq_none
. consequence of kernel thinks device's interrupt line stuck, , disables device.
if not know on cpu core queue work, use queue_work()
next free core.
Comments
Post a Comment