From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH net] virtio-net: unbreak cusmed packet for small buffer XDP Date: Wed, 28 Jun 2017 07:01:00 +0300 Message-ID: <20170628065126-mutt-send-email-mst@kernel.org> References: <1498614843-8163-1-git-send-email-jasowang@redhat.com> <20170628050057-mutt-send-email-mst@kernel.org> <7068053c-50da-6779-5ff2-6588e01e616d@redhat.com> <20170628051555-mutt-send-email-mst@kernel.org> <69907228-fc1b-175f-f6cd-7ac332e318be@redhat.com> <20170628063033-mutt-send-email-mst@kernel.org> <51f4c402-6a02-9bad-6dab-563ca72f431a@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <51f4c402-6a02-9bad-6dab-563ca72f431a@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Jason Wang Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org T24gV2VkLCBKdW4gMjgsIDIwMTcgYXQgMTE6NDA6MzBBTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPiAKPiAKPiBPbiAyMDE35bm0MDbmnIgyOOaXpSAxMTozMSwgTWljaGFlbCBTLiBUc2lya2lu IHdyb3RlOgo+ID4gT24gV2VkLCBKdW4gMjgsIDIwMTcgYXQgMTA6NDU6MThBTSArMDgwMCwgSmFz b24gV2FuZyB3cm90ZToKPiA+ID4gT24gMjAxN+W5tDA25pyIMjjml6UgMTA6MTcsIE1pY2hhZWwg Uy4gVHNpcmtpbiB3cm90ZToKPiA+ID4gPiBPbiBXZWQsIEp1biAyOCwgMjAxNyBhdCAxMDoxNDoz NEFNICswODAwLCBKYXNvbiBXYW5nIHdyb3RlOgo+ID4gPiA+ID4gT24gMjAxN+W5tDA25pyIMjjm l6UgMTA6MDIsIE1pY2hhZWwgUy4gVHNpcmtpbiB3cm90ZToKPiA+ID4gPiA+ID4gT24gV2VkLCBK dW4gMjgsIDIwMTcgYXQgMDk6NTQ6MDNBTSArMDgwMCwgSmFzb24gV2FuZyB3cm90ZToKPiA+ID4g PiA+ID4gPiBXZSBzaG91bGQgYWxsb3cgY3N1bWVkIHBhY2tldCBmb3Igc21hbGwgYnVmZmVyLCBv dGhlcndpc2UgWERQX1BBU1MKPiA+ID4gPiA+ID4gPiB3b24ndCB3b3JrIGNvcnJlY3RseS4KPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBGaXhlcyBjb21taXQgYmI5MWFjY2YyNzMzICgidmly dGlvLW5ldDogWERQIHN1cHBvcnQgZm9yIHNtYWxsIGJ1ZmZlcnMiKQo+ID4gPiA+ID4gPiA+IFNp Z25lZC1vZmYtYnk6IEphc29uIFdhbmc8amFzb3dhbmdAcmVkaGF0LmNvbT4KPiA+ID4gPiA+ID4g VGhlIGlzc3VlIHdvdWxkIGJlIFZJUlRJT19ORVRfSERSX0ZfREFUQV9WQUxJRCBtaWdodCBiZSBz ZXQuCj4gPiA+ID4gPiA+IFdoYXQgZG8geW91IHRoaW5rPwo+ID4gPiA+ID4gSSB0aGluayBpdCdz IHNhZmUuIEZvciBYRFBfUEFTUywgaXQgd29yayBsaWtlIGluIHRoZSBwYXN0Lgo+ID4gPiA+IFRo YXQncyB0aGUgcGFydCBJIGRvbid0IGdldC4gV2l0aCBEQVRBX1ZBTElEIGNzdW0gaW4gcGFja2V0 IGlzIHdyb25nLCBYRFAKPiA+ID4gPiB0b29scyBhc3N1bWUgaXQncyB2YWx1ZS4KPiA+ID4gREFU QV9WQUxJRCBpcyBDSEVDS1NVTV9VTkNFU1NBUlkgb24gdGhlIGhvc3QsIGFuZCBhY2NvcmRpbmcg dG8gdGhlIGNvbW1lbnQKPiA+ID4gaW4gc2tidWZmLmgKPiA+ID4gCj4gPiA+IAo+ID4gPiAiCj4g PiA+ICAgKiAgIFRoZSBoYXJkd2FyZSB5b3UncmUgZGVhbGluZyB3aXRoIGRvZXNuJ3QgY2FsY3Vs YXRlIHRoZSBmdWxsIGNoZWNrc3VtCj4gPiA+ICAgKiAgIChhcyBpbiBDSEVDS1NVTV9DT01QTEVU RSksIGJ1dCBpdCBkb2VzIHBhcnNlIGhlYWRlcnMgYW5kIHZlcmlmeQo+ID4gPiBjaGVja3N1bXMK PiA+ID4gICAqICAgZm9yIHNwZWNpZmljIHByb3RvY29scy4gRm9yIHN1Y2ggcGFja2V0cyBpdCB3 aWxsIHNldAo+ID4gPiBDSEVDS1NVTV9VTk5FQ0VTU0FSWQo+ID4gPiAgICogICBpZiB0aGVpciBj aGVja3N1bXMgYXJlIG9rYXkuIHNrYi0+Y3N1bSBpcyBzdGlsbCB1bmRlZmluZWQgaW4gdGhpcyBj YXNlCj4gPiA+ICAgKiAgIHRob3VnaC4gQSBkcml2ZXIgb3IgZGV2aWNlIG11c3QgbmV2ZXIgbW9k aWZ5IHRoZSBjaGVja3N1bSBmaWVsZCBpbiB0aGUKPiA+ID4gICAqICAgcGFja2V0IGV2ZW4gaWYg Y2hlY2tzdW0gaXMgdmVyaWZpZWQuCj4gPiA+ICIKPiA+ID4gCj4gPiA+IFRoZSBjc3VtIGlzIGNv cnJlY3QgSSBiZWxpZXZlPwo+ID4gPiAKPiA+ID4gVGhhbmtzCj4gPiBUaGF0J3Mgb24gaW5wdXQu IEJ1dCBJIHRoaW5rIGZvciB0dW4gaXQncyBvdXRwdXQsIHdoZXJlIHRoYXQgaXMgZXF1aXZhbGVu dAo+ID4gdG8gQ0hFQ0tTVU1fTk9ORQo+ID4gCj4gPiAKPiAKPiBZZXMsIGJ1dCB0aGUgY29tbWVu dCBzYWlkOgo+IAo+ICIKPiBDS1NVTV9OT05FOgo+ICAqCj4gICogICBUaGUgc2tiIHdhcyBhbHJl YWR5IGNoZWNrc3VtbWVkIGJ5IHRoZSBwcm90b2NvbCwgb3IgYSBjaGVja3N1bSBpcyBub3QKPiAg KiAgIHJlcXVpcmVkLgo+ICAqCj4gICogQ0hFQ0tTVU1fVU5ORUNFU1NBUlk6Cj4gICoKPiAgKiAg IFRoaXMgaGFzIHRoZSBzYW1lIG1lYW5pbmcgb24gYXMgQ0hFQ0tTVU1fTk9ORSBmb3IgY2hlY2tz dW0gb2ZmbG9hZCBvbgo+ICAqICAgb3V0cHV0Lgo+ICAqCj4gIgo+IAo+IFNvIHN0aWxsIGNvcnJl Y3QgSSB0aGluaz8KPiAKPiBUaGFua3MKCkhtbSBtYXliZSBJIG1lYW4gTkVFRFNfQ0hFQ0tTVU0g YWN0dWFsbHkuCgpJJ2xsIG5lZWQgdG8gcmUtcmVhZCB0aGUgc3BlYy4KCi0tIApNU1QKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24g bWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0 dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxp emF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751844AbdF1EBD (ORCPT ); Wed, 28 Jun 2017 00:01:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44620 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751660AbdF1EBC (ORCPT ); Wed, 28 Jun 2017 00:01:02 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1B64D7F3EB Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=mst@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1B64D7F3EB Date: Wed, 28 Jun 2017 07:01:00 +0300 From: "Michael S. Tsirkin" To: Jason Wang Cc: virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net] virtio-net: unbreak cusmed packet for small buffer XDP Message-ID: <20170628065126-mutt-send-email-mst@kernel.org> References: <1498614843-8163-1-git-send-email-jasowang@redhat.com> <20170628050057-mutt-send-email-mst@kernel.org> <7068053c-50da-6779-5ff2-6588e01e616d@redhat.com> <20170628051555-mutt-send-email-mst@kernel.org> <69907228-fc1b-175f-f6cd-7ac332e318be@redhat.com> <20170628063033-mutt-send-email-mst@kernel.org> <51f4c402-6a02-9bad-6dab-563ca72f431a@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <51f4c402-6a02-9bad-6dab-563ca72f431a@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 28 Jun 2017 04:01:02 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 28, 2017 at 11:40:30AM +0800, Jason Wang wrote: > > > On 2017年06月28日 11:31, Michael S. Tsirkin wrote: > > On Wed, Jun 28, 2017 at 10:45:18AM +0800, Jason Wang wrote: > > > On 2017年06月28日 10:17, Michael S. Tsirkin wrote: > > > > On Wed, Jun 28, 2017 at 10:14:34AM +0800, Jason Wang wrote: > > > > > On 2017年06月28日 10:02, Michael S. Tsirkin wrote: > > > > > > On Wed, Jun 28, 2017 at 09:54:03AM +0800, Jason Wang wrote: > > > > > > > We should allow csumed packet for small buffer, otherwise XDP_PASS > > > > > > > won't work correctly. > > > > > > > > > > > > > > Fixes commit bb91accf2733 ("virtio-net: XDP support for small buffers") > > > > > > > Signed-off-by: Jason Wang > > > > > > The issue would be VIRTIO_NET_HDR_F_DATA_VALID might be set. > > > > > > What do you think? > > > > > I think it's safe. For XDP_PASS, it work like in the past. > > > > That's the part I don't get. With DATA_VALID csum in packet is wrong, XDP > > > > tools assume it's value. > > > DATA_VALID is CHECKSUM_UNCESSARY on the host, and according to the comment > > > in skbuff.h > > > > > > > > > " > > > * The hardware you're dealing with doesn't calculate the full checksum > > > * (as in CHECKSUM_COMPLETE), but it does parse headers and verify > > > checksums > > > * for specific protocols. For such packets it will set > > > CHECKSUM_UNNECESSARY > > > * if their checksums are okay. skb->csum is still undefined in this case > > > * though. A driver or device must never modify the checksum field in the > > > * packet even if checksum is verified. > > > " > > > > > > The csum is correct I believe? > > > > > > Thanks > > That's on input. But I think for tun it's output, where that is equivalent > > to CHECKSUM_NONE > > > > > > Yes, but the comment said: > > " > CKSUM_NONE: > * > * The skb was already checksummed by the protocol, or a checksum is not > * required. > * > * CHECKSUM_UNNECESSARY: > * > * This has the same meaning on as CHECKSUM_NONE for checksum offload on > * output. > * > " > > So still correct I think? > > Thanks Hmm maybe I mean NEEDS_CHECKSUM actually. I'll need to re-read the spec. -- MST