On Sun, Oct 16, 2011 at 8:41 AM, Michael Lotz <mmlr@xxxxxxxx> wrote: > Instead we should make sure that drivers that > could but currently don't use MSIs get updated. The FreeBSD > compatibility layer we have for network drivers already supports MSIs > and makes use of them under Haiku. Also, where possible, the link > devices are already configured in a way that they avoid sharing BTW. I've been looking for something useful I could do to learn about Haiku's kernel architecture. Do you know which drivers that are already (mostly) working, that could use MSIs but don't? Once I figure out how to update just one driver to use MSIs, updating the rest should not be hard. > A rather simple optimization to the interrupt handler that could be > done however, would be to reorder the installed interrupt handler list > so that handlers who service the most interrupts end up at the top of > the list (this only applies where multiple interrupt handlers are > installed of course). This would reduce the average interrupt handling > latency by avoiding to call into the handler routine of drivers that > only receive interrupts more rarely. That's something else I could contribute when I learn more about the kernel. Do you know where the code is that maintains the interrupt handler list? I could start just by collecting some statistics. If they were output to userspace somehow, or periodically spit out the serial port, the simplest thing would be to re-order certain interrupt handlers by editing the source code. More advanced would be to do it adaptively, at runtime. -- Don Quixote de la Mancha Dulcinea Technologies Corporation Software of Elegance and Beauty http://www.dulcineatech.com quixote@xxxxxxxxxxxxxxxx