xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@citrix.com>
To: Jintack Lim <jintack@cs.columbia.edu>,
	xen-devel <xen-devel@lists.xen.org>
Cc: Ian Campbell <ian.campbell@citrix.com>
Subject: Re: [Xen-users] Changing netback tx interrupts affinity on Dom0
Date: Thu, 3 Sep 2015 19:21:43 +0100	[thread overview]
Message-ID: <55E88FB7.6020004@citrix.com> (raw)
In-Reply-To: <CAHyh4xggXVtw06P_ESgir-20dSgJeXwU4tgD0NQNWirz9V3kSQ@mail.gmail.com>

On 03/09/15 17:06, Jintack Lim wrote:
> Hi,

Hi Jintack,

> On Thu, Sep 3, 2015 at 11:34 AM, Ian Campbell <ian.campbell@citrix.com
> <mailto:ian.campbell@citrix.com>> wrote:
> 
>     On Thu, 2015-09-03 at 10:59 -0400, Jintack Lim wrote:
>     > Hi,
>     >
>     > While I was running Apache server,
>     > I found that one of Dom0 vcpu is running 100% to handle irqs,
>     > and those irqs are set to be processed only on that specific vcpu.
>     >
>     > Referring to this document,
>     > http://wiki.xen.org/wiki/Network_Throughput_and_Performance_Guide
>     > I tried to change smp_affinity by writing a value to /proc/irq/<irq
>     > -no>/smp_affinity,
>     > however the smp_affinity value was not changed.
>     >
>     > I'm working on Xen 4.5 on ARMv8,
>     > and the irq is netback tx interrupt.
>     >
>     > # cat /proc/irq/106/smp_affinity
>     > 1
>     >
>     > # cat /proc/interrupts
>     > ...
>     > 106:      53849          0          0          0   xen-dyn-event
>     > vif1.1-q0-tx
>     > 107:          1          0          0          0   xen-dyn-event
>     > vif1.1-q0-rx
>     > 108:      61460          0          0          0   xen-dyn-event
>     > vif1.1-q1-tx
>     > 109:          1          0          0          0   xen-dyn-event
>     > vif1.1-q1-rx
>     > 110:      67118          0          0          0   xen-dyn-event
>     > vif1.1-q2-tx
>     > 111:          1          0          0          0   xen-dyn-event
>     > vif1.1-q2-rx
>     > 112:      58273          0          0          0   xen-dyn-event
>     > vif1.1-q3-tx
>     > 113:          1          0          0          0   xen-dyn-event
>     > vif1.1-q3-rx
>     > ...
>     >
>     > What would be the way to change smp_affinity?

All those interrupts are in-fine event channels. This is a bug in Linux
which I sent a fix a month ago and it's queued in xentip for Linux 4.3 [1]

The event channel rebinding was not working because we don't have vector
callback on ARM and therefore the driver was only allowing event channel
to be routed on VCPU0.

commit 4a5b69464e51f4a8dd432e8c2a1468630df1a53c
Author: Julien Grall <julien.grall@citrix.com>
Date:   Tue Jul 28 10:10:42 2015 +0100

xen/events: Support event channel rebind on ARM
Currently, the event channel rebind code is gated with the presence of
the vector callback.

The virtual interrupt controller on ARM has the concept of per-CPU
interrupt (PPI) which allow us to support per-VCPU event
channel.Therefore there is no need of vector callback for ARM.

Xen is already using a free PPI to notify the guest VCPU of an event.
Furthermore, the xen code initialization in Linux (see
arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ.

Introduce new helper xen_support_evtchn_rebind to allow architecture
decide whether rebind an event is support or not. It will always return
true on ARM and keep the same behavior on x86.

This is also allow us to drop the usage of xen_have_vector_callback
entirely in the ARM code.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>

Regards,

[1] https://lkml.org/lkml/2015/7/28/205

-- 
Julien Grall

  parent reply	other threads:[~2015-09-03 18:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAHyh4xj3+si5+TzSGJeN3Wp0VE8MnPV30BFc_b7c+uuW+o+2mw@mail.gmail.com>
     [not found] ` <1441294496.26292.372.camel@citrix.com>
2015-09-03 16:06   ` [Xen-users] Changing netback tx interrupts affinity on Dom0 Jintack Lim
2015-09-03 17:30     ` Jintack Lim
2015-09-03 18:21     ` Julien Grall [this message]
2015-09-03 21:12       ` Jintack Lim
2015-09-04 13:28         ` Julien Grall

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=55E88FB7.6020004@citrix.com \
    --to=julien.grall@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=jintack@cs.columbia.edu \
    --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;
as well as URLs for NNTP newsgroup(s).