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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 14B32C00140 for ; Mon, 15 Aug 2022 15:52:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6A45C60FB2; Mon, 15 Aug 2022 15:52:55 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6A45C60FB2 Authentication-Results: smtp3.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=FnAIvFH+ 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 vRuu4GSbvVLC; Mon, 15 Aug 2022 15:52:54 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id A625A60F9E; Mon, 15 Aug 2022 15:52:53 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A625A60F9E Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7A1E0C0033; Mon, 15 Aug 2022 15:52:53 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id A9605C002D for ; Mon, 15 Aug 2022 15:52:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 74054417D8 for ; Mon, 15 Aug 2022 15:52:52 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 74054417D8 Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=FnAIvFH+ 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 f4Db62rIGElq for ; Mon, 15 Aug 2022 15:52:51 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 014E04177E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp4.osuosl.org (Postfix) with ESMTPS id 014E04177E for ; Mon, 15 Aug 2022 15:52:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1660578769; 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=/Nqcs8aa7/L83Uz8Dknl+flwCz9c6FCbM8IP+tpiszM=; b=FnAIvFH+PAHUUBRB4AYFFzxSm6jQOzmArAJf8RiFSNnQtMKrxdsHj2tYeOEpDjzJkJSeoF foRHmsm/ulUpypbtL/YHw8o85OR3+uOMo6JE/AaKLVsexKUgAvTjpv2V4f6m6RbJqY9MMV crTh0E/IHJqsCrG6iJynsQEm378P6xA= Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-641-3gdBNHCxNEyg2EgNnUk5uQ-1; Mon, 15 Aug 2022 11:52:46 -0400 X-MC-Unique: 3gdBNHCxNEyg2EgNnUk5uQ-1 Received: by mail-ed1-f70.google.com with SMTP id j19-20020a05640211d300b0043ddce5c23aso4946771edw.14 for ; Mon, 15 Aug 2022 08:52:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc; bh=/Nqcs8aa7/L83Uz8Dknl+flwCz9c6FCbM8IP+tpiszM=; b=ZDzgT52kNzC1ed9ti55/+AH93pwK0f88WOC5np6JQFVuFCf2T8ACPfgJrVB7BuS3lu RZWdLRg2BmSJzYIP6M0JmX1o3ZnMUDc+7qNI64xwvNfhs5grXeLRi9cyh1B+WqDso19h R4X5Al8cIKF/M3c2AYTmDlf3tZHq7KUZV3MnA0jsF2DIlHJGx/zHikarP01wQIGTtAmP AyfXIV6Pj81U90AA32q2D7L6hm8lEnTo0whLf2ojQO675YqwhQqgnCm6uUs+ascLyTvp EKgTgHZrgdz0ANe2GVfMA6vDQx2m8ZAakLJZ4zEq5uET9Q2xDx4wlc3dbonpmTuiVavF GH0Q== X-Gm-Message-State: ACgBeo0001SRQZiSDKZRHTeejSItjpdIKGtX3+Iup9vEXCs4d3Gi/tVZ G0Ex8UIe3g1dYVIP/6Uq16Gbg9dE6LFhbz549tYzE6UMHusjhqTfePegZA71PAwPSQwKiV2ODcs nG/aicOx/z6/TjDnrGfXUlAGGWgpFis+FqNI7oaRACw== X-Received: by 2002:aa7:d292:0:b0:43d:7923:66cd with SMTP id w18-20020aa7d292000000b0043d792366cdmr14420717edq.403.1660578765283; Mon, 15 Aug 2022 08:52:45 -0700 (PDT) X-Google-Smtp-Source: AA6agR6nIFBB+89khXDcKZ1x+E5GSpuggmwuIXVyMYifWU71qMF4gZFv0oZKWPNyImccf4QH1VsZkQ== X-Received: by 2002:aa7:d292:0:b0:43d:7923:66cd with SMTP id w18-20020aa7d292000000b0043d792366cdmr14420699edq.403.1660578765066; Mon, 15 Aug 2022 08:52:45 -0700 (PDT) Received: from redhat.com ([2.54.169.49]) by smtp.gmail.com with ESMTPSA id z28-20020a17090674dc00b00734bfab4d64sm4157408ejl.25.2022.08.15.08.52.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Aug 2022 08:52:44 -0700 (PDT) Date: Mon, 15 Aug 2022 11:52:40 -0400 From: "Michael S. Tsirkin" To: Zhu Lingshan Subject: Re: [PATCH 2/2] vDPA: conditionally read fields in virtio-net dev Message-ID: <20220815114900-mutt-send-email-mst@kernel.org> References: <20220815092638.504528-1-lingshan.zhu@intel.com> <20220815092638.504528-3-lingshan.zhu@intel.com> MIME-Version: 1.0 In-Reply-To: <20220815092638.504528-3-lingshan.zhu@intel.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: kvm@vger.kernel.org, netdev@vger.kernel.org, virtualization@lists.linux-foundation.org, xieyongji@bytedance.com, gautam.dawar@amd.com 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" T24gTW9uLCBBdWcgMTUsIDIwMjIgYXQgMDU6MjY6MzhQTSArMDgwMCwgWmh1IExpbmdzaGFuIHdy b3RlOgo+IFNvbWUgZmllbGRzIG9mIHZpcnRpby1uZXQgZGV2aWNlIGNvbmZpZyBzcGFjZSBhcmUK PiBjb25kaXRpb25hbCBvbiB0aGUgZmVhdHVyZSBiaXRzLCB0aGUgc3BlYyBzYXlzOgo+IAo+ICJU aGUgbWFjIGFkZHJlc3MgZmllbGQgYWx3YXlzIGV4aXN0cwo+ICh0aG91Z2ggaXMgb25seSB2YWxp ZCBpZiBWSVJUSU9fTkVUX0ZfTUFDIGlzIHNldCkiCj4gCj4gIm1heF92aXJ0cXVldWVfcGFpcnMg b25seSBleGlzdHMgaWYgVklSVElPX05FVF9GX01RCj4gb3IgVklSVElPX05FVF9GX1JTUyBpcyBz ZXQiCj4gCj4gIm10dSBvbmx5IGV4aXN0cyBpZiBWSVJUSU9fTkVUX0ZfTVRVIGlzIHNldCIKPiAK PiBzbyB3ZSBzaG91bGQgcmVhZCBNVFUsIE1BQyBhbmQgTVEgaW4gdGhlIGRldmljZSBjb25maWcK PiBzcGFjZSBvbmx5IHdoZW4gdGhlc2UgZmVhdHVyZSBiaXRzIGFyZSBvZmZlcmVkLgo+IAo+IEZv ciBNUSwgaWYgYm90aCBWSVJUSU9fTkVUX0ZfTVEgYW5kIFZJUlRJT19ORVRfRl9SU1MgYXJlCj4g bm90IHNldCwgdGhlIHZpcnRpbyBkZXZpY2Ugc2hvdWxkIGhhdmUKPiBvbmUgcXVldWUgcGFpciBh cyBkZWZhdWx0IHZhbHVlLCBzbyB3aGVuIHVzZXJzcGFjZSBxdWVyeWluZyBxdWV1ZSBwYWlyIG51 bWJlcnMsCj4gaXQgc2hvdWxkIHJldHVybiBtcT0xIHRoYW4gemVyby4KPiAKPiBGb3IgTVRVLCBp ZiBWSVJUSU9fTkVUX0ZfTVRVIGlzIG5vdCBzZXQsIHdlIHNob3VsZCBub3QgcmVhZAo+IE1UVSBm cm9tIHRoZSBkZXZpY2UgY29uZmlnIHNhcGNlLgo+IFJGQzg5NCA8QSBTdGFuZGFyZCBmb3IgdGhl IFRyYW5zbWlzc2lvbiBvZiBJUCBEYXRhZ3JhbXMgb3ZlciBFdGhlcm5ldCBOZXR3b3Jrcz4KPiBz YXlzOiJUaGUgbWluaW11bSBsZW5ndGggb2YgdGhlIGRhdGEgZmllbGQgb2YgYSBwYWNrZXQgc2Vu dCBvdmVyIGFuCj4gRXRoZXJuZXQgaXMgMTUwMCBvY3RldHMsIHRodXMgdGhlIG1heGltdW0gbGVu Z3RoIG9mIGFuIElQIGRhdGFncmFtCj4gc2VudCBvdmVyIGFuIEV0aGVybmV0IGlzIDE1MDAgb2N0 ZXRzLiAgSW1wbGVtZW50YXRpb25zIGFyZSBlbmNvdXJhZ2VkCj4gdG8gc3VwcG9ydCBmdWxsLWxl bmd0aCBwYWNrZXRzIgo+IAo+IHZpcnRpbyBzcGVjIHNheXM6IlRoZSB2aXJ0aW8gbmV0d29yayBk ZXZpY2UgaXMgYSB2aXJ0dWFsIGV0aGVybmV0IGNhcmQiLAo+IHNvIHRoZSBkZWZhdWx0IE1UVSB2 YWx1ZSBzaG91bGQgYmUgMTUwMCBmb3IgdmlydGlvLW5ldC4KPiAKPiBGb3IgTUFDLCB0aGUgc3Bl YyBzYXlzOiJJZiB0aGUgVklSVElPX05FVF9GX01BQyBmZWF0dXJlIGJpdCBpcyBzZXQsCj4gdGhl IGNvbmZpZ3VyYXRpb24gc3BhY2UgbWFjIGVudHJ5IGluZGljYXRlcyB0aGUg4oCccGh5c2ljYWzi gJ0gYWRkcmVzcwo+IG9mIHRoZSBuZXR3b3JrIGNhcmQsIG90aGVyd2lzZSB0aGUgZHJpdmVyIHdv dWxkIHR5cGljYWxseQo+IGdlbmVyYXRlIGEgcmFuZG9tIGxvY2FsIE1BQyBhZGRyZXNzLiIgU28g dGhlcmUgaXMgbm8KPiBkZWZhdWx0IE1BQyBhZGRyZXNzIGlmIFZJUlRJT19ORVRfRl9NQUMgbm90 IHNldC4KPiAKPiBUaGlzIGNvbW1pdHMgaW50cm9kdWNlcyBmdW5jdGlvbnMgdmRwYV9kZXZfbmV0 X210dV9jb25maWdfZmlsbCgpCj4gYW5kIHZkcGFfZGV2X25ldF9tYWNfY29uZmlnX2ZpbGwoKSB0 byBmaWxsIE1UVSBhbmQgTUFDLgo+IEl0IGFsc28gZml4ZXMgdmRwYV9kZXZfbmV0X21xX2NvbmZp Z19maWxsKCkgdG8gcmVwb3J0IGNvcnJlY3QKPiBNUSB3aGVuIF9GX01RIGlzIG5vdCBwcmVzZW50 Lgo+IAo+IFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgY2hlY2sgZGV2aWNlcyBmZWF0dXJlcyB0aGFu IGRyaXZlcgo+IGZlYXR1cmVzLCBhbmQgc3RydWN0IHZkcGFfZGV2aWNlIGlzIG5vdCBuZWVkZWQg YXMgYSBwYXJhbWV0ZXIKPiAKPiBUaGUgdGVzdCAmIHVzZXJzcGFjZSB0b29sIG91dHB1dDoKPiAK PiBGZWF0dXJlIGJpdCBWSVJUSU9fTkVUX0ZfTVRVLCBWSVJUSU9fTkVUX0ZfUlNTLCBWSVJUSU9f TkVUX0ZfTVEKPiBhbmQgVklSVElPX05FVF9GX01BQyBjYW4gYmUgbWFzayBvdXQgYnkgaGFyZGNv ZGUuCj4gCj4gSG93ZXZlciwgaXQgaXMgY2hhbGxlbmdpbmcgdG8gImRpc2FibGUiIHRoZSByZWxh dGVkIGZpZWxkcwo+IGluIHRoZSBIVyBkZXZpY2UgY29uZmlnIHNwYWNlLCBzbyBsZXQncyBqdXN0 IGFzc3VtZSB0aGUgdmFsdWVzCj4gYXJlIG1lYW5pbmdsZXNzIGlmIHRoZSBmZWF0dXJlIGJpdHMg YXJlIG5vdCBzZXQuCj4gCj4gQmVmb3JlIHRoaXMgY2hhbmdlLCB3aGVuIGZlYXR1cmUgYml0cyBm b3IgUlNTLCBNUSwgTVRVIGFuZCBNQUMKPiBhcmUgbm90IHNldCwgaXByb3V0ZTIgb3V0cHV0Ogo+ ICR2ZHBhIHZkcGEwOiBtYWMgMDA6ZTg6Y2E6MTE6YmU6MDUgbGluayB1cCBsaW5rX2Fubm91bmNl IGZhbHNlIG10dSAxNTAwCj4gICBuZWdvdGlhdGVkX2ZlYXR1cmVzCgp3aGVyZSBkb2VzIGl0IGdl dCAxNTAwPyB3aGF0IGlmIHRoZXJlJ3MgZS5nLiAwIGluIHRoZSBtdHUgZmllbGQ/Cgo+IHdpdGhv dXQgdGhpcyBjb21taXQsIGZ1bmN0aW9uIHZkcGFfZGV2X25ldF9jb25maWdfZmlsbCgpCj4gcmVh ZHMgYWxsIGNvbmZpZyBzcGFjZSBmaWVsZHMgdW5jb25kaXRpb25hbGx5LCBzbyBsZXQncwo+IGFz c3VtZSB0aGUgTUFDIGFuZCBNVFUgYXJlIG1lYW5pbmdsZXNzLCBhbmQgaXQgY2hlY2tzCj4gTVEg d2l0aCBkcml2ZXJfZmVhdHVyZXMsIHNvIHdlIGRvbid0IHNlZSBtYXhfdnFfcGFpcnMuCj4gCj4g QWZ0ZXIgYXBwbHlpbmcgdGhpcyBjb21taXQsIHdoZW4gZmVhdHVyZSBiaXRzIGZvcgo+IE1RLCBS U1MsIE1BQyBhbmQgTVRVIGFyZSBub3Qgc2V0LGlwcm91dGUyIG91dHB1dDoKPiAkdmRwYSBkZXYg Y29uZmlnIHNob3cgdmRwYTAKPiB2ZHBhMDogbGluayB1cCBsaW5rX2Fubm91bmNlIGZhbHNlIG1h eF92cV9wYWlycyAxIG10dSAxNTAwCj4gICBuZWdvdGlhdGVkX2ZlYXR1cmVzCj4gCj4gQXMgZXhw bGFpbmVkIGFib3ZlOgo+IEhlcmUgaXMgbm8gTUFDLCBiZWNhdXNlIFZJUlRJT19ORVRfRl9NQUMg aXMgbm90IHNldCwKPiBhbmQgdGhlcmUgaXMgbm8gZGVmYXVsdCB2YWx1ZSBmb3IgTUFDLiBJdCBz aG93cwo+IG1heF92cV9wYXJpcyA9IDEgYmVjYXVzZSBldmVuIHdpdGhvdXQgTVEgZmVhdHVyZSwK PiBhIGZ1bmN0aW9uYWwgdmlydGlvLW5ldCBtdXN0IGhhdmUgb25lIHF1ZXVlIHBhaXIuCj4gbXR1 ID0gMTUwMCBpcyB0aGUgZGVmYXVsdCB2YWx1ZSBhcyBldGhlcm5ldAo+IHJlcXVpcmVkLgo+IAo+ IFRoaXMgY29tbWl0IGFsc28gYWRkIHN1cHBsZW1lbnRhcnkgY29tbWVudHMgZm9yCj4gX192aXJ0 aW8xNl90b19jcHUodHJ1ZSwgeHh4KSBvcGVyYXRpb25zIGluCj4gdmRwYV9kZXZfbmV0X2NvbmZp Z19maWxsKCkgYW5kIHZkcGFfZmlsbF9zdGF0c19yZWMoKQo+IAo+IFNpZ25lZC1vZmYtYnk6IFpo dSBMaW5nc2hhbiA8bGluZ3NoYW4uemh1QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy92ZHBh L3ZkcGEuYyB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LQo+ICAxIGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS92ZHBhLmMgYi9kcml2ZXJzL3ZkcGEvdmRwYS5j Cj4gaW5kZXggZWZiNTVhMDZlOTYxLi5hNzQ2NjBiOTg5NzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy92ZHBhL3ZkcGEuYwo+ICsrKyBiL2RyaXZlcnMvdmRwYS92ZHBhLmMKPiBAQCAtODAxLDE5ICs4 MDEsNDQgQEAgc3RhdGljIGludCB2ZHBhX25sX2NtZF9kZXZfZ2V0X2R1bXBpdChzdHJ1Y3Qgc2tf YnVmZiAqbXNnLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmEKPiAgCXJldHVybiBtc2ctPmxlbjsKPiAg fQo+ICAKPiAtc3RhdGljIGludCB2ZHBhX2Rldl9uZXRfbXFfY29uZmlnX2ZpbGwoc3RydWN0IHZk cGFfZGV2aWNlICp2ZGV2LAo+IC0JCQkJICAgICAgIHN0cnVjdCBza19idWZmICptc2csIHU2NCBm ZWF0dXJlcywKPiArc3RhdGljIGludCB2ZHBhX2Rldl9uZXRfbXFfY29uZmlnX2ZpbGwoc3RydWN0 IHNrX2J1ZmYgKm1zZywgdTY0IGZlYXR1cmVzLAo+ICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2 aXJ0aW9fbmV0X2NvbmZpZyAqY29uZmlnKQo+ICB7Cj4gIAl1MTYgdmFsX3UxNjsKPiAgCj4gLQlp ZiAoKGZlYXR1cmVzICYgQklUX1VMTChWSVJUSU9fTkVUX0ZfTVEpKSA9PSAwKQo+IC0JCXJldHVy biAwOwo+ICsJaWYgKChmZWF0dXJlcyAmIEJJVF9VTEwoVklSVElPX05FVF9GX01RKSkgPT0gMCAm Jgo+ICsJICAgIChmZWF0dXJlcyAmIEJJVF9VTEwoVklSVElPX05FVF9GX1JTUykpID09IDApCj4g KwkJdmFsX3UxNiA9IDE7Cj4gKwllbHNlCj4gKwkJdmFsX3UxNiA9IF9fdmlydGlvMTZfdG9fY3B1 KHRydWUsIGNvbmZpZy0+bWF4X3ZpcnRxdWV1ZV9wYWlycyk7Cj4gIAo+IC0JdmFsX3UxNiA9IGxl MTZfdG9fY3B1KGNvbmZpZy0+bWF4X3ZpcnRxdWV1ZV9wYWlycyk7Cj4gIAlyZXR1cm4gbmxhX3B1 dF91MTYobXNnLCBWRFBBX0FUVFJfREVWX05FVF9DRkdfTUFYX1ZRUCwgdmFsX3UxNik7Cj4gIH0K PiAgCj4gK3N0YXRpYyBpbnQgdmRwYV9kZXZfbmV0X210dV9jb25maWdfZmlsbChzdHJ1Y3Qgc2tf YnVmZiAqbXNnLCB1NjQgZmVhdHVyZXMsCj4gKwkJCQkJY29uc3Qgc3RydWN0IHZpcnRpb19uZXRf Y29uZmlnICpjb25maWcpCj4gK3sKPiArCXUxNiB2YWxfdTE2Owo+ICsKPiArCWlmICgoZmVhdHVy ZXMgJiBCSVRfVUxMKFZJUlRJT19ORVRfRl9NVFUpKSA9PSAwKQo+ICsJCXZhbF91MTYgPSAxNTAw Owo+ICsJZWxzZQo+ICsJCXZhbF91MTYgPSBfX3ZpcnRpbzE2X3RvX2NwdSh0cnVlLCBjb25maWct Pm10dSk7Cj4gKwo+ICsJcmV0dXJuIG5sYV9wdXRfdTE2KG1zZywgVkRQQV9BVFRSX0RFVl9ORVRf Q0ZHX01UVSwgdmFsX3UxNik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdmRwYV9kZXZfbmV0X21h Y19jb25maWdfZmlsbChzdHJ1Y3Qgc2tfYnVmZiAqbXNnLCB1NjQgZmVhdHVyZXMsCj4gKwkJCQkJ Y29uc3Qgc3RydWN0IHZpcnRpb19uZXRfY29uZmlnICpjb25maWcpCj4gK3sKPiArCWlmICgoZmVh dHVyZXMgJiBCSVRfVUxMKFZJUlRJT19ORVRfRl9NQUMpKSA9PSAwKQo+ICsJCXJldHVybiAwOwo+ ICsJZWxzZQo+ICsJCXJldHVybiAgbmxhX3B1dChtc2csIFZEUEFfQVRUUl9ERVZfTkVUX0NGR19N QUNBRERSLAo+ICsJCQkJc2l6ZW9mKGNvbmZpZy0+bWFjKSwgY29uZmlnLT5tYWMpOwo+ICt9Cj4g Kwo+ICsKPiAgc3RhdGljIGludCB2ZHBhX2Rldl9uZXRfY29uZmlnX2ZpbGwoc3RydWN0IHZkcGFf ZGV2aWNlICp2ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqbXNnKQo+ICB7Cj4gIAlzdHJ1Y3QgdmlydGlv X25ldF9jb25maWcgY29uZmlnID0ge307Cj4gQEAgLTgyMiwxOCArODQ3LDE2IEBAIHN0YXRpYyBp bnQgdmRwYV9kZXZfbmV0X2NvbmZpZ19maWxsKHN0cnVjdCB2ZHBhX2RldmljZSAqdmRldiwgc3Ry dWN0IHNrX2J1ZmYgKm1zCj4gIAo+ICAJdmRwYV9nZXRfY29uZmlnX3VubG9ja2VkKHZkZXYsIDAs ICZjb25maWcsIHNpemVvZihjb25maWcpKTsKPiAgCj4gLQlpZiAobmxhX3B1dChtc2csIFZEUEFf QVRUUl9ERVZfTkVUX0NGR19NQUNBRERSLCBzaXplb2YoY29uZmlnLm1hYyksCj4gLQkJICAgIGNv bmZpZy5tYWMpKQo+IC0JCXJldHVybiAtRU1TR1NJWkU7Cj4gKwkvKgo+ICsJICogQXNzdW1lIGxp dHRsZSBlbmRpYW4gZm9yIG5vdywgdXNlcnNwYWNlIGNhbiB0d2VhayB0aGlzIGZvcgo+ICsJICog bGVnYWN5IGd1ZXN0IHN1cHBvcnQuCj4gKwkgKi8KPiArCXZhbF91MTYgPSBfX3ZpcnRpbzE2X3Rv X2NwdSh0cnVlLCBjb25maWcuc3RhdHVzKTsKPiAgCj4gIAl2YWxfdTE2ID0gX192aXJ0aW8xNl90 b19jcHUodHJ1ZSwgY29uZmlnLnN0YXR1cyk7Cj4gIAlpZiAobmxhX3B1dF91MTYobXNnLCBWRFBB X0FUVFJfREVWX05FVF9TVEFUVVMsIHZhbF91MTYpKQo+ICAJCXJldHVybiAtRU1TR1NJWkU7Cj4g IAo+IC0JdmFsX3UxNiA9IF9fdmlydGlvMTZfdG9fY3B1KHRydWUsIGNvbmZpZy5tdHUpOwo+IC0J aWYgKG5sYV9wdXRfdTE2KG1zZywgVkRQQV9BVFRSX0RFVl9ORVRfQ0ZHX01UVSwgdmFsX3UxNikp Cj4gLQkJcmV0dXJuIC1FTVNHU0laRTsKPiAtCj4gIAlmZWF0dXJlc19kcml2ZXIgPSB2ZGV2LT5j b25maWctPmdldF9kcml2ZXJfZmVhdHVyZXModmRldik7Cj4gIAlpZiAobmxhX3B1dF91NjRfNjRi aXQobXNnLCBWRFBBX0FUVFJfREVWX05FR09USUFURURfRkVBVFVSRVMsIGZlYXR1cmVzX2RyaXZl ciwKPiAgCQkJICAgICAgVkRQQV9BVFRSX1BBRCkpCj4gQEAgLTg0Niw3ICs4NjksMTMgQEAgc3Rh dGljIGludCB2ZHBhX2Rldl9uZXRfY29uZmlnX2ZpbGwoc3RydWN0IHZkcGFfZGV2aWNlICp2ZGV2 LCBzdHJ1Y3Qgc2tfYnVmZiAqbXMKPiAgCQkJICAgICAgVkRQQV9BVFRSX1BBRCkpCj4gIAkJcmV0 dXJuIC1FTVNHU0laRTsKPiAgCj4gLQlyZXR1cm4gdmRwYV9kZXZfbmV0X21xX2NvbmZpZ19maWxs KHZkZXYsIG1zZywgZmVhdHVyZXNfZHJpdmVyLCAmY29uZmlnKTsKPiArCWlmICh2ZHBhX2Rldl9u ZXRfbWFjX2NvbmZpZ19maWxsKG1zZywgZmVhdHVyZXNfZGV2aWNlLCAmY29uZmlnKSkKPiArCQly ZXR1cm4gLUVNU0dTSVpFOwo+ICsKPiArCWlmICh2ZHBhX2Rldl9uZXRfbXR1X2NvbmZpZ19maWxs KG1zZywgZmVhdHVyZXNfZGV2aWNlLCAmY29uZmlnKSkKPiArCQlyZXR1cm4gLUVNU0dTSVpFOwo+ ICsKPiArCXJldHVybiB2ZHBhX2Rldl9uZXRfbXFfY29uZmlnX2ZpbGwobXNnLCBmZWF0dXJlc19k ZXZpY2UsICZjb25maWcpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50Cj4gQEAgLTkxNCw2ICs5NDMs MTEgQEAgc3RhdGljIGludCB2ZHBhX2ZpbGxfc3RhdHNfcmVjKHN0cnVjdCB2ZHBhX2RldmljZSAq dmRldiwgc3RydWN0IHNrX2J1ZmYgKm1zZywKPiAgCX0KPiAgCXZkcGFfZ2V0X2NvbmZpZ191bmxv Y2tlZCh2ZGV2LCAwLCAmY29uZmlnLCBzaXplb2YoY29uZmlnKSk7Cj4gIAo+ICsJLyoKPiArCSAq IEFzc3VtZSBsaXR0bGUgZW5kaWFuIGZvciBub3csIHVzZXJzcGFjZSBjYW4gdHdlYWsgdGhpcyBm b3IKPiArCSAqIGxlZ2FjeSBndWVzdCBzdXBwb3J0Lgo+ICsJICovCj4gKwo+ICAJbWF4X3ZxcCA9 IF9fdmlydGlvMTZfdG9fY3B1KHRydWUsIGNvbmZpZy5tYXhfdmlydHF1ZXVlX3BhaXJzKTsKPiAg CWlmIChubGFfcHV0X3UxNihtc2csIFZEUEFfQVRUUl9ERVZfTkVUX0NGR19NQVhfVlFQLCBtYXhf dnFwKSkKPiAgCQlyZXR1cm4gLUVNU0dTSVpFOwo+IC0tIAo+IDIuMzEuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGlu ZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8v bGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2280FC00140 for ; Mon, 15 Aug 2022 15:52:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231359AbiHOPwv (ORCPT ); Mon, 15 Aug 2022 11:52:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229515AbiHOPwt (ORCPT ); Mon, 15 Aug 2022 11:52:49 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DCEF3167F6 for ; Mon, 15 Aug 2022 08:52:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1660578767; 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=/Nqcs8aa7/L83Uz8Dknl+flwCz9c6FCbM8IP+tpiszM=; b=LJV0rGhk8+m1VfBz1ftBaZDSIud14xwNc7ZzRJBKvi19YB3pahEWHmK4SRNzEgoKlt8b97 cbgLG4nHvHwZ/7g36jPbWm/a3SYeMMjLqvEEaN40DTZan3VbbVUAKTdNCAw3VXrEAza5G2 7aBsz5tcWzUZgCVm2f+//XZ1k/w7bQc= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-532-ie5Iw025P4SFYGw3Azr5vQ-1; Mon, 15 Aug 2022 11:52:46 -0400 X-MC-Unique: ie5Iw025P4SFYGw3Azr5vQ-1 Received: by mail-ed1-f69.google.com with SMTP id m22-20020a056402431600b0043d6a88130aso4928976edc.18 for ; Mon, 15 Aug 2022 08:52:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc; bh=/Nqcs8aa7/L83Uz8Dknl+flwCz9c6FCbM8IP+tpiszM=; b=KEd9sqAQIrGlsJ5h55O6G8iTrymqtGJONsiSYob9yJWQ5OBeLsL9rhhO7Mq+OrYcmd +GVLsJytEiKHrGw8n5cnatqN0bA9oKYllrochuUPVI2HDUWMHz5injRRZHZtOiljB8AN 92iYKAiB7DzKxlwODm+TLG05K0/JxNlGBitu3hGJCXKl1XGEzWR3+eWzPB5SRwIjCR27 AZgsk42GYvBib7XZtR97Jx5CmjB11/u862Kniwr6kA1aDDZe2g6slA3zb8pHlQusiRfN 0j+IMC31vWzIW2d2p8YRw7MN52CpCvjblqfVkba0kiVXVrl9Ld9/VvOOmyy4+6Al44an hTbQ== X-Gm-Message-State: ACgBeo3xj7B/y89Rzl+Gj5Z2RhzF1WcKuQp4gQ3IcOT6p88+COlUTom6 RHHzmyzse7VD/3pGuDOKc17tRTib68RlCebaZKX8o+BvhZ3whie5Gvj5HWE13hQ4yP7fqRGlhaU G29HoSzBHyyN4 X-Received: by 2002:aa7:d292:0:b0:43d:7923:66cd with SMTP id w18-20020aa7d292000000b0043d792366cdmr14420721edq.403.1660578765285; Mon, 15 Aug 2022 08:52:45 -0700 (PDT) X-Google-Smtp-Source: AA6agR6nIFBB+89khXDcKZ1x+E5GSpuggmwuIXVyMYifWU71qMF4gZFv0oZKWPNyImccf4QH1VsZkQ== X-Received: by 2002:aa7:d292:0:b0:43d:7923:66cd with SMTP id w18-20020aa7d292000000b0043d792366cdmr14420699edq.403.1660578765066; Mon, 15 Aug 2022 08:52:45 -0700 (PDT) Received: from redhat.com ([2.54.169.49]) by smtp.gmail.com with ESMTPSA id z28-20020a17090674dc00b00734bfab4d64sm4157408ejl.25.2022.08.15.08.52.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Aug 2022 08:52:44 -0700 (PDT) Date: Mon, 15 Aug 2022 11:52:40 -0400 From: "Michael S. Tsirkin" To: Zhu Lingshan Cc: jasowang@redhat.com, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, kvm@vger.kernel.org, parav@nvidia.com, xieyongji@bytedance.com, gautam.dawar@amd.com Subject: Re: [PATCH 2/2] vDPA: conditionally read fields in virtio-net dev Message-ID: <20220815114900-mutt-send-email-mst@kernel.org> References: <20220815092638.504528-1-lingshan.zhu@intel.com> <20220815092638.504528-3-lingshan.zhu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220815092638.504528-3-lingshan.zhu@intel.com> Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On Mon, Aug 15, 2022 at 05:26:38PM +0800, Zhu Lingshan wrote: > Some fields of virtio-net device config space are > conditional on the feature bits, the spec says: > > "The mac address field always exists > (though is only valid if VIRTIO_NET_F_MAC is set)" > > "max_virtqueue_pairs only exists if VIRTIO_NET_F_MQ > or VIRTIO_NET_F_RSS is set" > > "mtu only exists if VIRTIO_NET_F_MTU is set" > > so we should read MTU, MAC and MQ in the device config > space only when these feature bits are offered. > > For MQ, if both VIRTIO_NET_F_MQ and VIRTIO_NET_F_RSS are > not set, the virtio device should have > one queue pair as default value, so when userspace querying queue pair numbers, > it should return mq=1 than zero. > > For MTU, if VIRTIO_NET_F_MTU is not set, we should not read > MTU from the device config sapce. > RFC894 > says:"The minimum length of the data field of a packet sent over an > Ethernet is 1500 octets, thus the maximum length of an IP datagram > sent over an Ethernet is 1500 octets. Implementations are encouraged > to support full-length packets" > > virtio spec says:"The virtio network device is a virtual ethernet card", > so the default MTU value should be 1500 for virtio-net. > > For MAC, the spec says:"If the VIRTIO_NET_F_MAC feature bit is set, > the configuration space mac entry indicates the “physical” address > of the network card, otherwise the driver would typically > generate a random local MAC address." So there is no > default MAC address if VIRTIO_NET_F_MAC not set. > > This commits introduces functions vdpa_dev_net_mtu_config_fill() > and vdpa_dev_net_mac_config_fill() to fill MTU and MAC. > It also fixes vdpa_dev_net_mq_config_fill() to report correct > MQ when _F_MQ is not present. > > These functions should check devices features than driver > features, and struct vdpa_device is not needed as a parameter > > The test & userspace tool output: > > Feature bit VIRTIO_NET_F_MTU, VIRTIO_NET_F_RSS, VIRTIO_NET_F_MQ > and VIRTIO_NET_F_MAC can be mask out by hardcode. > > However, it is challenging to "disable" the related fields > in the HW device config space, so let's just assume the values > are meaningless if the feature bits are not set. > > Before this change, when feature bits for RSS, MQ, MTU and MAC > are not set, iproute2 output: > $vdpa vdpa0: mac 00:e8:ca:11:be:05 link up link_announce false mtu 1500 > negotiated_features where does it get 1500? what if there's e.g. 0 in the mtu field? > without this commit, function vdpa_dev_net_config_fill() > reads all config space fields unconditionally, so let's > assume the MAC and MTU are meaningless, and it checks > MQ with driver_features, so we don't see max_vq_pairs. > > After applying this commit, when feature bits for > MQ, RSS, MAC and MTU are not set,iproute2 output: > $vdpa dev config show vdpa0 > vdpa0: link up link_announce false max_vq_pairs 1 mtu 1500 > negotiated_features > > As explained above: > Here is no MAC, because VIRTIO_NET_F_MAC is not set, > and there is no default value for MAC. It shows > max_vq_paris = 1 because even without MQ feature, > a functional virtio-net must have one queue pair. > mtu = 1500 is the default value as ethernet > required. > > This commit also add supplementary comments for > __virtio16_to_cpu(true, xxx) operations in > vdpa_dev_net_config_fill() and vdpa_fill_stats_rec() > > Signed-off-by: Zhu Lingshan > --- > drivers/vdpa/vdpa.c | 60 +++++++++++++++++++++++++++++++++++---------- > 1 file changed, 47 insertions(+), 13 deletions(-) > > diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > index efb55a06e961..a74660b98979 100644 > --- a/drivers/vdpa/vdpa.c > +++ b/drivers/vdpa/vdpa.c > @@ -801,19 +801,44 @@ static int vdpa_nl_cmd_dev_get_dumpit(struct sk_buff *msg, struct netlink_callba > return msg->len; > } > > -static int vdpa_dev_net_mq_config_fill(struct vdpa_device *vdev, > - struct sk_buff *msg, u64 features, > +static int vdpa_dev_net_mq_config_fill(struct sk_buff *msg, u64 features, > const struct virtio_net_config *config) > { > u16 val_u16; > > - if ((features & BIT_ULL(VIRTIO_NET_F_MQ)) == 0) > - return 0; > + if ((features & BIT_ULL(VIRTIO_NET_F_MQ)) == 0 && > + (features & BIT_ULL(VIRTIO_NET_F_RSS)) == 0) > + val_u16 = 1; > + else > + val_u16 = __virtio16_to_cpu(true, config->max_virtqueue_pairs); > > - val_u16 = le16_to_cpu(config->max_virtqueue_pairs); > return nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, val_u16); > } > > +static int vdpa_dev_net_mtu_config_fill(struct sk_buff *msg, u64 features, > + const struct virtio_net_config *config) > +{ > + u16 val_u16; > + > + if ((features & BIT_ULL(VIRTIO_NET_F_MTU)) == 0) > + val_u16 = 1500; > + else > + val_u16 = __virtio16_to_cpu(true, config->mtu); > + > + return nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MTU, val_u16); > +} > + > +static int vdpa_dev_net_mac_config_fill(struct sk_buff *msg, u64 features, > + const struct virtio_net_config *config) > +{ > + if ((features & BIT_ULL(VIRTIO_NET_F_MAC)) == 0) > + return 0; > + else > + return nla_put(msg, VDPA_ATTR_DEV_NET_CFG_MACADDR, > + sizeof(config->mac), config->mac); > +} > + > + > static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *msg) > { > struct virtio_net_config config = {}; > @@ -822,18 +847,16 @@ static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *ms > > vdpa_get_config_unlocked(vdev, 0, &config, sizeof(config)); > > - if (nla_put(msg, VDPA_ATTR_DEV_NET_CFG_MACADDR, sizeof(config.mac), > - config.mac)) > - return -EMSGSIZE; > + /* > + * Assume little endian for now, userspace can tweak this for > + * legacy guest support. > + */ > + val_u16 = __virtio16_to_cpu(true, config.status); > > val_u16 = __virtio16_to_cpu(true, config.status); > if (nla_put_u16(msg, VDPA_ATTR_DEV_NET_STATUS, val_u16)) > return -EMSGSIZE; > > - val_u16 = __virtio16_to_cpu(true, config.mtu); > - if (nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MTU, val_u16)) > - return -EMSGSIZE; > - > features_driver = vdev->config->get_driver_features(vdev); > if (nla_put_u64_64bit(msg, VDPA_ATTR_DEV_NEGOTIATED_FEATURES, features_driver, > VDPA_ATTR_PAD)) > @@ -846,7 +869,13 @@ static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *ms > VDPA_ATTR_PAD)) > return -EMSGSIZE; > > - return vdpa_dev_net_mq_config_fill(vdev, msg, features_driver, &config); > + if (vdpa_dev_net_mac_config_fill(msg, features_device, &config)) > + return -EMSGSIZE; > + > + if (vdpa_dev_net_mtu_config_fill(msg, features_device, &config)) > + return -EMSGSIZE; > + > + return vdpa_dev_net_mq_config_fill(msg, features_device, &config); > } > > static int > @@ -914,6 +943,11 @@ static int vdpa_fill_stats_rec(struct vdpa_device *vdev, struct sk_buff *msg, > } > vdpa_get_config_unlocked(vdev, 0, &config, sizeof(config)); > > + /* > + * Assume little endian for now, userspace can tweak this for > + * legacy guest support. > + */ > + > max_vqp = __virtio16_to_cpu(true, config.max_virtqueue_pairs); > if (nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, max_vqp)) > return -EMSGSIZE; > -- > 2.31.1