Re: Help with a driver im writing.



Tasklets don't interfere each other on single CPU with non-preemeptable
kernel. You may put the real read opreation into other tasklet and in
IRQ just to schedule it. If interrupt happens during a write
operation, read will be defered. But if your hardware dosen't support
this, for example, hardware clears data after receive a acknowledgement
from CPU, you may have to check write state before perform a read
operation. And If write operation is uninterruptable, you may have to
put it into a critical section with interrupt off anyway.

--Peter Z

.



Relevant Pages

  • [PATCH 20/25] irq: Generalize the check for HARDIRQ_BITS.
    ... This patch adds support for systems that cannot receive every interrupt ... on a single cpu simultaneously, in the check to see if we have enough HARDIRQ_BITS. ... This patch adds support for systems that cannot receive every interrupt on ...
    (Linux-Kernel)
  • Re: [RFC PATCH 0/6] Convert all tasklets to workqueues
    ... All my interrupt handler does is read out the ... event mask and schedule the appropriate tasklets. ... so moving it to a workqueue is pretty pointless. ... Scheduling is pretty cheap, ...
    (Linux-Kernel)