On Sun, 18 Oct 2015 14:29:03 +0800 Huawei Xie <huawei.xie at intel.com> wrote:
> + > + for (i = 1; i < VIRTIO_TX_FREE_NR; i++) { > + m = (struct rte_mbuf *)vq->vq_descx[desc_idx++].cookie; > + if (likely(m->pool == free[0]->pool)) > + free[nb_free++] = m; > + else { > + rte_mempool_put_bulk(free[0]->pool, (void **)free, > + nb_free); > + free[0] = m; > + nb_free = 1; > + } > + } This assumes all transmits are from the same pool, which is not necessarily true.