[{"id":2936413,"web_url":"http://patchwork.ozlabs.org/comment/2936413/","msgid":"<7753fdae-839c-dbdf-7d24-2db2627c27aa@redhat.com>","list_archive_url":null,"date":"2022-07-21T07:07:07","subject":"Re: [PATCH v12 06/40] virtio_ring: introduce virtqueue_init()","submitter":{"id":5225,"url":"http://patchwork.ozlabs.org/api/people/5225/","name":"Jason Wang","email":"jasowang@redhat.com"},"content":"在 2022/7/20 11:04, Xuan Zhuo 写道:\n> Separate the logic of virtqueue initialization. This logic is irrelevant\n> to ring layout.\n>\n> This logic can be called independently when implementing resize/reset\n> later.\n>\n> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>\n\n\nAcked-by: Jason Wang <jasowang@redhat.com>\n\n\n> ---\n>   drivers/virtio/virtio_ring.c | 61 ++++++++++++++++++------------------\n>   1 file changed, 31 insertions(+), 30 deletions(-)\n>\n> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c\n> index 1bc5794e9739..87ce17562b29 100644\n> --- a/drivers/virtio/virtio_ring.c\n> +++ b/drivers/virtio/virtio_ring.c\n> @@ -368,6 +368,34 @@ static int vring_mapping_error(const struct vring_virtqueue *vq,\n>   \treturn dma_mapping_error(vring_dma_dev(vq), addr);\n>   }\n>   \n> +static void virtqueue_init(struct vring_virtqueue *vq, u32 num)\n> +{\n> +\tstruct virtio_device *vdev;\n> +\n> +\tvdev = vq->vq.vdev;\n> +\n> +\tvq->vq.num_free = num;\n> +\tif (vq->packed_ring)\n> +\t\tvq->last_used_idx = 0 | (1 << VRING_PACKED_EVENT_F_WRAP_CTR);\n> +\telse\n> +\t\tvq->last_used_idx = 0;\n> +\tvq->event_triggered = false;\n> +\tvq->num_added = 0;\n> +\tvq->use_dma_api = vring_use_dma_api(vdev);\n> +#ifdef DEBUG\n> +\tvq->in_use = false;\n> +\tvq->last_add_time_valid = false;\n> +#endif\n> +\n> +\tvq->event = virtio_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX);\n> +\n> +\tif (virtio_has_feature(vdev, VIRTIO_F_ORDER_PLATFORM))\n> +\t\tvq->weak_barriers = false;\n> +\n> +\t/* Put everything in free lists. */\n> +\tvq->free_head = 0;\n> +}\n> +\n>   \n>   /*\n>    * Split ring specific functions - *_split().\n> @@ -1706,7 +1734,6 @@ static struct virtqueue *vring_create_virtqueue_packed(\n>   \tvq->vq.callback = callback;\n>   \tvq->vq.vdev = vdev;\n>   \tvq->vq.name = name;\n> -\tvq->vq.num_free = num;\n>   \tvq->vq.index = index;\n>   \tvq->we_own_ring = true;\n>   \tvq->notify = notify;\n> @@ -1716,22 +1743,10 @@ static struct virtqueue *vring_create_virtqueue_packed(\n>   #else\n>   \tvq->broken = false;\n>   #endif\n> -\tvq->last_used_idx = 0 | (1 << VRING_PACKED_EVENT_F_WRAP_CTR);\n> -\tvq->event_triggered = false;\n> -\tvq->num_added = 0;\n>   \tvq->packed_ring = true;\n> -\tvq->use_dma_api = vring_use_dma_api(vdev);\n> -#ifdef DEBUG\n> -\tvq->in_use = false;\n> -\tvq->last_add_time_valid = false;\n> -#endif\n>   \n>   \tvq->indirect = virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_DESC) &&\n>   \t\t!context;\n> -\tvq->event = virtio_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX);\n> -\n> -\tif (virtio_has_feature(vdev, VIRTIO_F_ORDER_PLATFORM))\n> -\t\tvq->weak_barriers = false;\n>   \n>   \tvq->packed.ring_dma_addr = ring_dma_addr;\n>   \tvq->packed.driver_event_dma_addr = driver_event_dma_addr;\n> @@ -1759,8 +1774,7 @@ static struct virtqueue *vring_create_virtqueue_packed(\n>   \tmemset(vq->packed.desc_state, 0,\n>   \t\tnum * sizeof(struct vring_desc_state_packed));\n>   \n> -\t/* Put everything in free lists. */\n> -\tvq->free_head = 0;\n> +\tvirtqueue_init(vq, num);\n>   \n>   \tvq->packed.desc_extra = vring_alloc_desc_extra(num);\n>   \tif (!vq->packed.desc_extra)\n> @@ -2205,7 +2219,6 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,\n>   \tvq->vq.callback = callback;\n>   \tvq->vq.vdev = vdev;\n>   \tvq->vq.name = name;\n> -\tvq->vq.num_free = vring.num;\n>   \tvq->vq.index = index;\n>   \tvq->we_own_ring = false;\n>   \tvq->notify = notify;\n> @@ -2215,21 +2228,9 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,\n>   #else\n>   \tvq->broken = false;\n>   #endif\n> -\tvq->last_used_idx = 0;\n> -\tvq->event_triggered = false;\n> -\tvq->num_added = 0;\n> -\tvq->use_dma_api = vring_use_dma_api(vdev);\n> -#ifdef DEBUG\n> -\tvq->in_use = false;\n> -\tvq->last_add_time_valid = false;\n> -#endif\n>   \n>   \tvq->indirect = virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_DESC) &&\n>   \t\t!context;\n> -\tvq->event = virtio_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX);\n> -\n> -\tif (virtio_has_feature(vdev, VIRTIO_F_ORDER_PLATFORM))\n> -\t\tvq->weak_barriers = false;\n>   \n>   \tvq->split.queue_dma_addr = 0;\n>   \tvq->split.queue_size_in_bytes = 0;\n> @@ -2255,11 +2256,11 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,\n>   \tif (!vq->split.desc_extra)\n>   \t\tgoto err_extra;\n>   \n> -\t/* Put everything in free lists. */\n> -\tvq->free_head = 0;\n>   \tmemset(vq->split.desc_state, 0, vring.num *\n>   \t\t\tsizeof(struct vring_desc_state_split));\n>   \n> +\tvirtqueue_init(vq, vq->split.vring.num);\n> +\n>   \tspin_lock(&vdev->vqs_list_lock);\n>   \tlist_add_tail(&vq->vq.list, &vdev->vqs);\n>   \tspin_unlock(&vdev->vqs_list_lock);","headers":{"Return-Path":"\n <linux-um-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["bilbo.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=N7SHdZSW;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=P15KCgyo;\n\tdkim-atps=neutral","ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=linux-um-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=<UNKNOWN>)","relay.mimecast.com;\n\tauth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby bilbo.ozlabs.org (Postfix) with ESMTPS id 4LpNtt5czBz9sFs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 21 Jul 2022 17:07:50 +1000 (AEST)","from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux))\n\tid 1oEQHb-001SmI-KK; Thu, 21 Jul 2022 07:07:39 +0000","from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n\tby bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux))\n\tid 1oEQHS-001Sdg-Rv\n\tfor linux-um@lists.infradead.org; Thu, 21 Jul 2022 07:07:32 +0000","from mail-pl1-f199.google.com (mail-pl1-f199.google.com\n [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n us-mta-146-PR6Cczw4MS2txJPMnsxsJw-1; Thu, 21 Jul 2022 03:07:28 -0400","by mail-pl1-f199.google.com with SMTP id\n f10-20020a170902ce8a00b0016d371ef8cdso36398plg.1\n        for <linux-um@lists.infradead.org>;\n Thu, 21 Jul 2022 00:07:28 -0700 (PDT)","from [10.72.12.47] ([209.132.188.80])\n        by smtp.gmail.com with ESMTPSA id\n n9-20020a170903110900b0016cf3f124e5sm826885plh.131.2022.07.21.00.07.12\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Thu, 21 Jul 2022 00:07:25 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject:\n\tMIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=gK1hk4AwlU3KQXAke0BBQlUqptdwxysuy1jsEh6Tfkw=; b=N7SHdZSWkNN+Em\n\tm8J32ZZCMacPLgD3timgHFiNpgQVHUXtXOrq+Pmf04Zsqs5/5Cne/bY5ORbODHyPKUti/I4DpoFw1\n\tcfZTHbtE4KFxJrL4PHxg4freyTgUn3d6Cu4DyTuYJFMYFb9u2vHPaVU0q2MlmqVnDOm1DtFz1fU7F\n\tM06be7pf5mSjvkPOkKSiG9nd1RG6a3OIT7aRk11U2xSmxo3FF1crJ72rV0YZjrywmPFsD+7y/CFWI\n\tImgFSmrwu6BfazBvojehFH945TK6cp6waqBUQvuoAk/6LnIbukx9d9J4iSArLYuNF9B3rjk5NCcJZ\n\tv/1uU6u0pA7Gx0PgVteQ==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1658387249;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=p2P/fakD309VXAoVD6j5x51+KtbA6fMKZfHVhcOwNC8=;\n\tb=P15KCgyox0GdbaBVU9+C6DkaFpE3/c+/pTVlMTrMoK/gjoCtQFBxtZCfr05dPuibQoynCG\n\trQYMICz7r77Fb0+h/Ph2Z3ur1nPUBNeY5Jo+i4A/7v2SfIrvvEQSlv1KkA5GRA8kZbiM3x\n\txQ+pdTBnUfoK9DXlJ9RHuVeGam6OGMc="],"X-MC-Unique":"PR6Cczw4MS2txJPMnsxsJw-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20210112;\n        h=x-gm-message-state:message-id:date:mime-version:user-agent:subject\n         :content-language:to:cc:references:from:in-reply-to\n         :content-transfer-encoding;\n        bh=p2P/fakD309VXAoVD6j5x51+KtbA6fMKZfHVhcOwNC8=;\n        b=Jbl2gDWNJDxBTMvYlxl5nuSUWjohUQXMwG+W97dewlQoEVqXxqUshHzJ5PfK41DWsI\n         J3nhPKQYTfRsN+uc2wZtKl3I394wbjX22jTk9m/kw7mMvS1TpmprUbiKSR54EYG55Zhm\n         Y3N7o9cQP3buqH+AEt8AEEk5hqx61YN8IOSN2ZA/JOr7NOhKN7p6GgnT4iiZ5QYKhZQe\n         ZnQF/ggTRAK7D4zdZwXx9DcMztNVLQVYleOjXOiOG42rlCSbVIEnONrhvbGV/WFtcsDe\n         E3f1URIngdFoRHCPK1Bwr1ON7cAf0ixFHxdtstoPWRljQO7LhmCnvUB6rPwqh4eLoQ+S\n         CCQg==","X-Gm-Message-State":"AJIora9CITyI8alIt9fnUUJp/6cs6+bTkN57cUhvzfA2uXUBJfcpuxWB\n\tEu9WQcsplvLlAxSrrQ5Rfd0QzSw5Bq3XRZUDyUL3ZTQzoOGFT+/J4dbAJgUh8BSLwg7am97B9eS\n\tb+vdCLFI5k2AuYwXVn4y1S29t","X-Received":["by 2002:a05:6a00:1a:b0:52a:dec1:308c with SMTP id\n h26-20020a056a00001a00b0052adec1308cmr43028008pfk.52.1658387247183;\n        Thu, 21 Jul 2022 00:07:27 -0700 (PDT)","by 2002:a05:6a00:1a:b0:52a:dec1:308c with SMTP id\n h26-20020a056a00001a00b0052adec1308cmr43027959pfk.52.1658387246593;\n        Thu, 21 Jul 2022 00:07:26 -0700 (PDT)"],"X-Google-Smtp-Source":"\n AGRyM1tK0/eD/GljWYSBQ/IjcruuC00jeXyMoir/L48eboBrwPVAnyIj6/ptwUKz85QkGsmF8udXGg==","Message-ID":"<7753fdae-839c-dbdf-7d24-2db2627c27aa@redhat.com>","Date":"Thu, 21 Jul 2022 15:07:07 +0800","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)\n Gecko/20100101 Thunderbird/91.11.0","Subject":"Re: [PATCH v12 06/40] virtio_ring: introduce virtqueue_init()","To":"Xuan Zhuo <xuanzhuo@linux.alibaba.com>,\n virtualization@lists.linux-foundation.org","Cc":"Richard Weinberger <richard@nod.at>,\n Anton Ivanov <anton.ivanov@cambridgegreys.com>,\n Johannes Berg <johannes@sipsolutions.net>,\n \"Michael S. Tsirkin\" <mst@redhat.com>, \"David S. Miller\"\n <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,\n Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,\n Hans de Goede <hdegoede@redhat.com>, Mark Gross <markgross@kernel.org>,\n Vadim Pasternak <vadimp@nvidia.com>,\n Bjorn Andersson <bjorn.andersson@linaro.org>,\n Mathieu Poirier <mathieu.poirier@linaro.org>,\n Cornelia Huck <cohuck@redhat.com>, Halil Pasic <pasic@linux.ibm.com>,\n Eric Farman <farman@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>,\n Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev\n <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,\n Sven Schnelle <svens@linux.ibm.com>, Alexei Starovoitov <ast@kernel.org>,\n Daniel Borkmann <daniel@iogearbox.net>,\n Jesper Dangaard Brouer <hawk@kernel.org>,\n John Fastabend <john.fastabend@gmail.com>,\n Vincent Whitchurch <vincent.whitchurch@axis.com>,\n linux-um@lists.infradead.org, netdev@vger.kernel.org,\n platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org,\n linux-s390@vger.kernel.org, kvm@vger.kernel.org, bpf@vger.kernel.org,\n kangjie.xu@linux.alibaba.com","References":"<20220720030436.79520-1-xuanzhuo@linux.alibaba.com>\n <20220720030436.79520-7-xuanzhuo@linux.alibaba.com>","From":"Jason Wang <jasowang@redhat.com>","In-Reply-To":"<20220720030436.79520-7-xuanzhuo@linux.alibaba.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20220721_000731_021494_C81514F3 ","X-CRM114-Status":"GOOD (  17.19  )","X-Spam-Score":"-0.9 (/)","X-Spam-Report":"=?unknown-8bit?q?Spam_detection_software=2C_running_on_the_sy?=\n\t=?unknown-8bit?q?stem_=22bombadil=2Einfradead=2Eorg=22=2C?=\n\t=?unknown-8bit?q?_has_NOT_identified_this_incoming_email_as_spam=2E__The_ori?=\n\t=?unknown-8bit?q?ginal?=\n\t=?unknown-8bit?q?_message_has_been_attached_to_this_so_you_can_view_it_or_la?=\n\t=?unknown-8bit?q?bel?=\n\t=?unknown-8bit?q?_similar_future_email=2E__If_you_have_any_questions=2C_see?=\n\t=?unknown-8bit?q?_the_administrator_of_that_system_for_details=2E?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?b?IENvbnRlbnQgcHJldmlldzogIOWcqCAyMDIyLzcvMjAgMTE6MDQsIFh1?=\n\t=?unknown-8bit?b?YW4gWmh1byDlhpnpgZM6ID4gU2VwYXJhdGUgdGhlIGxvZ2lj?=\n\t=?unknown-8bit?q?_of_virtqueue_initialization=2E_This_logic_is_irrelevant_?=\n\t=?unknown-8bit?q?=3E_to_ring_layout=2E_=3E?=\n\t=?unknown-8bit?q?_=3E_This_logic_can_be_called_independently_when_implementi?=\n\t=?unknown-8bit?q?ng_resize/_=5B=2E=2E=2E=5D_?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?q?_Content_analysis_details=3A___=28-0=2E9_points=2C_5=2E0_re?=\n\t=?unknown-8bit?q?quired=29?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?q?_pts_rule_name______________description?=\n\t=?unknown-8bit?q?_----_----------------------_------------------------------?=\n\t=?unknown-8bit?q?--------------------?=\n\t=?unknown-8bit?q?_-0=2E0_RCVD=5FIN=5FDNSWL=5FNONE_____RBL=3A_Sender_listed_a?=\n\t=?unknown-8bit?q?t_https=3A//www=2Ednswl=2Eorg/=2C?=\n\t=?unknown-8bit?q?_no_trust?=\n\t=?unknown-8bit?q?_=5B170=2E10=2E133=2E124_listed_in_list=2Ednswl=2Eorg=5D?=\n\t=?unknown-8bit?q?_0=2E0_SPF=5FHELO=5FNONE__________SPF=3A_HELO_does_not_publ?=\n\t=?unknown-8bit?q?ish_an_SPF_Record?=\n\t=?unknown-8bit?q?_0=2E0_SPF=5FNONE_______________SPF=3A_sender_does_not_publ?=\n\t=?unknown-8bit?q?ish_an_SPF_Record?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FAU__________Message_has_a_valid_DKIM?=\n\t=?unknown-8bit?q?_or_DK_signature_from?=\n\t=?unknown-8bit?q?_author=27s_domain?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID_____________Message_has_at_least_one_v?=\n\t=?unknown-8bit?q?alid_DKIM_or_DK_signature?=\n\t=?unknown-8bit?q?_0=2E1_DKIM=5FSIGNED____________Message_has_a_DKIM_or_DK_si?=\n\t=?unknown-8bit?q?gnature=2C_not_necessarily?=\n\t=?unknown-8bit?q?_valid?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FEF__________Message_has_a_valid_DKIM?=\n\t=?unknown-8bit?q?_or_DK_signature_from?=\n\t=?unknown-8bit?q?_envelope-from_domain?=\n\t=?unknown-8bit?q?_-0=2E5_NICE=5FREPLY=5FA___________Looks_like_a_legit_reply?=\n\t=?unknown-8bit?q?_=28A=29?=\n\t=?unknown-8bit?q?_-0=2E2_DKIMWL=5FWL=5FHIGH_________DKIMwl=2Eorg_-_High_trus?=\n\t=?unknown-8bit?q?t_sender?=","X-BeenThere":"linux-um@lists.infradead.org","X-Mailman-Version":"2.1.34","Precedence":"list","List-Id":"<linux-um.lists.infradead.org>","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-um>,\n <mailto:linux-um-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-um/>","List-Post":"<mailto:linux-um@lists.infradead.org>","List-Help":"<mailto:linux-um-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-um>,\n <mailto:linux-um-request@lists.infradead.org?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Sender":"\"linux-um\" <linux-um-bounces@lists.infradead.org>","Errors-To":"linux-um-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"}}]