[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-28 Thread Ouyang, Changchun
> -Original Message- > From: Xie, Huawei > Sent: Wednesday, January 28, 2015 12:16 AM > To: Stephen Hemminger > Cc: Ouyang, Changchun; dev at dpdk.org > Subject: RE: [dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers > > > > > -Original Message

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Xie, Huawei
> -Original Message- > From: Stephen Hemminger [mailto:stephen at networkplumber.org] > Sent: Tuesday, January 27, 2015 5:59 PM > To: Xie, Huawei > Cc: Ouyang, Changchun; dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers >

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Ouyang Changchun
The DPDK driver only has to deal with the case of running on PCI and with SMP. In this case, the code can use the weaker barriers instead of using hard (fence) barriers. This will help performance. The rationale is explained in Linux kernel virtio_ring.h. To make it clearer that this is a virtio t

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Stephen Hemminger
> I recall our original code is virtio_wmb(). > Use store fence to ensure all updates to entries before updating the index. > Why do we need virtio_rmb() here and add virtio_wmb after > vq_update_avail_idx()? Store fence is unnecessary, Intel CPU's are cache coherent, please read the virtio Lin

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Ouyang, Changchun
: Stephen Hemminger (stephen at networkplumber.org) Subject: RE: [dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers >---if (likely(nb_enqueued)) { >--->---virtio_wmb(); >--->---if (unlikely(virtqueue_kick_prepare(rxvq))) { >--->--->

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Xie, Huawei
>---if (likely(nb_enqueued)) { >--->---virtio_wmb(); >--->---if (unlikely(virtqueue_kick_prepare(rxvq))) { >--->--->---virtqueue_notify(rxvq); >--->--->---PMD_RX_LOG(DEBUG, "Notified\n"); >--->---} >---} >---vq_update_avail_idx(rxvq); Tw

[dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers

2015-01-27 Thread Xie, Huawei
> -Original Message- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ouyang Changchun > Sent: Tuesday, January 27, 2015 10:36 AM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH v2 02/24] virtio: Use weaker barriers > > The DPDK driver only has to