Re: [RFC 01/19] staging: qlge: fix incorrect truesize accounting

From: Coiby Xu
Date: Thu Jun 24 2021 - 07:50:38 EST


On Wed, Jun 23, 2021 at 01:55:15PM +0900, Benjamin Poirier wrote:
On 2021-06-22 19:36 +0800, Coiby Xu wrote:
On Mon, Jun 21, 2021 at 05:10:27PM +0300, Dan Carpenter wrote:
> On Mon, Jun 21, 2021 at 09:48:44PM +0800, Coiby Xu wrote:
> > Commit 7c734359d3504c869132166d159c7f0649f0ab34 ("qlge: Size RX buffers
> > based on MTU") introduced page_chunk structure. We should add
> > qdev->lbq_buf_size to skb->truesize after __skb_fill_page_desc.
> >
>
> Add a Fixes tag.

I will fix it in next version, thanks!

>
> The runtime impact of this is just that ethtool will report things
> incorrectly, right? It's not 100% from the commit message. Could you
> please edit the commit message so that an ignoramous like myself can
> understand it?

truesize is used in socket memory accounting, the stuff behind sysctl
net.core.rmem_max, SO_RCVBUF, ss -m, ...

Some helpful chap wrote a page about it a while ago:
http://vger.kernel.org/~davem/skb_sk.html

Thanks for the explanation and the reference!



I'm not sure how it would affect ethtool. But according to "git log
--grep=truesize", it affects coalescing SKBs. Btw, I fixed the issue
according to the definition of truesize which according to Linux Kernel
Network by Rami Rosen, it's defined as follows,
> The total memory allocated for the SKB (including the SKB structure
> itself and the size of the allocated data block).

I'll edit the commit message to include it, thanks!

>
> Why is this an RFC instead of just a normal patch which we can apply?

After doing the tests mentioned in the cover letter, I found Red Hat's
network QE team has quite a rigorous test suite. But I needed to return the
machine before having the time to learn about the test suite and run it by
myself. So I mark it as an RFC before I borrow the machine again to run the
test suite.

Interesting. Is this test suite based on a public project?

The test suite is written for Beaker [1] but it seems it's not public.

[1] https://fedoraproject.org/wiki/QA/Beaker

--
Best regards,
Coiby