All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dongli Zhang <dongli.zhang@oracle.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, bpf@vger.kernel.org,
	linux-kernel@vger.kernel.org, davem@davemloft.net,
	rostedt@goodmis.org, mingo@redhat.com, ast@kernel.org,
	daniel@iogearbox.net, andrii@kernel.org, imagedong@tencent.com,
	joao.m.martins@oracle.com, joe.jin@oracle.com, dsahern@gmail.com,
	edumazet@google.com
Subject: Re: [PATCH net-next v4 2/4] net: tap: track dropped skb via kfree_skb_reason()
Date: Wed, 2 Mar 2022 13:44:20 -0800	[thread overview]
Message-ID: <92322369-abb6-be0e-ab52-1d1ebbe38a9c@oracle.com> (raw)
In-Reply-To: <20220302110300.1ac78804@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net>

Hi Jakub,

On 3/2/22 11:03 AM, Jakub Kicinski wrote:
> On Wed, 2 Mar 2022 09:43:29 -0800 Dongli Zhang wrote:
>> On 3/1/22 6:42 PM, Jakub Kicinski wrote:
>>> On Sat, 26 Feb 2022 00:49:27 -0800 Dongli Zhang wrote:  
>>>> +	SKB_DROP_REASON_SKB_CSUM,	/* sk_buff checksum error */  
>>>
>>> Can we spell it out a little more? It sounds like the checksum was
>>> incorrect. Will it be clear that computing the checksum failed, rather
>>> than checksum validation failed?  
>>
>> I am just trying to make the reasons as generic as possible so that:
>>
>> 1. We may minimize the number of reasons.
>>
>> 2. People may re-use the same reason for all CSUM related issue.
> 
> The generic nature is fine, my concern is to clearly differentiate
> errors in _validating_ the checksum from errors in _generating_ them.
> "sk_buff checksum error" does not explain which one had taken place.

This is for skb_checksum_help() and it is for csum computation.

Therefore, I will keep SKB_DROP_REASON_SKB_CSUM and add 'computation' or
'generating' to the comments.

> 
>>>> +	SKB_DROP_REASON_SKB_COPY_DATA,	/* failed to copy data from or to
>>>> +					 * sk_buff
>>>> +					 */  
>>>
>>> Here should we specify that it's copying from user space?  
>>
>> Same as above. I am minimizing the number of reasons so that any memory copy for
>> sk_buff may re-use this reason.
> 
> IIUC this failure is equivalent to user passing an invalid buffer. 
> I mean something like:
> 
> 	send(fd, (void *)random(), 1000, 0);
> 
> I'd be tempted to call the reason something link SKB_UCOPY_FAULT.
> To indicate it's a problem copying from user space. EFAULT is the
> typical errno for that. WDYT?
> 

So far the reason is used for below functions' return value:

- tap_get_user() -> zerocopy_sg_from_iter()
- tap_get_user() -> skb_copy_datagram_from_iter()
- tun_net_xmit() -> skb_orphan_frags_rx() -> skb_copy_ubufs()

I will switch to SKB_UCOPY_FAULT.

Thank you very much!

Dongli Zhang

  reply	other threads:[~2022-03-02 21:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-26  8:49 [PATCH net-next v4 0/4] tun/tap: use kfree_skb_reason() to trace dropped skb Dongli Zhang
2022-02-26  8:49 ` [PATCH net-next v4 1/4] skbuff: introduce kfree_skb_list_reason() Dongli Zhang
2022-03-02  2:34   ` Jakub Kicinski
2022-03-02 16:49     ` Dongli Zhang
2022-02-26  8:49 ` [PATCH net-next v4 2/4] net: tap: track dropped skb via kfree_skb_reason() Dongli Zhang
2022-03-02  2:42   ` Jakub Kicinski
2022-03-02 17:43     ` Dongli Zhang
2022-03-02 19:03       ` Jakub Kicinski
2022-03-02 21:44         ` Dongli Zhang [this message]
2022-02-26  8:49 ` [PATCH net-next v4 3/4] net: tun: split run_ebpf_filter() and pskb_trim() into different "if statement" Dongli Zhang
2022-02-26  8:49 ` [PATCH net-next v4 4/4] net: tun: track dropped skb via kfree_skb_reason() Dongli Zhang
2022-02-28  1:20   ` David Ahern
2022-03-02  2:50   ` Jakub Kicinski
2022-03-02  3:29     ` David Ahern
2022-03-02  4:16       ` [Internet]Re: " imagedong(董梦龙)
2022-03-02 18:26         ` Dongli Zhang
2022-03-02 19:22       ` Jakub Kicinski
2022-03-02 18:19     ` Dongli Zhang
2022-03-02 19:17       ` Jakub Kicinski
2022-03-02 22:21         ` Dongli Zhang
2022-03-03  5:21           ` Jakub Kicinski
2022-03-03  5:55             ` Dongli Zhang

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=92322369-abb6-be0e-ab52-1d1ebbe38a9c@oracle.com \
    --to=dongli.zhang@oracle.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dsahern@gmail.com \
    --cc=edumazet@google.com \
    --cc=imagedong@tencent.com \
    --cc=joao.m.martins@oracle.com \
    --cc=joe.jin@oracle.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=rostedt@goodmis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.