From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vlad Zolotarov Subject: : ixgbe: why bulk allocation is not used for a scattered Rx flow? Date: Wed, 25 Feb 2015 11:40:36 +0200 Message-ID: <54ED9894.3050409@cloudius-systems.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit To: "dev-VfR2kkLFssw@public.gmane.org" Return-path: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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