Re: [RFC 0/4] Virtio uses DMA API for all devices
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2018-08-06 16:06:12
Also in:
lkml
On Mon, Aug 06, 2018 at 08:24:06AM -0700, Christoph Hellwig wrote:
On Mon, Aug 06, 2018 at 04:36:43PM +0300, Michael S. Tsirkin wrote:quoted
On Mon, Aug 06, 2018 at 02:32:28PM +0530, Anshuman Khandual wrote:quoted
On 08/05/2018 05:54 AM, Michael S. Tsirkin wrote:quoted
On Fri, Aug 03, 2018 at 08:21:26PM -0500, Benjamin Herrenschmidt wrote:quoted
On Fri, 2018-08-03 at 22:08 +0300, Michael S. Tsirkin wrote:quoted
quoted
quoted
quoted
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. ThanksCould 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.
Right so that was before spectre where a virtual call was cheaper :(
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.
I guess this RFC will have to be reworked on top and performance retested. Thanks, -- MST