Hi,
On Sun Nov 22, 2015 at 22:10:33 +0800, li94575 wrote:
hello Adam, I also have a question about the Interrupt mechanism in l4linux. I want to move some interrupts to specified cpu core. When I try to write to "/proc/irq/*/smp_affinity" with cpu bitmask, it will call the function l4lx_irq_dev_set_affinity(), which attachs the irq to corresponding vcpu thread. After that, I find the irq is still staying on previous cpu core through linux proc system. So I doubt whether linux proc filesystem's view is synchronized with the interrupt settings of the L4 kernel, or it can not be achieved in l4linux? (I use genode for the runtime environment of fiasco.oc)
The l4lx_irq_dev_set_affinity function is called by Linux interrupt handling code, i.e. I think all the book keeping shall be done by the Linux code, including the output of /proc/interrupts. You should check in the jdb to which thread the interrupt is attached. You can see this in the object list, use shift-Q to see it. With CONFIG_L4_DEBUG_REGISTER_NAMES=y enabled in L4Linux, you'll have proper descriptions of the objects, so you'll find the interrupt you're looking for: irqXX with XX being the same number as in /proc/interrupts. Then, look for the T= value of that particular interrupt, it points to the thread the interrupt is attached to. Pressing TAB brings you to the thread in the list. Is it the right one?
Adam