Thanks Julien.

On Thu, Sep 3, 2015 at 2:21 PM, Julien Grall <julien.gr...@citrix.com>
wrote:

> On 03/09/15 17:06, Jintack Lim wrote:
> > Hi,
>
> Hi Jintack,
>
> > On Thu, Sep 3, 2015 at 11:34 AM, Ian Campbell <ian.campb...@citrix.com
> > <mailto:ian.campb...@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.
>
>
After applying this patch, I was able to set smp_affinity.

In addition, the default value of smp_affinity for netback tx interrupts on
Dom0 becomes "f" (I have four vcpus on Dom0).
What I meant by 'netback tx interrupts' is vif1.1-q<num>-tx
This is slightly different from x86, because netback tx interrupts are
pinned to separate vcpus on x86.
I'm not sure this question is appropriate for devel-list,
but why the policy to set smp_affinity for netback tx interrupts are
different on ARM and x86?


> commit 4a5b69464e51f4a8dd432e8c2a1468630df1a53c
> Author: Julien Grall <julien.gr...@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.gr...@citrix.com>
> Signed-off-by: David Vrabel <david.vra...@citrix.com>
>
> Regards,
>
> [1] https://lkml.org/lkml/2015/7/28/205
>
> --
> Julien Grall
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to