[dpdk-dev] : ixgbe: why bulk allocation is not used for a scattered Rx flow?
Vlad Zolotarov
vladz at cloudius-systems.com
Wed Feb 25 10:40:36 CET 2015
Hi, I have a question about the "scattered Rx" feature: why enabling it
disabled "bulk allocation" feature?
There is some unclear comment in the ixgbe_recv_scattered_pkts():
/*
* Descriptor done.
*
* Allocate a new mbuf to replenish the RX ring descriptor.
* If the allocation fails:
* - arrange for that RX descriptor to be the first one
* being parsed the next time the receive function is
* invoked [on the same queue].
*
* - Stop parsing the RX ring and return immediately.
*
* This policy does not drop the packet received in the RX
* descriptor for which the allocation of a new mbuf failed.
* Thus, it allows that packet to be later retrieved if
* mbuf have been freed in the mean time.
* As a side effect, holding RX descriptors instead of
* systematically giving them back to the NIC may lead to
* RX ring exhaustion situations.
* However, the NIC can gracefully prevent such situations
* to happen by sending specific "back-pressure" flow control
* frames to its peer(s).
*/
Why the same "policy" can't be done in the bulk-context allocation? -
Don't advance the RDT until u've refilled the ring. What do I miss here?
Another question is about the LRO feature - is there a reason why it's
not implemented? I've implemented the LRO support in ixgbe PMD to begin
with - I used a "scattered Rx" as a template and now I'm tuning it
(things like the stuff above).
Is there any philosophical reason why it hasn't been implemented in
*any* PMD so far? ;)
thanks,
vlad
More information about the dev
mailing list