From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by dpdk.org (Postfix) with ESMTP id 25858E72 for ; Fri, 11 Sep 2015 17:43:40 +0200 (CEST) Received: by wiclk2 with SMTP id lk2so69268972wic.0 for ; Fri, 11 Sep 2015 08:43:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type; bh=bK+dGRY7REo+ZZvh6dOtO8hTlLbmNMQsgn4G5yc5TTg=; b=HvozM3hatOEObpgBt8DNp7Q7AZEh9MTD940lKYQGnAIqMbF8cuhKxo52rjuFyvSFfq /OgNRAwKPYjxPYQwbRKgjiE/XarpMfh13jNCtGtS+k3k/++jb26mLNLes8VmgDf6fY8m 7yP92B7p4xOzkY+ieJ9ZxUzN0ie4HtkRgNohPaCcn3oatwLNqNU57ZCgi+cHkoackwHO fmVnWqImy9FCIjE6hlbx9uUB5W6ovzJZMi6m8Um8kzeBa+bySGJPZMrrTX9erUBMcX1R p1Wajc/G2sVYCbXogIs1R+L6IOPAr4n39+mDZVODw7I3MqVHKGfUoU+F0326hqsyzBd8 vmXA== X-Gm-Message-State: ALoCoQmPosWi2SAsY3xDMp914L4QS97OJlyqyG9k5ic73n9oyFFeDhUf7tT6Dw+lcf6AYSGD3AU8 X-Received: by 10.180.74.47 with SMTP id q15mr5727471wiv.73.1441986219984; Fri, 11 Sep 2015 08:43:39 -0700 (PDT) Received: from [10.0.0.4] (bzq-109-64-134-34.red.bezeqint.net. [109.64.134.34]) by smtp.googlemail.com with ESMTPSA id lu5sm987685wjb.9.2015.09.11.08.43.37 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Sep 2015 08:43:38 -0700 (PDT) To: Vladislav Zolotarov , Thomas Monjalon References: <1439489195-31553-1-git-send-email-vladz@cloudius-systems.com> <55F2E448.1070602@6wind.com> <55F2E997.5050009@cloudius-systems.com> <1762144.1LKiyImgC1@xps13> From: Avi Kivity Message-ID: <55F2F6A9.6080405@cloudius-systems.com> Date: Fri, 11 Sep 2015 18:43:37 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v1] ixgbe_pmd: forbid tx_rs_thresh above 1 for all NICs but 82598 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: Fri, 11 Sep 2015 15:43:40 -0000 On 09/11/2015 06:12 PM, Vladislav Zolotarov wrote: > > > On Sep 11, 2015 5:55 PM, "Thomas Monjalon" > wrote: > > > > 2015-09-11 17:47, Avi Kivity: > > > On 09/11/2015 05:25 PM, didier.pallard wrote: > > > > On 08/25/2015 08:52 PM, Vlad Zolotarov wrote: > > > >> > > > >> Helin, the issue has been seen on x540 devices. Pls., see a chapter > > > >> 7.2.1.1 of x540 devices spec: > > > >> > > > >> A packet (or multiple packets in transmit segmentation) can > span any > > > >> number of > > > >> buffers (and their descriptors) up to a limit of 40 minus WTHRESH > > > >> minus 2 (see > > > >> Section 7.2.3.3 for Tx Ring details and section Section > 7.2.3.5.1 for > > > >> WTHRESH > > > >> details). For best performance it is recommended to minimize the > > > >> number of buffers > > > >> as possible. > > > >> > > > >> Could u, pls., clarify why do u think that the maximum number > of data > > > >> buffers is limited by 8? > > > >> > > > >> thanks, > > > >> vlad > > > > > > > > Hi vlad, > > > > > > > > Documentation states that a packet (or multiple packets in transmit > > > > segmentation) can span any number of > > > > buffers (and their descriptors) up to a limit of 40 minus WTHRESH > > > > minus 2. > > > > > > > > Shouldn't there be a test in transmit function that drops > properly the > > > > mbufs with a too large number of > > > > segments, while incrementing a statistic; otherwise transmit > function > > > > may be locked by the faulty packet without > > > > notification. > > > > > > > > > > What we proposed is that the pmd expose to dpdk, and dpdk expose > to the > > > application, an mbuf check function. This way applications that can > > > generate complex packets can verify that the device will be able to > > > process them, and applications that only generate simple mbufs can > avoid > > > the overhead by not calling the function. > > > > More than a check, it should be exposed as a capability of the port. > > Anyway, if the application sends too much segments, the driver must > > drop it to avoid hang, and maintain a dedicated statistic counter to > allow > > easy debugging. > > I agree with Thomas - this should not be optional. Malformed packets > should be dropped. In the icgbe case it's a very simple test - it's a > single branch per packet so i doubt that it could impose any > measurable performance degradation. > > A drop allows the application no chance to recover. The driver must either provide the ability for the application to know that it cannot accept the packet, or it must fix it up itself.