From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id AE1881B5B9 for ; Thu, 10 Jan 2019 10:55:24 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190110095523euoutp01dc9c8814a91f9c2af3ab723ec606ff7b~4dBkqu2YV3149431494euoutp01F for ; Thu, 10 Jan 2019 09:55:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190110095523euoutp01dc9c8814a91f9c2af3ab723ec606ff7b~4dBkqu2YV3149431494euoutp01F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1547114123; bh=/T9mjUj5+7S/jHElElkyJGbnquUHp19ywfNnqXERY9s=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=lV2I8Lisr8q1eoNmzwckE9BvVTQZYosBPjmv5Mry9BnEKmjPYS6amZcPOS23rH9MP W3x2tr9lb+cCHvLi7IWeY3JsoL7PMDBA24RR7Woatf1AkjcrS3VmBCrMi4cXAvozF5 YdHsrdjJOXoQNhmozb9H54U7B05K/JfoRsAnwmeQ= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20190110095522eucas1p101905dab04e42ebd778aced286234b5f~4dBj9fIb51935319353eucas1p1G; Thu, 10 Jan 2019 09:55:22 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 95.ED.04441.A86173C5; Thu, 10 Jan 2019 09:55:22 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20190110095521eucas1p236c329210fd5bba930e64376324cfb32~4dBi8mSIG1983919839eucas1p2q; Thu, 10 Jan 2019 09:55:21 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20190110095521eusmtrp140940cc1603e7e723ebb04787d92ca9e~4dBisf87M3178531785eusmtrp1L; Thu, 10 Jan 2019 09:55:21 +0000 (GMT) X-AuditID: cbfec7f2-5c9ff70000001159-37-5c37168a517e Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id AC.74.04284.986173C5; Thu, 10 Jan 2019 09:55:21 +0000 (GMT) Received: from [106.109.129.180] (unknown [106.109.129.180]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20190110095520eusmtip29db4bf93fafe9d10a55acf36bcdadbc0~4dBh0WKo51033710337eusmtip2J; Thu, 10 Jan 2019 09:55:20 +0000 (GMT) To: Maxime Coquelin , "Gavin Hu (Arm Technology China)" , "dev@dpdk.org" , "Michael S . Tsirkin" , Xiao Wang Cc: Tiwei Bie , Zhihong Wang , "jfreimann@redhat.com" , Jason Wang , "xiaolong.ye@intel.com" , "alejandro.lucero@netronome.com" , Honnappa Nagarahalli , "jerinj@marvell.com" , nd From: Ilya Maximets Message-ID: <8fdbcaef-05ba-230f-a2eb-21a4014ad699@samsung.com> Date: Thu, 10 Jan 2019 12:55:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <3fc0c642-6b4e-5d3f-4e95-f0e3f343e4e1@redhat.com> Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRjuO+ds5yjNPpe2lxUYo6C7BlnfD7GbycHA/BEUadSq4wWd2ZaW FuUtW1OjNJTNKNPUmkZYaje1UtPMWMwuGExMVLSlic7KLLS2k+S/53nf5/2e54GPo+XdEiUX E39c0Mar41RSd6au9adlrWHRpgi/zOvexDJeTpGv4w8o0j5kR8Q4kMmSd+d/sqS800GR3DdF iFiqyhjSeqGeITNTdgl5XZFDk9rUGYo8HWxmye9hf3LfmkdtWcBXXatC/FRxmYQvrf9M8fk3 rDRfmN1L86ON76X8xRozCmP3uQccEeJikgStb+BB9+j0vmw6oQ9Ottf1s6nojpcBuXGAN0B+ awFtQO6cHN9C8OVVPSWSCQT6yTapUyXHDgSOEn72wn61mxFFFQiy3hpZkYwheJLWyjhVC7Ea qkttUufCC79D8OHmgMRJaGygwdHcSztVUrwGXlW2IAPiOBkOBHOvy4LByyHdmOuy9sZ7Qd9T 6cIy7Antxn6Xgdtfec39DNczNFZA+sRtiYh9IKO2yFUIcBoHHS+ypWLuIDCPWCgRLwR7Ww0r 4iXQkZ/DiPgs9GR+RuKxHkFh0/S/g81Q88XCOoPSeCXcfewrjreCbaBd6hwD9oCuEU8xgwfk 1RXS4lgG+iy5qF4Gv55X0CJWwsevDvYSUpnmNDPNaWOa08b037cYMWakEBJ1mihBtz5eOLFO p9boEuOj1h0+qrmH/n66jum28YfoW+ehJoQ5pJovOzjtHyGXqJN0yZomBByt8pLZKjZGyGVH 1MkpgvboAW1inKBrQos5RqWQnZr3KVyOo9THhVhBSBC0s1uKc1OmopvV1q6Z5F2FY7bJPXry I9BW3VieU2Z90xHSNTyUux9XHk4PbsHW2pSk8C1t4eVXLCS4f8WD0Ehbw7lHnfYnLzWHdpti T773ZqZwwNjS1ZetkkGf0J3sqZKScBQUdLraGPLM/Hv6WOR2fkdDwbaqznv2jBm/sA+RuUpF yHfl6BkVo4tWr19Fa3XqP3vDrL5wAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrIIsWRmVeSWpSXmKPExsVy+t/xe7qdYuYxBq8u8Fuc+7SMyeLdp+1M FidfvGK0mPm0hd3iSvtPdotllz4zWfSen81ocW7NUhaLY517WCz+/3rFanFmeQ+zxdaG/0wW +58fZrf488bUYvPFSUwO/B5r5q1h9Pi1YCmrx+I9L5k8Ji+8yOwxvfshs8f7fVfZPPq2rGIM YI/SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3St0vQy2h6 3M1c8Fii4uS2J+wNjGtFuhg5OSQETCRezbnL0sXIxSEksJRR4tvX3awQCSmJH78uQNnCEn+u dbFBFL1nlJjx+w8TSEJYIFFi4+I7YAkRgWuMEssvtLCDOMwCPcwSn9/fYYRo+cEkcff3bhaQ FjYBHYlTq48AJTg4eAXsJFY99AAJswioSjTN7GUDsUUFIiTOvlzHCGLzCghKnJz5BKyVE6h8 y+ZmZhCbWUBd4s+8S1C2uETTl5WsELa8RPPW2cwTGIVmIWmfhaRlFpKWWUhaFjCyrGIUSS0t zk3PLTbUK07MLS7NS9dLzs/dxAiM7m3Hfm7ewXhpY/AhRgEORiUe3oR/pjFCrIllxZW5hxgl OJiVRHjvLDeLEeJNSaysSi3Kjy8qzUktPsRoCvTcRGYp0eR8YOLJK4k3NDU0t7A0NDc2Nzaz UBLnPW9QGSUkkJ5YkpqdmlqQWgTTx8TBKdXAmP85xFGD48U+my1fK9VWmQnbFl+8GOU+J7V7 +UTNV/vfXnT/mO79S+yw8j/N0PTqBt7mXXOd5ZnbejTXJEVFC54rX7a4hj/oeNPytwt7w6On 7N4c6LBRXF3iSzDbHOnfFzccXfBi4a4m7ai9UWe/7LxQHbDPuXdN2q5e+x8ux84kak781ZNw X4mlOCPRUIu5qDgRAB2jgcsEAwAA X-CMS-MailID: 20190110095521eucas1p236c329210fd5bba930e64376324cfb32 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20190109145034eucas1p2183e275e316b87917b96fa184fc7d7cb X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190109145034eucas1p2183e275e316b87917b96fa184fc7d7cb References: <20181226163712.31596-1-i.maximets@samsung.com> <20190109145015.3010-1-i.maximets@samsung.com> <20190109145015.3010-3-i.maximets@samsung.com> <3fc0c642-6b4e-5d3f-4e95-f0e3f343e4e1@redhat.com> Subject: Re: [dpdk-dev] [PATCH v3 2/3] net/virtio: update memory ordering comment for vq notify X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jan 2019 09:55:24 -0000 On 10.01.2019 12:18, Maxime Coquelin wrote: > Hi Gavin, > > On 1/10/19 9:19 AM, Gavin Hu (Arm Technology China) wrote: >> >> >>> -----Original Message----- >>> From: dev On Behalf Of Ilya Maximets >>> Sent: Wednesday, January 9, 2019 10:50 PM >>> To: dev@dpdk.org; Maxime Coquelin ; >>> Michael S . Tsirkin ; Xiao Wang >>> >>> Cc: Tiwei Bie ; Zhihong Wang >>> ; jfreimann@redhat.com; Jason Wang >>> ; xiaolong.ye@intel.com; >>> alejandro.lucero@netronome.com; Ilya Maximets >>> >>> Subject: [dpdk-dev] [PATCH v3 2/3] net/virtio: update memory ordering >>> comment for vq notify >>> >>> We're not using io ports in case of modern device even on IA. >>> Also, this comment useless for other architectures. >> >> Agree, it should be architecture neutral. >> >>> >>> Signed-off-by: Ilya Maximets >>> --- >>>   drivers/net/virtio/virtqueue.h | 9 ++++----- >>>   1 file changed, 4 insertions(+), 5 deletions(-) >>> >>> diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h >>> index dffa03669..53aeac238 100644 >>> --- a/drivers/net/virtio/virtqueue.h >>> +++ b/drivers/net/virtio/virtqueue.h >>> @@ -437,14 +437,13 @@ virtqueue_kick_prepare_packed(struct virtqueue >>> *vq) >>>       return flags != RING_EVENT_FLAGS_DISABLE; >>>   } >>> >>> +/* >>> + * virtqueue_kick_prepare*() or the virtio_wmb() should be called >>> + * before this function to be sure that all the data is visible to vhost. >>> + */ >> >> C11 _atomic APIs are preferred for new code, other than wmb or rmb,  could you work on that? > > Thanks for the review. > -rc2 deadline is today, so I may apply this series as is if no reply > from Ilya today. If a change is agreed, it could be made on top for > -rc3. IMHO, If we'll decide to move to C11 atomics, we'll need to rewrite all the significant memory accesses in virtio driver at once. We can't do this partially. This will require significant amount of work to understand how to do that and will require a lot of testing. So, it's definitely not for current release. Also, there are possible performance concerns about such solution. But I have even more significant concern: C11 atomics are designed for inter-thread synchronization on multi-core systems. But in case of vDPA we have real hardware and I'm not sure if we can use C11 atomics for cross-domain synchronizations. Do you know if some of the memory ordering types in C11 provide outer domain sync on ARMv8, for example ? > > Regards, > Maxime >>>   static inline void >>>   virtqueue_notify(struct virtqueue *vq) >>>   { >>> -    /* >>> -     * Ensure updated avail->idx is visible to host. >>> -     * For virtio on IA, the notificaiton is through io port operation >>> -     * which is a serialization instruction itself. >>> -     */ >>>       VTPCI_OPS(vq->hw)->notify_queue(vq->hw, vq); >>>   } >>> >>> -- >>> 2.17.1 >> > >