RE: [PATCH] KVM: arm/arm64: Set ICH_HCR_EN in guest anyway when using gicv4

From: Tangnianyao (ICT)
Date: Thu Mar 14 2019 - 04:05:37 EST


Hi, Marc, Shameer

> -----Original Message-----
> From: Marc Zyngier [mailto:marc.zyngier@xxxxxxx]
> Sent: Thursday, March 14, 2019 12:31 AM
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx>;
> Tangnianyao (ICT) <tangnianyao@xxxxxxxxxx>; Christoffer Dall
> <christoffer.dall@xxxxxxx>; james.morse@xxxxxxx; julien.thierry@xxxxxxx;
> suzuki.poulose@xxxxxxx; catalin.marinas@xxxxxxx; will.deacon@xxxxxxx;
> alex.bennee@xxxxxxxxxx; mark.rutland@xxxxxxx; andre.przywara@xxxxxxx;
> Zhangshaokun <zhangshaokun@xxxxxxxxxxxxx>; keescook@xxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; kvmarm@xxxxxxxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Cc: Linuxarm <linuxarm@xxxxxxxxxx>
> Subject: Re: [PATCH] KVM: arm/arm64: Set ICH_HCR_EN in guest anyway when
> using gicv4
>
> On 13/03/2019 15:59, Shameerali Kolothum Thodi wrote:
>
> Hi Shameer,
>
> >> Can you please give the following patch a go? I can't test it, but
> >> hopefully you can.
> >
> > Thanks for your quick response. I just did a quick test on one of our
> > platforms with VHE+GICv4 and it seems to fix the performance issue we
> > were seeing when GICv4 is enabled.
> >
> > Test setup:
> >
> > Host connected to a PC over a 10G port.
> > Launch Guest with an assigned vf dev.
> > Run iperf from Guest,
> >
> > 5.0 kernel:
> > [ ID] Interval Transfer Bandwidth
> > [ 3] 0.0-10.0 sec 1.30 GBytes 1.12 Gbits/sec
> >
> > +Patch:
> >
> > [ ID] Interval Transfer Bandwidth
> > [ 3] 0.0-10.0 sec 10.9 GBytes 9.39 Gbits/sec
>
> Ah, that looks much better! I'll try to write it properly, as I think what we have
> today is slightly bizarre (we write ICH_HCR_EL2 from too many paths, and I
> need to remember how the whole thing works).
>
> Thanks,
>
> M.
> --
> Jazz is not dead. It just smells funny...

Test setup:
VHE enable.
Connected to an intel 8180 server over 10G port.
Launch guest with an assigned vf dev.
Intel server as server. Arm guest vm as client.
Run netperf in guest, package length 512byte:

5.0.0-rc3 kernel:
without patch:
2600 Mbits/s
with patch:
5800 Mbits/s


Thanks,
-Nianyao Tang