From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 393D3EB64D9 for ; Tue, 27 Jun 2023 08:03:47 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id A5C2C418C3; Tue, 27 Jun 2023 08:03:46 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org A5C2C418C3 Authentication-Results: smtp4.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Q+cK26JG X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f92oJ0w82aaN; Tue, 27 Jun 2023 08:03:45 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id CAA6A409A2; Tue, 27 Jun 2023 08:03:44 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org CAA6A409A2 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A2EBBC007C; Tue, 27 Jun 2023 08:03:44 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 76457C0037 for ; Tue, 27 Jun 2023 08:03:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 43D7F6076C for ; Tue, 27 Jun 2023 08:03:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 43D7F6076C Authentication-Results: smtp3.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Q+cK26JG X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lRjv-1JT7yES for ; Tue, 27 Jun 2023 08:03:42 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 63574605A9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp3.osuosl.org (Postfix) with ESMTPS id 63574605A9 for ; Tue, 27 Jun 2023 08:03:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687853021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAIgwfCxKCOJsdi6od/XlBbV/+5tFRsCfnVys12ZFNk=; b=Q+cK26JGG7+USFRP0zwfM3T8iMhPV7CnhjAa9wIN7OMdG9twBtqrGmHV2zePVN6QVxghPV 76T0c4zdimLzYC1QT4ECulz3Ife7FfDFPPUOWkYTZHGmTfTENDM1dJpIFJKb69lbal1PD4 Qn1+JuvKLkIaANDB7NusGbm9Uc2eB2w= Received: from mail-lj1-f200.google.com (mail-lj1-f200.google.com [209.85.208.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-145-mzWR5BfxO9CoP4DF2tmMmg-1; Tue, 27 Jun 2023 04:03:36 -0400 X-MC-Unique: mzWR5BfxO9CoP4DF2tmMmg-1 Received: by mail-lj1-f200.google.com with SMTP id 38308e7fff4ca-2b6a0772b97so17546751fa.1 for ; Tue, 27 Jun 2023 01:03:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687853015; x=1690445015; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EAIgwfCxKCOJsdi6od/XlBbV/+5tFRsCfnVys12ZFNk=; b=D3WzjUET/w1OSjJmeE/SSJqpuamyO1AppCUsYamIKPrhoXAq/iADtAivuXHYa6JKsA SZcG7nKKGCCvhuC8L/STREdt9xkjCSoUBo040WqwJW2vJb+u6vHmUwO+U0a7J/dECFtu vgs171UeHgE9aEkH4fVAXgeankGYnTO3CzOVm/WCaHJqeJxB99vTpFLaByXOdmTcq5nY +U8vqHaoFXno1aeXZGf9ivJY9fEPGfQwX4P00s01RtpZAwvUxbKT528L8y6mGjpWgfmw NuDMtz5qdrlx16uLXyFVjC79BLW8dCjyxOtQEWxulfoHuQCP4cLV9Otqh7z7SOdWj0sI 9CGA== X-Gm-Message-State: AC+VfDxm6oD+VI/xt2Q2mXJWFm5023wPKZAyL6ZE1tOD603kykKdNRET JgH2EgbdsZB2d6z1LezGG1HqXo166ikdsplvBg+iBaxzDyug0Fwg69nSpAnSUWSZ7e/H3nwq9JN rv9fhTlXxbUMg3SJV2GUJbCKJek4PzGK8aUQDbot4AlDhnOWaqcpqn9TKKw== X-Received: by 2002:a2e:7316:0:b0:2b6:9e58:33e4 with SMTP id o22-20020a2e7316000000b002b69e5833e4mr3819044ljc.4.1687853014817; Tue, 27 Jun 2023 01:03:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5hU3RHXYr/pj0pxaHkeuHxuPz++Ykm7OjgngDYXG0THDVyAk4d453g90XaTYXzIjRL+EoepNV13PFA/YETwDY= X-Received: by 2002:a2e:7316:0:b0:2b6:9e58:33e4 with SMTP id o22-20020a2e7316000000b002b69e5833e4mr3819029ljc.4.1687853014630; Tue, 27 Jun 2023 01:03:34 -0700 (PDT) MIME-Version: 1.0 References: <20230602092206.50108-1-xuanzhuo@linux.alibaba.com> <20230602092206.50108-3-xuanzhuo@linux.alibaba.com> In-Reply-To: <20230602092206.50108-3-xuanzhuo@linux.alibaba.com> From: Jason Wang Date: Tue, 27 Jun 2023 16:03:23 +0800 Message-ID: Subject: Re: [PATCH vhost v10 02/10] virtio_ring: introduce virtqueue_set_premapped() To: Xuan Zhuo X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: Jesper Dangaard Brouer , Daniel Borkmann , "Michael S. Tsirkin" , netdev@vger.kernel.org, John Fastabend , Alexei Starovoitov , virtualization@lists.linux-foundation.org, Eric Dumazet , Jakub Kicinski , bpf@vger.kernel.org, Paolo Abeni , "David S. Miller" X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gRnJpLCBKdW4gMiwgMjAyMyBhdCA1OjIy4oCvUE0gWHVhbiBaaHVvIDx4dWFuemh1b0BsaW51 eC5hbGliYWJhLmNvbT4gd3JvdGU6Cj4KPiBUaGlzIGhlbHBlciBhbGxvd3MgdGhlIGRyaXZlciBj aGFuZ2UgdGhlIGRtYSBtb2RlIHRvIHByZW1hcHBlZCBtb2RlLgo+IFVuZGVyIHRoZSBwcmVtYXBw ZWQgbW9kZSwgdGhlIHZpcnRpbyBjb3JlIGRvIG5vdCBkbyBkbWEgbWFwcGluZwo+IGludGVybmFs bHkuCj4KPiBUaGlzIGp1c3Qgd29yayB3aGVuIHRoZSB1c2VfZG1hX2FwaSBpcyB0cnVlLiBJZiB0 aGUgdXNlX2RtYV9hcGkgaXMgZmFsc2UsCj4gdGhlIGRtYSBvcHRpb25zIGlzIG5vdCB0aHJvdWdo IHRoZSBETUEgQVBJcywgdGhhdCBpcyBub3QgdGhlIHN0YW5kYXJkCj4gd2F5IG9mIHRoZSBsaW51 eCBrZXJuZWwuCj4KPiBTaWduZWQtb2ZmLWJ5OiBYdWFuIFpodW8gPHh1YW56aHVvQGxpbnV4LmFs aWJhYmEuY29tPgo+IC0tLQo+ICBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jIHwgNDAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvbGludXgvdmlydGlv LmggICAgICAgfCAgMiArKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKykKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jIGIvZHJpdmVycy92aXJ0 aW8vdmlydGlvX3JpbmcuYwo+IGluZGV4IDcyZWQwN2E2MDRkNC4uMmFmZGZiOWUzZTMwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKPiArKysgYi9kcml2ZXJzL3Zp cnRpby92aXJ0aW9fcmluZy5jCj4gQEAgLTE3Miw2ICsxNzIsOSBAQCBzdHJ1Y3QgdnJpbmdfdmly dHF1ZXVlIHsKPiAgICAgICAgIC8qIEhvc3QgcHVibGlzaGVzIGF2YWlsIGV2ZW50IGlkeCAqLwo+ ICAgICAgICAgYm9vbCBldmVudDsKPgo+ICsgICAgICAgLyogRG8gRE1BIG1hcHBpbmcgYnkgZHJp dmVyICovCj4gKyAgICAgICBib29sIHByZW1hcHBlZDsKPiArCj4gICAgICAgICAvKiBIZWFkIG9m IGZyZWUgYnVmZmVyIGxpc3QuICovCj4gICAgICAgICB1bnNpZ25lZCBpbnQgZnJlZV9oZWFkOwo+ ICAgICAgICAgLyogTnVtYmVyIHdlJ3ZlIGFkZGVkIHNpbmNlIGxhc3Qgc3luYy4gKi8KPiBAQCAt MjA1OSw2ICsyMDYyLDcgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnZyaW5nX2NyZWF0ZV92 aXJ0cXVldWVfcGFja2VkKAo+ICAgICAgICAgdnEtPnBhY2tlZF9yaW5nID0gdHJ1ZTsKPiAgICAg ICAgIHZxLT5kbWFfZGV2ID0gZG1hX2RldjsKPiAgICAgICAgIHZxLT51c2VfZG1hX2FwaSA9IHZy aW5nX3VzZV9kbWFfYXBpKHZkZXYpOwo+ICsgICAgICAgdnEtPnByZW1hcHBlZCA9IGZhbHNlOwo+ Cj4gICAgICAgICB2cS0+aW5kaXJlY3QgPSB2aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwgVklSVElP X1JJTkdfRl9JTkRJUkVDVF9ERVNDKSAmJgo+ICAgICAgICAgICAgICAgICAhY29udGV4dDsKPiBA QCAtMjU0OCw2ICsyNTUyLDcgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKl9fdnJpbmdfbmV3 X3ZpcnRxdWV1ZSh1bnNpZ25lZCBpbnQgaW5kZXgsCj4gICNlbmRpZgo+ICAgICAgICAgdnEtPmRt YV9kZXYgPSBkbWFfZGV2Owo+ICAgICAgICAgdnEtPnVzZV9kbWFfYXBpID0gdnJpbmdfdXNlX2Rt YV9hcGkodmRldik7Cj4gKyAgICAgICB2cS0+cHJlbWFwcGVkID0gZmFsc2U7Cj4KPiAgICAgICAg IHZxLT5pbmRpcmVjdCA9IHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fUklOR19GX0lO RElSRUNUX0RFU0MpICYmCj4gICAgICAgICAgICAgICAgICFjb250ZXh0Owo+IEBAIC0yNjkxLDYg KzI2OTYsNDEgQEAgaW50IHZpcnRxdWV1ZV9yZXNpemUoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLCB1 MzIgbnVtLAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKHZpcnRxdWV1ZV9yZXNpemUpOwo+Cj4g Ky8qKgo+ICsgKiB2aXJ0cXVldWVfc2V0X3ByZW1hcHBlZCAtIHNldCB0aGUgdnJpbmcgcHJlbWFw cGVkIG1vZGUKPiArICogQF92cTogdGhlIHN0cnVjdCB2aXJ0cXVldWUgd2UncmUgdGFsa2luZyBh Ym91dC4KPiArICoKPiArICogRW5hYmxlIHRoZSBwcmVtYXBwZWQgbW9kZSBvZiB0aGUgdnEuCj4g KyAqCj4gKyAqIFRoZSB2cmluZyBpbiBwcmVtYXBwZWQgbW9kZSBkb2VzIG5vdCBkbyBkbWEgaW50 ZXJuYWxseSwgc28gdGhlIGRyaXZlciBtdXN0Cj4gKyAqIGRvIGRtYSBtYXBwaW5nIGluIGFkdmFu Y2UuIFRoZSBkcml2ZXIgbXVzdCBwYXNzIHRoZSBkbWFfYWRkcmVzcyB0aHJvdWdoCj4gKyAqIGRt YV9hZGRyZXNzIG9mIHNjYXR0ZXJsaXN0LiBXaGVuIHRoZSBkcml2ZXIgZ290IGEgdXNlZCBidWZm ZXIgZnJvbQo+ICsgKiB0aGUgdnJpbmcsIGl0IGhhcyB0byB1bm1hcCB0aGUgZG1hIGFkZHJlc3Mu IFNvIHRoZSBkcml2ZXIgbXVzdCBjYWxsCj4gKyAqIHZpcnRxdWV1ZV9nZXRfYnVmX3ByZW1hcHBl ZCgpL3ZpcnRxdWV1ZV9kZXRhY2hfdW51c2VkX2J1Zl9wcmVtYXBwZWQoKS4KPiArICoKPiArICog VGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYWRkaW5nIGFueSBidWYgdG8gdnJpbmcuCgpBbmQg YW55IG9sZCBidWZmZXIgc2hvdWxkIGJlIGRldGFjaGVkPwoKPiArICogU28gdGhpcyBzaG91bGQg YmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGluaXQgdnEgb3IgdnEgcmVzZXQuCgpBbnkgd2F5 IHRvIGRldGVjdCBhbmQgd2FybiBpbiB0aGlzIGNhc2U/IChub3QgYSBtdXN0IGlmIGl0J3MgdG9v CmV4cGVuc2l2ZSB0byBkbyB0aGUgY2hlY2spCgo+ICsgKgo+ICsgKiBDYWxsZXIgbXVzdCBlbnN1 cmUgd2UgZG9uJ3QgY2FsbCB0aGlzIHdpdGggb3RoZXIgdmlydHF1ZXVlIG9wZXJhdGlvbnMKPiAr ICogYXQgdGhlIHNhbWUgdGltZSAoZXhjZXB0IHdoZXJlIG5vdGVkKS4KPiArICoKPiArICogUmV0 dXJucyB6ZXJvIG9yIGEgbmVnYXRpdmUgZXJyb3IuCj4gKyAqIDA6IHN1Y2Nlc3MuCj4gKyAqIC1F SU5WQUw6IHZyaW5nIGRvZXMgbm90IHVzZSB0aGUgZG1hIGFwaSwgc28gd2UgY2FuIG5vdCBlbmFi bGUgcHJlbWFwcGVkIG1vZGUuCj4gKyAqLwo+ICtpbnQgdmlydHF1ZXVlX3NldF9wcmVtYXBwZWQo c3RydWN0IHZpcnRxdWV1ZSAqX3ZxKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgdnJpbmdfdmlydHF1 ZXVlICp2cSA9IHRvX3Z2cShfdnEpOwo+ICsKPiArICAgICAgIGlmICghdnEtPnVzZV9kbWFfYXBp KQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiArCj4gKyAgICAgICB2cS0+cHJl bWFwcGVkID0gdHJ1ZTsKCkkgZ3Vlc3MgdGhlcmUgc2hvdWxkIGJlIGEgd2F5IHRvIGRpc2FibGUg aXQuIFdvdWxkIGl0IGJlIHVzZWZ1bCBmb3IKdGhlIGNhc2Ugd2hlbiBBRl9YRFAgc29ja2V0cyB3 ZXJlIGRlc3Ryb3llZD8KClRoYW5rcwoKCj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTF9HUEwodmlydHF1ZXVlX3NldF9wcmVtYXBwZWQpOwo+ICsKPiAgLyogT25s eSBhdmFpbGFibGUgZm9yIHNwbGl0IHJpbmcgKi8KPiAgc3RydWN0IHZpcnRxdWV1ZSAqdnJpbmdf bmV3X3ZpcnRxdWV1ZSh1bnNpZ25lZCBpbnQgaW5kZXgsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtLAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3ZpcnRpby5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW8uaAo+IGluZGV4IGI5MzIzOGRi OTRlMy4uMWZjMGUxMDIzYmQ0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlvLmgK PiArKysgYi9pbmNsdWRlL2xpbnV4L3ZpcnRpby5oCj4gQEAgLTc4LDYgKzc4LDggQEAgYm9vbCB2 aXJ0cXVldWVfZW5hYmxlX2NiKHN0cnVjdCB2aXJ0cXVldWUgKnZxKTsKPgo+ICB1bnNpZ25lZCB2 aXJ0cXVldWVfZW5hYmxlX2NiX3ByZXBhcmUoc3RydWN0IHZpcnRxdWV1ZSAqdnEpOwo+Cj4gK2lu dCB2aXJ0cXVldWVfc2V0X3ByZW1hcHBlZChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEpOwo+ICsKPiAg Ym9vbCB2aXJ0cXVldWVfcG9sbChzdHJ1Y3QgdmlydHF1ZXVlICp2cSwgdW5zaWduZWQpOwo+Cj4g IGJvb2wgdmlydHF1ZXVlX2VuYWJsZV9jYl9kZWxheWVkKHN0cnVjdCB2aXJ0cXVldWUgKnZxKTsK PiAtLQo+IDIuMzIuMC4zLmcwMTE5NWNmOWYKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxp emF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3Vu ZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE9B815AFC for ; Tue, 27 Jun 2023 08:03:40 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8093EE71 for ; Tue, 27 Jun 2023 01:03:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687853018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EAIgwfCxKCOJsdi6od/XlBbV/+5tFRsCfnVys12ZFNk=; b=LJ3QSXEVA4ijZO632BKlVcvWI7YS0jQRTtcTsgcH324tgfvzq1oI9hGWdB7ANwkOq76r2a YIVsX3UbFdkj251btm9gGz9m2tCmb/5c7cFuHD7xf1PblD+H0XN1XKoZRKhGrtb9PSw6ix auHIch+hADR6PIhRStJNBh16I5bDqIs= Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-145-h4hvF1g2Phurz9M6UHFc7w-1; Tue, 27 Jun 2023 04:03:37 -0400 X-MC-Unique: h4hvF1g2Phurz9M6UHFc7w-1 Received: by mail-lj1-f198.google.com with SMTP id 38308e7fff4ca-2b6997407faso20403931fa.2 for ; Tue, 27 Jun 2023 01:03:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687853015; x=1690445015; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EAIgwfCxKCOJsdi6od/XlBbV/+5tFRsCfnVys12ZFNk=; b=UJnU2GUTePA8ooMOBKgk9rxu7MeTpkslg5zcO6u8M12iu0szbN6d+YTx/ymvmL6Uk0 LN//xk5zda7Iw7CuMIEpMdNspu7fOFbHE5lSE60fMtTysmgs/QLTZUOkh5XZHrVt7V8b WcHkZYi3BMtzp13ISvBjZImBzQD82ZoPvPwWCx+pbFhFOOItMs8hfM1Qv4bU9RCPqdGZ LrOLTiaprl7I3cukBDNJ5vkiRHJlDXhHbZyWDF5n8M43kshpt7AUNIGJTgiP6r96jiOc 06LJcwunqGMtmLHyuFCKupF9jO9VcC6tZ2wQ8Qiwq9jrr+3IQKir1i0kESk22fUHx7G4 Mprw== X-Gm-Message-State: AC+VfDyDrHaKjnj8N9VEr5J6F612tsBKyS0U7AyumiXRk59fT2c0aHHg J5AYXbgwczZnx+ANk1bwkSEJ4PQDb0YJVbNqTp5LhGcbFmrPrQkqbAdSvWF68dIF73vRy1AZjGF X0PFYqMqHo7JoYWQdNebjfzkF3nIy X-Received: by 2002:a2e:7316:0:b0:2b6:9e58:33e4 with SMTP id o22-20020a2e7316000000b002b69e5833e4mr3819042ljc.4.1687853014817; Tue, 27 Jun 2023 01:03:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5hU3RHXYr/pj0pxaHkeuHxuPz++Ykm7OjgngDYXG0THDVyAk4d453g90XaTYXzIjRL+EoepNV13PFA/YETwDY= X-Received: by 2002:a2e:7316:0:b0:2b6:9e58:33e4 with SMTP id o22-20020a2e7316000000b002b69e5833e4mr3819029ljc.4.1687853014630; Tue, 27 Jun 2023 01:03:34 -0700 (PDT) Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20230602092206.50108-1-xuanzhuo@linux.alibaba.com> <20230602092206.50108-3-xuanzhuo@linux.alibaba.com> In-Reply-To: <20230602092206.50108-3-xuanzhuo@linux.alibaba.com> From: Jason Wang Date: Tue, 27 Jun 2023 16:03:23 +0800 Message-ID: Subject: Re: [PATCH vhost v10 02/10] virtio_ring: introduce virtqueue_set_premapped() To: Xuan Zhuo Cc: virtualization@lists.linux-foundation.org, "Michael S. Tsirkin" , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , netdev@vger.kernel.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net On Fri, Jun 2, 2023 at 5:22=E2=80=AFPM Xuan Zhuo wrote: > > This helper allows the driver change the dma mode to premapped mode. > Under the premapped mode, the virtio core do not do dma mapping > internally. > > This just work when the use_dma_api is true. If the use_dma_api is false, > the dma options is not through the DMA APIs, that is not the standard > way of the linux kernel. > > Signed-off-by: Xuan Zhuo > --- > drivers/virtio/virtio_ring.c | 40 ++++++++++++++++++++++++++++++++++++ > include/linux/virtio.h | 2 ++ > 2 files changed, 42 insertions(+) > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > index 72ed07a604d4..2afdfb9e3e30 100644 > --- a/drivers/virtio/virtio_ring.c > +++ b/drivers/virtio/virtio_ring.c > @@ -172,6 +172,9 @@ struct vring_virtqueue { > /* Host publishes avail event idx */ > bool event; > > + /* Do DMA mapping by driver */ > + bool premapped; > + > /* Head of free buffer list. */ > unsigned int free_head; > /* Number we've added since last sync. */ > @@ -2059,6 +2062,7 @@ static struct virtqueue *vring_create_virtqueue_pac= ked( > vq->packed_ring =3D true; > vq->dma_dev =3D dma_dev; > vq->use_dma_api =3D vring_use_dma_api(vdev); > + vq->premapped =3D false; > > vq->indirect =3D virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_= DESC) && > !context; > @@ -2548,6 +2552,7 @@ static struct virtqueue *__vring_new_virtqueue(unsi= gned int index, > #endif > vq->dma_dev =3D dma_dev; > vq->use_dma_api =3D vring_use_dma_api(vdev); > + vq->premapped =3D false; > > vq->indirect =3D virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_= DESC) && > !context; > @@ -2691,6 +2696,41 @@ int virtqueue_resize(struct virtqueue *_vq, u32 nu= m, > } > EXPORT_SYMBOL_GPL(virtqueue_resize); > > +/** > + * virtqueue_set_premapped - set the vring premapped mode > + * @_vq: the struct virtqueue we're talking about. > + * > + * Enable the premapped mode of the vq. > + * > + * The vring in premapped mode does not do dma internally, so the driver= must > + * do dma mapping in advance. The driver must pass the dma_address throu= gh > + * dma_address of scatterlist. When the driver got a used buffer from > + * the vring, it has to unmap the dma address. So the driver must call > + * virtqueue_get_buf_premapped()/virtqueue_detach_unused_buf_premapped()= . > + * > + * This must be called before adding any buf to vring. And any old buffer should be detached? > + * So this should be called immediately after init vq or vq reset. Any way to detect and warn in this case? (not a must if it's too expensive to do the check) > + * > + * Caller must ensure we don't call this with other virtqueue operations > + * at the same time (except where noted). > + * > + * Returns zero or a negative error. > + * 0: success. > + * -EINVAL: vring does not use the dma api, so we can not enable premapp= ed mode. > + */ > +int virtqueue_set_premapped(struct virtqueue *_vq) > +{ > + struct vring_virtqueue *vq =3D to_vvq(_vq); > + > + if (!vq->use_dma_api) > + return -EINVAL; > + > + vq->premapped =3D true; I guess there should be a way to disable it. Would it be useful for the case when AF_XDP sockets were destroyed? Thanks > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(virtqueue_set_premapped); > + > /* Only available for split ring */ > struct virtqueue *vring_new_virtqueue(unsigned int index, > unsigned int num, > diff --git a/include/linux/virtio.h b/include/linux/virtio.h > index b93238db94e3..1fc0e1023bd4 100644 > --- a/include/linux/virtio.h > +++ b/include/linux/virtio.h > @@ -78,6 +78,8 @@ bool virtqueue_enable_cb(struct virtqueue *vq); > > unsigned virtqueue_enable_cb_prepare(struct virtqueue *vq); > > +int virtqueue_set_premapped(struct virtqueue *_vq); > + > bool virtqueue_poll(struct virtqueue *vq, unsigned); > > bool virtqueue_enable_cb_delayed(struct virtqueue *vq); > -- > 2.32.0.3.g01195cf9f >