mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>
Cc: "xen-devel" <xen-devel@lists.xen.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [Xen-devel] [PATCH 2/9] xen/smp: Introduce a common structure to contain the IRQ name and interrupt line.
Date: Thu, 06 Jun 2013 08:16:39 +0100	[thread overview]
Message-ID: <51B0537702000078000DBC74@nat28.tlf.novell.com> (raw)
In-Reply-To: <1370447678-22367-3-git-send-email-konrad.wilk@oracle.com>

>>> On 05.06.13 at 17:54, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> This patch adds a new structure to contain the common two things
> that each of the per-cpu interrupts need:
>  - an interrupt number,
>  - and the name of the interrupt (to be added in 'xen/smp: Don't leak
>    interrupt name when offlining').
> 
> This allows us to carry the tuple of the per-cpu interrupt data structure
> and expand it as we need in the future.
> 
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> ---
>  arch/x86/xen/smp.c | 44 ++++++++++++++++++++++++--------------------
>  1 file changed, 24 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
> index 19fc9f3..f5b29ec 100644
> --- a/arch/x86/xen/smp.c
> +++ b/arch/x86/xen/smp.c
> @@ -39,11 +39,15 @@
>  
>  cpumask_var_t xen_cpu_initialized_map;
>  
> -static DEFINE_PER_CPU(int, xen_resched_irq);
> -static DEFINE_PER_CPU(int, xen_callfunc_irq);
> -static DEFINE_PER_CPU(int, xen_callfuncsingle_irq);
> -static DEFINE_PER_CPU(int, xen_irq_work);
> -static DEFINE_PER_CPU(int, xen_debug_irq) = -1;
> +struct xen_common_irq {
> +	int irq;
> +	char *name;
> +};
> +static DEFINE_PER_CPU(struct xen_common_irq, xen_resched_irq);
> +static DEFINE_PER_CPU(struct xen_common_irq, xen_callfunc_irq);
> +static DEFINE_PER_CPU(struct xen_common_irq, xen_callfuncsingle_irq);
> +static DEFINE_PER_CPU(struct xen_common_irq, xen_irq_work);
> +static DEFINE_PER_CPU(struct xen_common_irq, xen_debug_irq) = { .irq = -1 };

I have to admit that I'm quite puzzled by this still being massaged
the way it is, rather than getting converted to proper per-CPU
IRQs (i.e. with one global IRQ and only per-CPU event channels).
Not only conserves this on resources (irrespective of IRQs not
being a scarce resources anymore with SPARSE_IRQS), it also
makes /proc/interrupts output a lot more manageable on domains
with many vCPU-s.

I did this years ago for our kernels, but due to time constraints
can't offer to do the same for the upstream kernel until we get
ready to switch to using it in favor of the forward port.

Jan


  reply	other threads:[~2013-06-06  7:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-05 15:54 [PATCH] fix kmemleak complaining about memory leaks when offlining/onlining vCPUS (v1) Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 1/9] xen/smp: Coalesce the free_irq calls in one function Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 2/9] xen/smp: Introduce a common structure to contain the IRQ name and interrupt line Konrad Rzeszutek Wilk
2013-06-06  7:16   ` Jan Beulich [this message]
2013-06-06 18:58     ` [Xen-devel] " Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 3/9] xen/smp: Set the per-cpu IRQ number to a valid default Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 4/9] xen/smp: Don't leak interrupt name when offlining Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 5/9] xen/spinlock: " Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 6/9] xen/time: Encapsulate the struct clock_event_device in another structure Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 7/9] xen/time: Don't leak interrupt name when offlining Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 8/9] xen/time: Check that the per_cpu data structure has data before freeing Konrad Rzeszutek Wilk
2013-06-05 15:54 ` [PATCH 9/9] xen/time: Free onlined per-cpu data structure if we want to online it again Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51B0537702000078000DBC74@nat28.tlf.novell.com \
    --to=jbeulich@suse.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®