[Qemu-devel] Re: [PATCH v6 0/4] piix_pci: optimize irq data path

2011-03-28 Thread Michael S. Tsirkin
On Tue, Mar 29, 2011 at 12:05:26AM +0900, Isaku Yamahata wrote:
 Here is v6 which fixed piix3_set_irq_pic().
 
 4/4 needs more extensive tests. So please feel free to pick it up now or
 drop it for now.

Could you pls clarify how did you test and which patches?

 patch description:
 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.
 
 Changes v5 - v6:
 - fixed piix3_set_irq_pic()
 
 Changes v4 - v5:
 - typo
 
 Changes v3 - v4:
 - use pirq, pci_intx instead of irq_num in piix_pci.c
 - use symbolic constant PIC_NUM_PINS
 - introduced new patch 4/4 which cleans up a bit.
 
 Changes v2 - v3:
 - s/dummy_for_save_load_compat/pci_irq_levels_vmstate/g
 - move down unused member of pci_irq_levels_vmstate in the structure
   for cache efficiency
 
 Changes v1 - v2:
 - addressed review comments.
 
 Isaku Yamahata (4):
   pci: add accessor function to get irq levels
   piix_pci: eliminate PIIX3State::pci_irq_levels
   piix_pci: optimize set irq path
   piix_pci: load path clean up
 
  hw/pci.c  |7 +++
  hw/pci.h  |1 +
  hw/piix_pci.c |  129 
 ++---
  3 files changed, 112 insertions(+), 25 deletions(-)



[Qemu-devel] Re: [PATCH v6 0/4] piix_pci: optimize irq data path

2011-03-28 Thread Michael S. Tsirkin
On Tue, Mar 29, 2011 at 12:05:26AM +0900, Isaku Yamahata wrote:
 Here is v6 which fixed piix3_set_irq_pic().
 
 4/4 needs more extensive tests. So please feel free to pick it up now or
 drop it for now.
 
 patch description:
 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.

This doesn't apply on top of my pci branch.
I;ve pushed that out, could you rebase to that please?
Also pls let me know what was tested.

 Changes v5 - v6:
 - fixed piix3_set_irq_pic()
 
 Changes v4 - v5:
 - typo
 
 Changes v3 - v4:
 - use pirq, pci_intx instead of irq_num in piix_pci.c
 - use symbolic constant PIC_NUM_PINS
 - introduced new patch 4/4 which cleans up a bit.
 
 Changes v2 - v3:
 - s/dummy_for_save_load_compat/pci_irq_levels_vmstate/g
 - move down unused member of pci_irq_levels_vmstate in the structure
   for cache efficiency
 
 Changes v1 - v2:
 - addressed review comments.
 
 Isaku Yamahata (4):
   pci: add accessor function to get irq levels
   piix_pci: eliminate PIIX3State::pci_irq_levels
   piix_pci: optimize set irq path
   piix_pci: load path clean up
 
  hw/pci.c  |7 +++
  hw/pci.h  |1 +
  hw/piix_pci.c |  129 
 ++---
  3 files changed, 112 insertions(+), 25 deletions(-)