[dpdk-dev] [PATCH v2 6/7] virtio: simple tx routine

Xie, Huawei huawei.xie at intel.com
Mon Oct 19 07:15:30 CEST 2015


On 10/19/2015 12:17 PM, Stephen Hemminger wrote:
> 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.

Don't get you. It accumulates all the mbufs from the same pool, free all
of them until it meets one from a different pool.

	if (likely(m->pool == free[0]->pool))


>



More information about the dev mailing list