On Thu, Mar 17, 2011 at 10:49:50PM +0900, Isaku Yamahata wrote: > This patch series optimizes irq data path of piix_pci. > So far piix3 tracks each pirq level and checks whether a given pic pins is > asserted by seeing if each pirq is mapped into the pic pin. > This is independent on irq routing, but data path is on slow path. > > Given that irq routing is rarely changed and asserting pic pins is on > data path, the path that asserts pic pins should be optimized and > chainging irq routing should be on slow path. > The new behavior with this patch series is to use bitmap which is addressed > by pirq and pic pins with a given irq routing. > When pirq is asserted, the bitmap is set and see if the pic pins is > asserted by checking the bitmaps. > When irq routing is changed, rebuild the bitmap and re-assert pic pins. > > Isaku Yamahata (3): > pci: add accessor function to get irq levels > piix_pci: eliminate PIIX3State::pci_irq_levels > piix_pci: optimize set irq path > > hw/pci.c | 7 +++ > hw/pci.h | 1 + > hw/piix_pci.c | 126 > ++++++++++++++++++++++++++++++++++++++++++++++++--------- > 3 files changed, 115 insertions(+), 19 deletions(-)
Thanks, I'll apply 1-2, 3 can be improved a bit but nothing major so if you are busy I can apply as is and we can add fixups on top. Let me know. -- MST