bdev/virtio: use SPDK likely/unlikely macros

Replace the DPDK rte_branch_prediction.h likely/unlikely with
spdk/likely.h spdk_likely/spdk_unlikely.

Change-Id: I51ad42ee2b29b8f33436fa960deda67a0dd0b0f0
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/382486
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Daniel Verkamp 2017-10-13 11:05:22 -07:00 committed by Jim Harris
parent aab8511796
commit f5c4413ca4
2 changed files with 10 additions and 9 deletions

View File

@ -40,7 +40,6 @@
#include <rte_cycles.h> #include <rte_cycles.h>
#include <rte_memory.h> #include <rte_memory.h>
#include <rte_memzone.h> #include <rte_memzone.h>
#include <rte_branch_prediction.h>
#include <rte_prefetch.h> #include <rte_prefetch.h>
#include "virtio_logs.h" #include "virtio_logs.h"
@ -100,7 +99,7 @@ virtqueue_dequeue_burst_rx(struct virtqueue *vq, struct virtio_req **rx_pkts,
len[i] = uep->len; len[i] = uep->len;
cookie = (struct virtio_req *)vq->vq_descx[desc_idx].cookie; cookie = (struct virtio_req *)vq->vq_descx[desc_idx].cookie;
if (unlikely(cookie == NULL)) { if (spdk_unlikely(cookie == NULL)) {
PMD_DRV_LOG(ERR, "vring descriptor with no mbuf cookie at %u", PMD_DRV_LOG(ERR, "vring descriptor with no mbuf cookie at %u",
vq->vq_used_cons_idx); vq->vq_used_cons_idx);
break; break;
@ -201,16 +200,16 @@ virtio_recv_pkts(struct virtqueue *vq, struct virtio_req **reqs, uint16_t nb_pkt
uint32_t i; uint32_t i;
nb_rx = 0; nb_rx = 0;
if (unlikely(vdev->started == 0)) if (spdk_unlikely(vdev->started == 0))
return nb_rx; return nb_rx;
nb_used = VIRTQUEUE_NUSED(vq); nb_used = VIRTQUEUE_NUSED(vq);
virtio_rmb(); virtio_rmb();
num = (uint16_t)(likely(nb_used <= nb_pkts) ? nb_used : nb_pkts); num = (uint16_t)(spdk_likely(nb_used <= nb_pkts) ? nb_used : nb_pkts);
num = (uint16_t)(likely(num <= VIRTIO_MBUF_BURST_SZ) ? num : VIRTIO_MBUF_BURST_SZ); num = (uint16_t)(spdk_likely(num <= VIRTIO_MBUF_BURST_SZ) ? num : VIRTIO_MBUF_BURST_SZ);
if (likely(num > DESC_PER_CACHELINE)) if (spdk_likely(num > DESC_PER_CACHELINE))
num = num - ((vq->vq_used_cons_idx + num) % DESC_PER_CACHELINE); num = num - ((vq->vq_used_cons_idx + num) % DESC_PER_CACHELINE);
num = virtqueue_dequeue_burst_rx(vq, rcv_pkts, len, num); num = virtqueue_dequeue_burst_rx(vq, rcv_pkts, len, num);
@ -234,7 +233,7 @@ virtio_xmit_pkts(struct virtqueue *vq, struct virtio_req *req)
{ {
struct virtio_dev *vdev = vq->vdev; struct virtio_dev *vdev = vq->vdev;
if (unlikely(vdev->started == 0)) if (spdk_unlikely(vdev->started == 0))
return 0; return 0;
virtio_rmb(); virtio_rmb();
@ -243,7 +242,7 @@ virtio_xmit_pkts(struct virtqueue *vq, struct virtio_req *req)
vq_update_avail_idx(vq); vq_update_avail_idx(vq);
if (unlikely(virtqueue_kick_prepare(vq))) { if (spdk_unlikely(virtqueue_kick_prepare(vq))) {
virtqueue_notify(vq); virtqueue_notify(vq);
PMD_TX_LOG(DEBUG, "Notified backend after xmit"); PMD_TX_LOG(DEBUG, "Notified backend after xmit");
} }

View File

@ -45,6 +45,8 @@
#include "virtio_dev.h" #include "virtio_dev.h"
#include "virtio_logs.h" #include "virtio_logs.h"
#include "spdk/likely.h"
/* /*
* Per virtio_config.h in Linux. * Per virtio_config.h in Linux.
* For virtio_pci on SMP, we don't need to order with respect to MMIO * For virtio_pci on SMP, we don't need to order with respect to MMIO
@ -156,7 +158,7 @@ vq_update_avail_ring(struct virtqueue *vq, uint16_t desc_idx)
* descriptor. * descriptor.
*/ */
avail_idx = (uint16_t)(vq->vq_avail_idx & (vq->vq_nentries - 1)); avail_idx = (uint16_t)(vq->vq_avail_idx & (vq->vq_nentries - 1));
if (unlikely(vq->vq_ring.avail->ring[avail_idx] != desc_idx)) if (spdk_unlikely(vq->vq_ring.avail->ring[avail_idx] != desc_idx))
vq->vq_ring.avail->ring[avail_idx] = desc_idx; vq->vq_ring.avail->ring[avail_idx] = desc_idx;
vq->vq_avail_idx++; vq->vq_avail_idx++;
} }