linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PATCH 0/14] xen: events: cleanups + ween off nr_irqs
@ 2011-03-09 17:40 Ian Campbell
  2011-03-09 17:41 ` [PATCH 01/14] xen: events: separate two unrelated halves of if condition Ian Campbell
                   ` (13 more replies)
  0 siblings, 14 replies; 30+ messages in thread
From: Ian Campbell @ 2011-03-09 17:40 UTC (permalink / raw)
  To: xen-devel, linux-kernel
  Cc: Konrad Rzeszutek Wilk, Jeremy Fitzhardinge, Stefano Stabellini

The following series makes a few cleanups to the Xen IRQ infrastructure.
The most important thing is that it removes the need to know about
nr_irqs and in particular the reliance on nr_irqs being static.

Apart from being generally a good thing this is needed because in 2.6.39
nr_irqs will be able to grow dynamically, specifically e7bcecb7b1d2
"genirq: Make nr_irqs runtime expandable" from tip/core/irq is targeted
at 2.6.39.

Dynamically growing nr_irqs also allows us to remove the workaround
which eats into GSI space if a dynamic IRQ cannot be allocated.

There is no ideal sequencing of this series vs e7bcecb7b1d2 (most should
have gone in before, but the penultimate patch really needed to be
simultaneous) so I haven't bothered to try and pull anything from tip
into this branch -- it should all be resolved during the merge window
and bisection won't be too broken since the "eat into GSI space"
workaround only appears to be needed on a small number of older
platforms (qemu being the main exception).

I have tested:
      * Domain 0 on real h/w and under qemu
      * PV guest, including migration and passthrough of both VF and PF.
      * PVHVM guest, including migration and passthrough of both VF and
        PF.

The git pull is a branch on top of konrad/stable/irq.cleanup. However
there is an interaction with konrad/devel/xen-pciback-0.4.driver (the
addition of the domid parameter) so for convenience I have also produced
an irq-pciback branch at the same location which has
konrad/devel/xen-pciback-0.4.driver merged into this branch.

Note that this series obsoletes an older patcho f mine "xen: events:
mark cpu_evtchn_mask_p as __refdata" by virtue of removing the code in
question...

The following changes since commit c5ae07bb307b658c8458f29ca77d237aec0f9327:
  Ian Campbell (1):
        xen: events: remove dom0 specific xen_create_msi_irq

are available in the git repository at:

  git://xenbits.xen.org/people/ianc/linux-2.6.git irq

Ian Campbell (14):
      xen: events: separate two unrelated halves of if condition
      xen: events: fix xen_map_pirq_gsi error return
      xen: events: simplify comment
      xen: events: remove unused public functions
      xen: events: rename restore_cpu_pirqs -> restore_pirqs
      xen: events: refactor GSI pirq bindings functions
      xen: events: use per-cpu variable for cpu_evtchn_mask
      xen: events: turn irq_info constructors into initialiser functions
      xen: events: push setup of irq<->{evtchn,ipi,virq,pirq} maps into irq_info init functions
      xen: events: maintain a list of Xen interrupts
      xen: events: dynamically allocate irq info structures
      xen: events: remove use of nr_irqs as upper bound on number of pirqs
      xen: events: do not workaround too-small nr_irqs
      xen: events: propagate irq allocation failure instead of panicking

 arch/x86/pci/xen.c   |   40 ++++--
 drivers/xen/events.c |  357 ++++++++++++++++++++++++++------------------------
 include/xen/events.h |   24 ++--
 3 files changed, 225 insertions(+), 196 deletions(-)



