DragonFly BSD
DragonFly kernel List (threaded) for 2005-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: mtd_cpl question


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 2 Jun 2005 09:37:28 -0700 (PDT)

    I've been thinking more about MSI and the CPL... that issue of dealing
    with more then 32 interrupt vectors, and I think I've come up with a
    solution.

    As we begin to remove the CPL/SPL support we are still left with the
    issue of how to record interrupt events which cannot be immediately
    dispatched.  Right now we have 'ipending', 'fpending', and so forth
    for that.

    This is going to require two steps:

    * We have to remove CPL/SPL support entirely.

    * Instead of setting a bit in e.g. gd_ipending when an interrupt cannot
      be immediately processed, I will take a page from an embedded project
      I did 20 years ago were I used a tail-chasing FIFO to simply record
      the event.

    This will remove our dependancy on IRQ bitmasks entirely and make it a
    whole lot easier to implement e.g. MSI.

    I will do #1 today, simply by replacing all current SPL operations with
    a critical section.

    #2 will take a bit longer because I want to move as much of our current
    interrupt code assembly into C code as I can.

						-Matt



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]