Re: tbench regression in 2.6.25-rc1



On Mon, 18 Feb 2008 16:12:38 +0800, "Zhang, Yanmin" said:

I also think __refcnt is the key. I did a new testing by adding 2 unsigned long
pading before lastuse, so the 3 members are moved to next cache line. The performance is
recovered.

How about below patch? Almost all performance is recovered with the new patch.

Signed-off-by: Zhang Yanmin <yanmin.zhang@xxxxxxxxx>

Could you add a comment someplace that says "refcnt wants to be on a different
cache line from input/output/ops or performance tanks badly", to warn some
future kernel hacker who starts adding new fields to the structure?

Attachment: pgplJaLRfcB6j.pgp
Description: PGP signature



Relevant Pages

  • Re: tbench regression in 2.6.25-rc1
    ... I dont know why tbench prefers __refcnt being ... since in this case lastuse will be on a different cache line... ... I suspect then that even this patch could help tbench, ...
    (Linux-Kernel)
  • Re: tbench regression in 2.6.25-rc1
    ... I dont know why tbench prefers __refcnt being ... since in this case lastuse will be on a different cache line... ... I suspect then that even this patch could help tbench, ...
    (Linux-Kernel)
  • Re: tbench regression in 2.6.25-rc1
    ... I dont know why tbench prefers __refcnt being ... since in this case lastuse will be on a different cache line... ... I suspect then that even this patch could help tbench, ...
    (Linux-Kernel)
  • Re: tbench regression in 2.6.25-rc1
    ... Each incoming IP packet will need to change lastuse, __refcnt and __use, so keeping them in the same cache line is a win. ... I suspect then that even this patch could help tbench, ...
    (Linux-Kernel)
  • [PATCH v3 0/7] fs: Scalability of sockets/pipes allocation/deallocation on SMP
    ... Take v2 of this patch serie got no new feedback, ... All these are in different cache lines unfortunatly. ... Currently we schedule RCU frees for each file we free separately. ... allocator by specifying SLAB_DESTROY_BY_RCU as an option at slab creation ...
    (Linux-Kernel)