^ permalink raw reply	[flat|nested] 30+ messages in thread
* [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs
@ 2011-03-10 16:07 Ian Campbell
  2011-03-10 16:08 ` [PATCH 09/14] xen: events: push setup of irq<->{evtchn,ipi,virq,pirq} maps into irq_info init functions Ian Campbell
  0 siblings, 1 reply; 30+ messages in thread
From: Ian Campbell @ 2011-03-10 16:07 UTC (permalink / raw)
  To: xen-devel, linux-kernel
  Cc: Jeremy Fitzhardinge, Stefano Stabellini, Konrad Rzeszutek Wilk

Changes since last time:
      * correct return value of xen_irq_from_pirq
      * WARN if a pirq cannot be allocated for a legacy IRQ
      * Updated checking comment of "xen: events: do not workaround
        too-small nr_irqs"

The following series makes a few cleanups to the Xen IRQ infrastructure.
The most important thing is that it removes the need to know about
nr_irqs and in particular the reliance on nr_irqs being static.

Apart from being generally a good thing this is needed because in 2.6.39
nr_irqs will be able to grow dynamically, specifically e7bcecb7b1d2
"genirq: Make nr_irqs runtime expandable" from tip/core/irq is targeted
at 2.6.39.

Dynamically growing nr_irqs also allows us to remove the workaround
which eats into GSI space if a dynamic IRQ cannot be allocated.

There is no ideal sequencing of this series vs e7bcecb7b1d2 (most should
have gone in before, but the penultimate patch really needed to be
simultaneous) so I haven't bothered to try and pull anything from tip
into this branch -- it should all be resolved during the merge window
and bisection won't be too broken since the "eat into GSI space"
workaround only appears to be needed on a small number of older
platforms (qemu being the main exception).

I have tested:
      * Domain 0 on real h/w and under qemu
      * PV guest, including migration and passthrough of both VF and PF.
      * PVHVM guest, including migration and passthrough of both VF and
        PF.

The git pull is a branch on top of konrad/stable/irq.cleanup. However
there is an interaction with konrad/devel/xen-pciback-0.4.driver (the
addition of the domid parameter) so for convenience I have also produced
an irq-pciback branch at the same location which has
konrad/devel/xen-pciback-0.4.driver merged into this branch.

Note that this series obsoletes an older patcho f mine "xen: events:
mark cpu_evtchn_mask_p as __refdata" by virtue of removing the code in
question...

The following changes since commit c5ae07bb307b658c8458f29ca77d237aec0f9327:
  Ian Campbell (1):
        xen: events: remove dom0 specific xen_create_msi_irq

are available in the git repository at:

  git://xenbits.xen.org/people/ianc/linux-2.6.git irq

Ian Campbell (14):
      xen: events: separate two unrelated halves of if condition
      xen: events: fix xen_map_pirq_gsi error return
      xen: events: simplify comment
      xen: events: remove unused public functions
      xen: events: rename restore_cpu_pirqs -> restore_pirqs
      xen: events: refactor GSI pirq bindings functions
      xen: events: use per-cpu variable for cpu_evtchn_mask
      xen: events: turn irq_info constructors into initialiser functions
      xen: events: push setup of irq<->{evtchn,ipi,virq,pirq} maps into irq_info init functions
      xen: events: maintain a list of Xen interrupts
      xen: events: dynamically allocate irq info structures
      xen: events: remove use of nr_irqs as upper bound on number of pirqs
      xen: events: do not workaround too-small nr_irqs
      xen: events: propagate irq allocation failure instead of panicking

 arch/x86/pci/xen.c   |   41 ++++--
 drivers/xen/events.c |  357 ++++++++++++++++++++++++++------------------------
 include/xen/events.h |   24 ++--
 3 files changed, 226 insertions(+), 196 deletions(-)


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2011-03-10 16:08 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-09 17:40 [GIT PATCH 0/14] xen: events: cleanups + ween off nr_irqs Ian Campbell
2011-03-09 17:41 ` [PATCH 01/14] xen: events: separate two unrelated halves of if condition Ian Campbell
2011-03-09 17:41 ` [PATCH 02/14] xen: events: fix xen_map_pirq_gsi error return Ian Campbell
2011-03-09 17:41 ` [PATCH 03/14] xen: events: simplify comment Ian Campbell
2011-03-09 17:41 ` [PATCH 04/14] xen: events: remove unused public functions Ian Campbell
2011-03-09 17:41 ` [PATCH 05/14] xen: events: rename restore_cpu_pirqs -> restore_pirqs Ian Campbell
2011-03-09 17:41 ` [PATCH 06/14] xen: events: refactor GSI pirq bindings functions Ian Campbell
2011-03-10  4:00   ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-03-10  8:37     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 07/14] xen: events: use per-cpu variable for cpu_evtchn_mask Ian Campbell
2011-03-09 17:41 ` [PATCH 08/14] xen: events: turn irq_info constructors into initialiser functions Ian Campbell
2011-03-09 17:41 ` [PATCH 09/14] xen: events: push setup of irq<->{evtchn,ipi,virq,pirq} maps into irq_info init functions Ian Campbell
2011-03-10  4:56   ` Konrad Rzeszutek Wilk
2011-03-10  8:42     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 10/14] xen: events: maintain a list of Xen interrupts Ian Campbell
2011-03-10  5:22   ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-03-10  8:43     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 11/14] xen: events: dynamically allocate irq info structures Ian Campbell
2011-03-10  5:27   ` Konrad Rzeszutek Wilk
2011-03-10  8:51     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 12/14] xen: events: remove use of nr_irqs as upper bound on number of pirqs Ian Campbell
2011-03-10  5:33   ` Konrad Rzeszutek Wilk
2011-03-10  8:57     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 13/14] xen: events: do not workaround too-small nr_irqs Ian Campbell
2011-03-10  5:40   ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-03-10  9:02     ` Ian Campbell
2011-03-09 17:41 ` [PATCH 14/14] xen: events: propagate irq allocation failure instead of panicking Ian Campbell
2011-03-10  5:38   ` Konrad Rzeszutek Wilk
2011-03-10  8:58     ` Ian Campbell
2011-03-10 16:07 [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs Ian Campbell
2011-03-10 16:08 ` [PATCH 09/14] xen: events: push setup of irq<->{evtchn,ipi,virq,pirq} maps into irq_info init functions Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).