[PATCH v7 2/4] ethdev: support mulitiple mbuf pools per Rx queue

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Oct 7 19:30:14 CEST 2022


On 10/7/22 19:08, Thomas Monjalon wrote:
> 07/10/2022 16:37, Andrew Rybchenko:
>> @@ -1067,6 +1067,24 @@ struct rte_eth_rxconf {
>>   	 */
>>   	union rte_eth_rxseg *rx_seg;
>>   
>> +	/**
>> +	 * Array of mempools to allocate Rx buffers from.
>> +	 *
>> +	 * This provides support for multiple mbuf pools per Rx queue.
>> +	 * The capability is reported in device info via positive
>> +	 * max_rx_mempools.
>> +	 *
>> +	 * It could be useful for more efficient usage of memory when an
>> +	 * application creates different mempools to steer the specific
>> +	 * size of the packet.
>> +	 *
>> +	 * Note that if Rx scatter is enabled, a packet may be delivered using
>> +	 * a chain of mbufs obtained from single mempool or multiple mempools
>> +	 * based on the NIC implementation.
>> +	 */
>> +	struct rte_mempool **rx_mempools;
>> +	uint16_t rx_nmempool; /** < Number of Rx mempools */
> 
> The commit message suggests a configuration per packet size.
> I guess it is not configurable in ethdev API?
> If it is hard-configured in the HW or the driver only,
> it should be specified here.

See v8

> 
> [...]
>> +	/**
>> +	 * Maximum number of Rx mempools supported per Rx queue.
>> +	 *
>> +	 * Value greater than 0 means that the driver supports Rx queue
>> +	 * mempools specification via rx_conf->rx_mempools.
>> +	 */
>> +	uint16_t max_rx_mempools;
> 
> 
> 



More information about the dev mailing list