From: Saeed Mahameed <saeed@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Saeed Mahameed <saeedm@nvidia.com>,
Yafang Shao <laoar.shao@gmail.com>,
ttoukan.linux@gmail.com, gal@nvidia.com, tariqt@nvidia.com,
leon@kernel.org, netdev@vger.kernel.org,
linux-rdma@vger.kernel.org
Subject: Re: [PATCH v2 net-next] net/mlx5e: Report rx_discards_phy via rx_fifo_errors
Date: Fri, 15 Nov 2024 14:09:02 -0800 [thread overview]
Message-ID: <ZzfGfji0V2Xy4LAQ@x130> (raw)
In-Reply-To: <20241115132519.03f7396c@kernel.org>
On 15 Nov 13:25, Jakub Kicinski wrote:
>On Fri, 15 Nov 2024 11:54:38 -0800 Saeed Mahameed wrote:
>> >We can, but honestly I'd just make sure they are counted in rx_dropped
>>
>> rx_dropped: Number of packets received but not processed,
>> * e.g. due to lack of resources or unsupported protocol.
>> * For hardware interfaces this counter may include packets discarded
>> * due to L2 address filtering but should not include packets dropped
>> ^^^^^^^^^^^^^^
>> * by the device due to buffer exhaustion which are counted separately in
>> ^^^^^^^^^^^^^^^^^
>> * @rx_missed_errors (since procfs folds those two counters together).
>> ^^^^^^^^^^^^^^^^^
>
>I presume you quote this comment to indicate the rx_dropped should
>count packets dropped due to buffer exhaustion? If yes then you don't
>understand the comment. If no then I don't understand why you're
>quoting it.
>
I quoted this because you suggested to use rx_dropped. It's not a good fit.
In your previous reply you said:
"but honestly I'd just make sure they are counted in rx_dropped"
>> I think we should use rx_fifo_errors for this and update documentation:
>>
>> rx_missed_errors --> host buffers
>> rx_fifo_errors --> device buffers
>
>In theory I'd love to use fifo errors to mean device buffer drops.
>In practice devices can backpressure due to host slowness, so the
So what? host slowness will always be counted in rx_missed_errors.
if you see both rx_missed_erros and fifo_errors progressing, you can make
the connection.. With CX devices out_of_buffer "missed_errors" can never cause
fifo drops "fifo_errors".
>device drops are hard to categorize. The vendors themselves have
>limited understanding of how their devices will behave under real
>workloads. And once devices are deployed it may be too late to change
>definitions.
>
Forget about vendors, here is my simplified categorization that we could
align with easily among all vendors and users
// delivered to SW but dropped in SW
1) seen by sw dropped by sw. (rx_dropped?)
// couldn't deliver to SW (back-pressure)
2) slow SW: passed pipeline/fifo: but SW lack of descriptors (rx_missed_errors)
3) overflow: pipeline/fifo overflow at any point before SW queue (rx_fifo_errors)
4) expected drops: steering/flow filters, configuration, carrier
down, etc ).. no counter in rtnl_stats exists for this
// couldn't deliver to SW, errors
5) errors, dropped due to packet related errors or HW errors
If all vendors agree, with some repurposing and renaming of the counters
maybe we can achieve the above with minimal backward compatibility breakage.
To solve this once and for all, we need the documentation to reflect strong
and clear definitions even if it renders existing implementation/interpretation
to be wrong. Otherwise this will never be solved.
>> rx_dropped --> unsupported portocols, filter drops, link down, etc..
next prev parent reply other threads:[~2024-11-15 22:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 2:17 [PATCH v2 net-next] net/mlx5e: Report rx_discards_phy via rx_fifo_errors Yafang Shao
2024-11-15 2:27 ` Jakub Kicinski
2024-11-15 3:56 ` Yafang Shao
2024-11-15 4:32 ` Jakub Kicinski
2024-11-15 5:50 ` Yafang Shao
2024-11-15 8:01 ` Saeed Mahameed
2024-11-15 19:24 ` Jakub Kicinski
2024-11-15 19:54 ` Saeed Mahameed
2024-11-15 21:25 ` Jakub Kicinski
2024-11-15 22:09 ` Saeed Mahameed [this message]
2024-11-15 22:42 ` Jakub Kicinski
2024-11-20 6:04 ` Gal Pressman
2024-11-24 2:50 ` Jakub Kicinski
2024-11-17 6:33 ` Yafang Shao
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=ZzfGfji0V2Xy4LAQ@x130 \
--to=saeed@kernel.org \
--cc=gal@nvidia.com \
--cc=kuba@kernel.org \
--cc=laoar.shao@gmail.com \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
--cc=ttoukan.linux@gmail.com \
/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).