Remove tipc-dek mail list to avoid bothering other people.

Best regards,
Tung Nguyen

-----Original Message-----
From: Jon Maloy <jma...@redhat.com> 
Sent: Thursday, June 10, 2021 4:12 PM
To: Menglong Dong <menglong8.d...@gmail.com>
Cc: ying....@windriver.com; tipc-discussion@lists.sourceforge.net; Xin Long 
<l...@redhat.com>; tipc-dek <tipc-...@dektech.com.au>
Subject: Re: [PATCH v2 net-next 0/2] net: tipc: fix FB_MTU eat two pages and do 
some code cleanup


On 6/9/21 8:56 AM, Menglong Dong wrote:
> On Wed, Jun 9, 2021 at 6:47 PM Jon Maloy <jma...@redhat.com> wrote:
>>
>>
>> On 6/9/21 6:32 AM, menglong8.d...@gmail.com wrote:
>>> From: Menglong Dong <dong.mengl...@zte.com.cn>
>>>
>>> In the first patch, FB_MTU is redefined to make sure data size will not
>>> exceed PAGE_SIZE. Besides, I removed the alignment for buf_size in
>>> tipc_buf_acquire, because skb_alloc_fclone will do the alignment job.
>>>
>>> In the second patch, I removed align() in msg.c and replace it with
>>> ALIGN().
>>>
>>>
>>>
>>>
>>> Menglong Dong (2):
>>>     net: tipc: fix FB_MTU eat two pages
>>>     net: tipc: replace align() with ALIGN in msg.c
>>>
>>>    net/tipc/bcast.c |  2 +-
>>>    net/tipc/msg.c   | 31 ++++++++++++++-----------------
>>>    net/tipc/msg.h   |  3 ++-
>>>    3 files changed, 17 insertions(+), 19 deletions(-)
>>>
>> NACK.
>> You must have missed my last mail before you sent out this.  We have to
>> define a separate macro for bcast.c, since those buffers sometimes will
>> need encryption.
>> Sorry for the confusion.
> No, no, I didn't miss your mail. I think it can make us clear about what and 
> how
> to do by sending the V2 patches.
>
> So we can define two versions 'FB_MTU' for bcast.c and msg.c, such as 
> CRYPTO_MTU
> and NON_CRYPTO_MTU. And within tipc_buf_acquire(), we decide which version
> BUF_HEADROOM to use by the data size? Such as:
>
> int buf_size;
> if (IS_ENABLED(CONFIG_TIPC_CRYPTO) && size == NON_CRYPTO_MTU) {
>      buf_size = size + BUF_HEADROOM_non-crypto + BUF_TAILROOM_non-crypto;
> } else {
>      buf_size = size + BUF_HEADROOM_crypto + BUF_TAILROOM_crypto;
> }
>
> Is this feeling?
> (It's a little weird to check whether the data should be crypto by data size).
>
> Thanks!
> Menglong Dong
(Removed netdev, David Miller etc from thread)

I think our main mistake is that we are trying to "compensate" for a 
behavior in tipc_buf_acquire() that doens't fit our purposes.

What if we do the following:
1) We define BUF_HEADROOM and BUF_TAILROOM as we do now, plus a FB_MTU 
as you suggest, all inside msg.c.
2) We create a new inline function tipc_alloc_skb(int headroom, int 
tailroom, int size) in msg.c
      This function does the job that tipc_buf_acqire() does now.
3) We let tipc_buf_acquire() call this function as 
tipc_alloc_skb(BUF_HEADROOM, BUF_TAILROOM, size);
     Alternatively, we skip the BUF_HEADROOM/BUF_TAILROOM macros 
altogether andmake the code in tipc_buf_acquire() conditional as you 
did, but without testing for size. Actually, I think I like this better.
4) We let the fallback function in msg.c call it as 
tipc_alloc_skb(LL_MAX_HEADER + 48, 0, ONEPAGE_SKB);
5) We let the user in bcast.c get acces to the calculated value of 
FB_MTU as a function or global value, like you did in v2.

I suggest you send v3 to tipc-discussion (if you are a member) and the 
recipients of this mail first, so we don't spam the netdev list with 
intermediate versions of this series.

///jon



_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to