R65777 at freescale.com
Wed Mar 20 01:55:05 EST 2013
request_irq_percpu() is defined in kernel/irq/manage.c, this takes a percpu pointer which will be unique based upon on which cpu the handler executes.
So, it looks like we can use this to have multiple bottom half interrupt handler executing at same time on different CPU and each can handle this independently.
Flow will be like:
-- Interrupt occurs on CPU1 - handler save some context for bottom half and then clears the interrupt condition, and return (in between the interrupt affinity will be moved to next CPU in round robin fashion).
-- CPU 1 executing its bottom half.
-- Again interrupt occurs, which will come on CPU 2
-- CPU 2 handler similar to CPU1 and so on.
This way multiple similar bottom half can run at same time on different CPU
More information about the Linuxppc-dev