On 08/05/2018 05:54 AM, Michael S. Tsirkin wrote:> On Fri, Aug 03, 2018 at 08:21:26PM -0500, Benjamin Herrenschmidt wrote: >> On Fri, 2018-08-03 at 22:08 +0300, Michael S. Tsirkin wrote: >>>>>> Please go through these patches and review whether this approach broadly >>>>>> makes sense. I will appreciate suggestions, inputs, comments regarding >>>>>> the patches or the approach in general. Thank you. >>>>> >>>>> Jason did some work on profiling this. Unfortunately he reports >>>>> about 4% extra overhead from this switch on x86 with no vIOMMU. >>>> >>>> The test is rather simple, just run pktgen (pktgen_sample01_simple.sh) in >>>> guest and measure PPS on tap on host. >>>> >>>> Thanks >>> >>> Could you supply host configuration involved please? >> >> I wonder how much of that could be caused by Spectre mitigations >> blowing up indirect function calls... >> >> Cheers, >> Ben. > > I won't be surprised. If yes I suggested a way to mitigate the overhead.Did we get better results (lower regression due to indirect calls) with the suggested mitigation ? Just curious.
On Mon, Aug 06, 2018 at 02:32:28PM +0530, Anshuman Khandual wrote:> On 08/05/2018 05:54 AM, Michael S. Tsirkin wrote: > > On Fri, Aug 03, 2018 at 08:21:26PM -0500, Benjamin Herrenschmidt wrote: > >> On Fri, 2018-08-03 at 22:08 +0300, Michael S. Tsirkin wrote: > >>>>>> Please go through these patches and review whether this approach broadly > >>>>>> makes sense. I will appreciate suggestions, inputs, comments regarding > >>>>>> the patches or the approach in general. Thank you. > >>>>> > >>>>> Jason did some work on profiling this. Unfortunately he reports > >>>>> about 4% extra overhead from this switch on x86 with no vIOMMU. > >>>> > >>>> The test is rather simple, just run pktgen (pktgen_sample01_simple.sh) in > >>>> guest and measure PPS on tap on host. > >>>> > >>>> Thanks > >>> > >>> Could you supply host configuration involved please? > >> > >> I wonder how much of that could be caused by Spectre mitigations > >> blowing up indirect function calls... > >> > >> Cheers, > >> Ben. > > > > I won't be surprised. If yes I suggested a way to mitigate the overhead. > > Did we get better results (lower regression due to indirect calls) with > the suggested mitigation ? Just curious.I'm referring to this: I wonder whether we can support map_sg and friends being NULL, then use that when mapping is an identity. A conditional branch there is likely very cheap. I don't think anyone tried implementing this yes. -- MST
On Mon, Aug 06, 2018 at 04:36:43PM +0300, Michael S. Tsirkin wrote:> On Mon, Aug 06, 2018 at 02:32:28PM +0530, Anshuman Khandual wrote: > > On 08/05/2018 05:54 AM, Michael S. Tsirkin wrote: > > > On Fri, Aug 03, 2018 at 08:21:26PM -0500, Benjamin Herrenschmidt wrote: > > >> On Fri, 2018-08-03 at 22:08 +0300, Michael S. Tsirkin wrote: > > >>>>>> Please go through these patches and review whether this approach broadly > > >>>>>> makes sense. I will appreciate suggestions, inputs, comments regarding > > >>>>>> the patches or the approach in general. Thank you. > > >>>>> > > >>>>> Jason did some work on profiling this. Unfortunately he reports > > >>>>> about 4% extra overhead from this switch on x86 with no vIOMMU. > > >>>> > > >>>> The test is rather simple, just run pktgen (pktgen_sample01_simple.sh) in > > >>>> guest and measure PPS on tap on host. > > >>>> > > >>>> Thanks > > >>> > > >>> Could you supply host configuration involved please? > > >> > > >> I wonder how much of that could be caused by Spectre mitigations > > >> blowing up indirect function calls... > > >> > > >> Cheers, > > >> Ben. > > > > > > I won't be surprised. If yes I suggested a way to mitigate the overhead. > > > > Did we get better results (lower regression due to indirect calls) with > > the suggested mitigation ? Just curious. > > I'm referring to this: > I wonder whether we can support map_sg and friends being NULL, then use > that when mapping is an identity. A conditional branch there is likely > very cheap. > > I don't think anyone tried implementing this yes.I've done something very similar in the thread I posted a few years ago. I plan to get a version of that upstream for 4.20, but it won't cover the virtio case, just the real direct mapping.