[haiku-development] Re: Free irq

  • From: "Michael Lotz" <mmlr@xxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 16 Oct 2011 20:29:12 +0200

Don Quixote de la Mancha <quixote@xxxxxxxxxxxxxxxx> wrote:
> Do you know which drivers that are already (mostly) working, that
> could use MSIs but don't?

I wouldn't know off hand. You'd need to check the hardware for MSI 
support and then look at the drivers. Looking through the PCI dump on 
this machine there'd be HDA, the integrated graphics, AHCI, the two 
network adapters and xHCI. The network adapters use FreeBSD drivers, so 
they already do MSIs, xHCI isn't far enough along, but HDA and AHCI 
would be nice candidates.

It's really not all that difficult to do. The basic driver architecture 
doesn't change at all, just the way the interrupt vector is determined 
and how the interrupt handler is eventually reached are different.

> I could start just by collecting some statistics.  If they were output
> ...

Don't overthink it. This is more in the order of a couple of minutes 
change. The handled stats are already kept by the interrupt code. 
Evaluating the list order after each X interrupts on that vector and 
just moving the linked list entries accordingly. In either case the 
code would be in src/system/kernel/int.cpp.

Regards
Michael

Other related posts: