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

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -