From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id CB4C69AAB for ; Wed, 25 Feb 2015 10:40:38 +0100 (CET) Received: by wghb13 with SMTP id b13so2460577wgh.0 for ; Wed, 25 Feb 2015 01:40:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:content-type; bh=lMsvrGoVOQmy/H+sogAzB5O1+guAnKHePpcY8cO1Zrs=; b=kUKI9xbspALIWu2+jD4yrbzI0ndkBHCN3V/PfXXarHRg4ix8I/CK5onk4sUSuuPU4V kYQTApAcuO2DuBJIitDuUXCQeFTtRGVTVQRX6pJAJgSH4IH0Iyx2y5EfVyV9/PToeRDc GkAag2IY83xFMHiiq662W+O/8c9xiz9P9HE1p1x1iGx1Wl6OFT1oZQdlYkkru2VNhHQD ROOYcY0L1QUfg1hLLqDhTBZH6GuHvQusOl2WY1tkjK/cTS+yIikdHnTQJlRI9PSJSruc o99BbLNEcoCRODA60WDaEJryeJ8aS8VNvLNZLcLWc3a9q5+NN7UyUm1T/XTgP72DShmv U2Aw== X-Gm-Message-State: ALoCoQl2PkpXM7BRiVeJHaFqIIjgsQfS7ybUkYQqZumubj0MKdnMB5NG2YToT9g0uVYYyxQoY8xx X-Received: by 10.194.80.193 with SMTP id t1mr4843070wjx.8.1424857238651; Wed, 25 Feb 2015 01:40:38 -0800 (PST) Received: from [10.0.0.4] (bzq-79-183-20-111.red.bezeqint.net. [79.183.20.111]) by mx.google.com with ESMTPSA id b4sm6575930wic.2.2015.02.25.01.40.37 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Feb 2015 01:40:38 -0800 (PST) Message-ID: <54ED9894.3050409@cloudius-systems.com> Date: Wed, 25 Feb 2015 11:40:36 +0200 From: Vlad Zolotarov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: "dev@dpdk.org" Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] : ixgbe: why bulk allocation is not used for a scattered Rx flow? X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2015 09:40:39 -0000 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