From: Ferruh Yigit <ferruh.yigit@amd.com>
To: Stephen Hemminger <stephen@networkplumber.org>, dev@dpdk.org
Subject: Re: [PATCH v12 11/12] net/tap: do not mark queue full as error
Date: Mon, 20 May 2024 18:52:27 +0100 [thread overview]
Message-ID: <96d648dc-94ac-45bc-8398-0759083d4ca1@amd.com> (raw)
In-Reply-To: <20240502213618.11391-12-stephen@networkplumber.org>
On 5/2/2024 10:31 PM, Stephen Hemminger wrote:
> If tap device in kernel returns EAGAIN that means it is full.
> That is not an error.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> drivers/net/tap/rte_eth_tap.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
> index 2484a82ccb..485bd35912 100644
> --- a/drivers/net/tap/rte_eth_tap.c
> +++ b/drivers/net/tap/rte_eth_tap.c
> @@ -542,7 +542,6 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
> struct rte_mbuf *seg = mbuf;
> uint64_t l4_ol_flags;
> int proto;
> - int n;
> int j;
> int k; /* current index in iovecs for copying segments */
>
> @@ -647,14 +646,18 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
> }
>
> /* copy the tx frame data */
> - n = writev(process_private->fds[txq->queue_id], iovecs, k);
> - if (n <= 0)
> - return -1;
> + if (unlikely(writev(process_private->fds[txq->queue_id], iovecs, k) < 0)) {
> + TAP_LOG(DEBUG, "writev (qid=%u fd=%d) %s",
> + txq->queue_id, process_private->fds[txq->queue_id],
> + strerror(errno));
>
Do we really want logging in datapath?
> + return (errno == EAGAIN) ? 0 : -1;
>
Nack.
Returning '0' will cause 'pmd_tx_burst()' to continue and increase
'num_tx', this will mislead as packet sent successfully.
We should have three return values from 'tap_write_mbufs()':
<0 -> Error, 'pmd_tx_burst()' should break, stats.errors updated.
0 -> 'pmd_tx_burst()' should break, valid num_tx returned
>0 -> 'pmd_tx_burst()' work as it is.
> + }
>
> (*num_packets)++;
> (*num_tx_bytes) += rte_pktmbuf_pkt_len(mbuf);
> }
> - return 0;
> +
> + return 1;
>
Why '1', wouldn't it be better to return number of packets written
successfully.
next prev parent reply other threads:[~2024-05-20 17:52 UTC|newest]
Thread overview: 206+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-30 3:46 [RFC 0/2] net/tap RSS BPF rewrite Stephen Hemminger
2024-01-30 3:46 ` [RFC 1/2] tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-01-30 3:46 ` [RFC 2/2] tap: rework BPF handling Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 0/7] net/tap: RSS using BPF overhaul Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 1/7] net/tap: remove unused RSS hash types Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 2/7] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 3/7] net/tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 4/7] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 5/7] net/tap: use libbpf to load new " Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 6/7] net/tap: remove no longer used files Stephen Hemminger
2024-02-07 22:11 ` [PATCH v2 7/7] MAINTAINERS: add maintainer for TAP device Stephen Hemminger
2024-02-08 7:01 ` Morten Brørup
2024-02-08 17:41 ` [PATCH v3 0/7] net/tap: RSS using BPF overhaul Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 1/7] net/tap: remove unused RSS hash types Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 2/7] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 3/7] tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 4/7] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 5/7] net/tap: use libbpf to load new " Stephen Hemminger
2024-02-08 18:02 ` Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 6/7] net/tap: remove no longer used files Stephen Hemminger
2024-02-08 17:41 ` [PATCH v3 7/7] MAINTAINERS: add maintainer for TAP device Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 0/7] net/tap: queue flow action RSS using BPF redo Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 1/7] net/tap: remove unused RSS hash types Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 2/7] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 3/7] tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 4/7] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-02-10 0:54 ` Ferruh Yigit
2024-02-10 2:09 ` Stephen Hemminger
2024-02-28 17:27 ` Ferruh Yigit
2024-02-29 23:39 ` Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 5/7] net/tap: use libbpf to load new " Stephen Hemminger
2024-02-08 20:39 ` Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 6/7] net/tap: remove no longer used files Stephen Hemminger
2024-02-08 19:05 ` [PATCH v4 7/7] MAINTAINERS: add maintainer for TAP device Stephen Hemminger
2024-02-12 16:47 ` [PATCH v4 0/7] net/tap: queue flow action RSS using BPF redo Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 0/8] net/tap: cleanups and fix BPF flow Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 1/8] net/tap: do not duplicate fd's Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 2/8] doc: fix the requirements and building of TAP flow Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 3/8] net/tap: remove unused RSS hash types Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 4/8] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 5/8] net/tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 6/8] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-04-02 17:12 ` [PATCH v5 7/8] net/tap: use libbpf to load new " Stephen Hemminger
2024-04-03 11:50 ` Luca Boccassi
2024-04-03 14:53 ` Stephen Hemminger
2024-04-03 15:55 ` Stephen Hemminger
2024-04-03 21:19 ` Luca Boccassi
2024-04-03 23:41 ` Stephen Hemminger
2024-04-04 0:49 ` Luca Boccassi
2024-04-04 15:51 ` Stephen Hemminger
2024-04-04 16:12 ` Luca Boccassi
2024-04-04 15:30 ` Stephen Hemminger
2024-04-04 16:11 ` Luca Boccassi
2024-04-02 17:12 ` [PATCH v5 8/8] net/tap: remove no longer used files Stephen Hemminger
2024-04-02 20:43 ` Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 0/8] net/tap: cleanup and fix BPF flow support Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 1/8] net/tap: do not duplicate fd's Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 2/8] doc: fix the requirements and building of TAP flow Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 3/8] net/tap: remove unused fields Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 4/8] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 5/8] net/tap: stop "vendoring" linux bpf headers Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 6/8] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-04-05 21:14 ` [PATCH v6 7/8] net/tap: use libbpf to load new " Stephen Hemminger
2024-04-05 21:15 ` [PATCH v6 8/8] net/tap: remove no longer used files Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 0/8] net/tap: cleanups and fix BPF support Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 1/8] net/tap: do not duplicate fd's Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 2/8] net/tap: remove unused fields Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 3/8] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 4/8] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 5/8] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 6/8] net/tap: use libbpf to load new " Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 7/8] net/tap: remove no longer used files Stephen Hemminger
2024-04-08 21:18 ` [PATCH v7 8/8] doc: update documentation of TAP PMD Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 0/8] net/tap: cleanups and fix BPF support Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 1/8] net/tap: do not duplicate fd's Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 2/8] net/tap: remove unused fields Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 3/8] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 4/8] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 5/8] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 6/8] net/tap: use libbpf to load new " Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 7/8] net/tap: remove no longer used files Stephen Hemminger
2024-04-09 3:40 ` [PATCH v8 8/8] doc: update documentation of TAP PMD Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 0/9] net/tap: fix RSS (BPF) support Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 1/9] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-01 11:13 ` Ferruh Yigit
2024-05-01 23:53 ` Stephen Hemminger
2024-05-02 14:51 ` Ferruh Yigit
2024-05-02 16:22 ` Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 2/9] net/tap: remove unused fields Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 3/9] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 4/9] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 5/9] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-01 11:14 ` Ferruh Yigit
2024-04-26 15:48 ` [PATCH v9 6/9] net/tap: use libbpf to load new " Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 7/9] net/tap: remove no longer used files Stephen Hemminger
2024-04-26 15:48 ` [PATCH v9 8/9] doc: update documentation of TAP PMD Stephen Hemminger
2024-05-01 12:36 ` Ferruh Yigit
2024-04-26 15:48 ` [PATCH v9 9/9] net/tap: simplify the internal structure Stephen Hemminger
2024-05-01 11:18 ` [PATCH v9 0/9] net/tap: fix RSS (BPF) support Ferruh Yigit
2024-05-01 15:41 ` Stephen Hemminger
2024-05-01 16:11 ` [PATCH v10 0/9] net/tap: fix RSS (BPF) flow support Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 1/9] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 2/9] net/tap: remove unused fields Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 3/9] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 4/9] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 5/9] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 6/9] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 7/9] net/tap: remove no longer used files Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 8/9] net/tap: simplify internals Stephen Hemminger
2024-05-01 16:12 ` [PATCH v10 9/9] net/tap: update documentation Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 0/9] net/tap fix RSS (BPF) flow support Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 1/9] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 2/9] net/tap: remove unused fields Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 3/9] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 4/9] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 5/9] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 6/9] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 7/9] net/tap: remove no longer used files Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 8/9] net/tap: simplify internals Stephen Hemminger
2024-05-02 2:49 ` [PATCH v11 9/9] net/tap: update documentation Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 00/12] net/tap: RSS and other fixes Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 01/12] net/tap: fix fd check in flow_isolate Stephen Hemminger
2024-05-20 17:46 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 02/12] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-20 17:46 ` Ferruh Yigit
2024-05-20 18:16 ` Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 03/12] net/tap: remove unused fields Stephen Hemminger
2024-05-20 17:46 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 04/12] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-20 17:47 ` Ferruh Yigit
2024-05-21 2:01 ` Stephen Hemminger
2024-05-21 14:17 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 05/12] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-20 17:47 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 06/12] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 07/12] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-20 17:49 ` Ferruh Yigit
2024-05-20 18:18 ` Stephen Hemminger
2024-05-20 21:42 ` Luca Boccassi
2024-05-20 22:08 ` Ferruh Yigit
2024-05-20 22:25 ` Luca Boccassi
2024-05-20 23:20 ` Stephen Hemminger
2024-05-20 22:06 ` Ferruh Yigit
2024-05-21 4:23 ` Patrick Robb
2024-05-21 13:46 ` Ferruh Yigit
2024-05-21 14:33 ` Patrick Robb
2024-05-21 15:06 ` Aaron Conole
2024-05-21 15:41 ` Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 08/12] net/tap: remove no longer used files Stephen Hemminger
2024-05-20 17:50 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 09/12] net/tap: simplify internals Stephen Hemminger
2024-05-20 17:51 ` Ferruh Yigit
2024-05-21 15:44 ` Stephen Hemminger
2024-05-22 14:00 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 10/12] net/tap: remove extraneous newlines Stephen Hemminger
2024-05-20 17:51 ` Ferruh Yigit
2024-05-02 21:31 ` [PATCH v12 11/12] net/tap: do not mark queue full as error Stephen Hemminger
2024-05-20 17:52 ` Ferruh Yigit [this message]
2024-05-21 15:46 ` Stephen Hemminger
2024-05-02 21:31 ` [PATCH v12 12/12] net/tap: update documentation Stephen Hemminger
2024-05-20 17:53 ` Ferruh Yigit
2024-05-21 2:39 ` Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 00/11] net/tap: make RSS work again Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 01/11] net/tap: fix fd check in flow_isolate Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 02/11] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 03/11] net/tap: remove unused fields Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 04/11] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 05/11] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 06/11] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 07/11] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 08/11] net/tap: remove no longer used files Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 09/11] net/tap: simplify internals Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 10/11] net/tap: remove extraneous newlines Stephen Hemminger
2024-05-21 2:47 ` [PATCH v13 11/11] net/tap: update documentation Stephen Hemminger
2024-05-21 14:19 ` [PATCH v13 00/11] net/tap: make RSS work again Ferruh Yigit
2024-05-21 14:35 ` Ferruh Yigit
2024-05-21 14:38 ` Ferruh Yigit
2024-05-21 21:23 ` Patrick Robb
2024-05-21 21:26 ` Ferruh Yigit
2024-05-21 17:06 ` [PATCH v14 " Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 01/11] net/tap: fix fd check in flow_isolate Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 02/11] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 03/11] net/tap: remove unused fields Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 04/11] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 05/11] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 06/11] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 07/11] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 08/11] net/tap: remove no longer used files Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 09/11] net/tap: simplify internals Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 10/11] net/tap: remove extraneous newlines Stephen Hemminger
2024-05-21 17:06 ` [PATCH v14 11/11] net/tap: update documentation Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 00/11] net/tap: make RSS work again Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 01/11] net/tap: fix fd check in flow_isolate Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 02/11] net/tap: do not duplicate fd's Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 03/11] net/tap: remove unused fields Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 04/11] net/tap: validate and setup parameters for BPF RSS Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 05/11] net/tap: do not build flow support if header is out of date Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 06/11] net/tap: rewrite the RSS BPF program Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 07/11] net/tap: use libbpf to load new " Stephen Hemminger
2024-05-28 16:33 ` Cody Cheng
2024-05-21 20:12 ` [PATCH v15 08/11] net/tap: remove no longer used files Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 09/11] net/tap: simplify internals Stephen Hemminger
2024-05-22 16:15 ` Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 10/11] net/tap: remove extraneous newlines Stephen Hemminger
2024-05-21 20:12 ` [PATCH v15 11/11] net/tap: update documentation Stephen Hemminger
2024-05-22 15:42 ` [PATCH v15 00/11] net/tap: make RSS work again Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96d648dc-94ac-45bc-8398-0759083d4ca1@amd.com \
--to=ferruh.yigit@amd.com \
--cc=dev@dpdk.org \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).