[PATCH 01/17] vhost: use previous value atomic fetch operations
Maxime Coquelin
maxime.coquelin at redhat.com
Thu Mar 2 15:47:18 CET 2023
On 3/2/23 01:47, Tyler Retzlaff wrote:
> Use __atomic_fetch_{add,and,or,sub,xor} instead of
> __atomic_{add,and,or,sub,xor}_fetch when we have no interest in the
> result of the operation.
>
> Reduces unnecessary codegen that provided the result of the atomic
> operation that was not used.
>
> Change brings closer alignment with atomics available in C11 standard
> and will reduce review effort when they are integrated.
>
> Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
> ---
> lib/vhost/virtio_net.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
> index 51dc3c9..dc49a54 100644
> --- a/lib/vhost/virtio_net.c
> +++ b/lib/vhost/virtio_net.c
> @@ -298,7 +298,7 @@
>
> vhost_log_cache_sync(dev, vq);
>
> - __atomic_add_fetch(&vq->used->idx, vq->shadow_used_idx,
> + __atomic_fetch_add(&vq->used->idx, vq->shadow_used_idx,
> __ATOMIC_RELEASE);
> vq->shadow_used_idx = 0;
> vhost_log_used_vring(dev, vq, offsetof(struct vring_used, idx),
> @@ -2311,7 +2311,7 @@
> vhost_vring_call_packed(dev, vq);
> } else {
> write_back_completed_descs_split(vq, n_descs);
> - __atomic_add_fetch(&vq->used->idx, n_descs, __ATOMIC_RELEASE);
> + __atomic_fetch_add(&vq->used->idx, n_descs, __ATOMIC_RELEASE);
> vhost_vring_call_split(dev, vq);
> }
> } else {
> @@ -3683,7 +3683,7 @@
> vhost_vring_call_packed(dev, vq);
> } else {
> write_back_completed_descs_split(vq, nr_cpl_pkts);
> - __atomic_add_fetch(&vq->used->idx, nr_cpl_pkts, __ATOMIC_RELEASE);
> + __atomic_fetch_add(&vq->used->idx, nr_cpl_pkts, __ATOMIC_RELEASE);
> vhost_vring_call_split(dev, vq);
> }
> vq->async->pkts_inflight_n -= nr_cpl_pkts;
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Thanks,
Maxime
More information about the dev
mailing list