Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-24 Thread xunlei
On 2020/8/20 PM9:58, Pekka Enberg wrote: > Hi Christopher, > > On Tue, Aug 11, 2020 at 3:52 PM Christopher Lameter wrote: >> >> On Fri, 7 Aug 2020, Pekka Enberg wrote: >> >>> Why do you consider this to be a fast path? This is all partial list >>> accounting when we allocate/deallocate a slab,

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-20 Thread Pekka Enberg
Hi Christopher, On Tue, Aug 11, 2020 at 3:52 PM Christopher Lameter wrote: > > On Fri, 7 Aug 2020, Pekka Enberg wrote: > > > Why do you consider this to be a fast path? This is all partial list > > accounting when we allocate/deallocate a slab, no? Just like > > ___slab_alloc() says, I assumed

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-11 Thread Christopher Lameter
On Fri, 7 Aug 2020, Pekka Enberg wrote: > Why do you consider this to be a fast path? This is all partial list > accounting when we allocate/deallocate a slab, no? Just like > ___slab_alloc() says, I assumed this to be the slow path... What am I > missing? I thought these were per object

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-10 Thread xunlei
On 2020/8/8 上午1:28, Pekka Enberg wrote: > Hi Christopher, > > On Fri, 7 Aug 2020, Pekka Enberg wrote: >>> I think we can just default to the counters. After all, if I >>> understood correctly, we're talking about up to 100 ms time period >>> with IRQs disabled when count_partial() is called. As

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-07 Thread Pekka Enberg
Hi Christopher, On Fri, 7 Aug 2020, Pekka Enberg wrote: > > I think we can just default to the counters. After all, if I > > understood correctly, we're talking about up to 100 ms time period > > with IRQs disabled when count_partial() is called. As this is > > triggerable from user space, that's

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-07 Thread Christopher Lameter
On Fri, 7 Aug 2020, Pekka Enberg wrote: > I think we can just default to the counters. After all, if I > understood correctly, we're talking about up to 100 ms time period > with IRQs disabled when count_partial() is called. As this is > triggerable from user space, that's a performance bug

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-07 Thread Pekka Enberg
On Thu, Aug 6, 2020 at 3:42 PM Vlastimil Babka wrote: > > On 7/2/20 10:32 AM, Xunlei Pang wrote: > > The node list_lock in count_partial() spend long time iterating > > in case of large amount of partial page lists, which can cause > > thunder herd effect to the list_lock contention, e.g. it

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-08-06 Thread Vlastimil Babka
On 7/2/20 10:32 AM, Xunlei Pang wrote: > The node list_lock in count_partial() spend long time iterating > in case of large amount of partial page lists, which can cause > thunder herd effect to the list_lock contention, e.g. it cause > business response-time jitters when accessing

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-30 Thread xunlei
On 2020/7/7 下午11:23, Pekka Enberg wrote: > Hi! > > (Sorry for the delay, I missed your response.) > > On Fri, Jul 3, 2020 at 12:38 PM xunlei wrote: >> >> On 2020/7/2 PM 7:59, Pekka Enberg wrote: >>> On Thu, Jul 2, 2020 at 11:32 AM Xunlei Pang >>> wrote: The node list_lock in

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-30 Thread xunlei
On 2020/7/7 下午2:59, Christopher Lameter wrote: > On Thu, 2 Jul 2020, Xunlei Pang wrote: > >> This patch introduces two counters to maintain the actual number >> of partial objects dynamically instead of iterating the partial >> page lists with list_lock held. >> >> New counters of kmem_cache_node

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-09 Thread Christopher Lameter
On Tue, 7 Jul 2020, Pekka Enberg wrote: > On Fri, Jul 3, 2020 at 12:38 PM xunlei wrote: > > > > On 2020/7/2 PM 7:59, Pekka Enberg wrote: > > > On Thu, Jul 2, 2020 at 11:32 AM Xunlei Pang > > > wrote: > > >> The node list_lock in count_partial() spend long time iterating > > >> in case of large

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-07 Thread Pekka Enberg
Hi! (Sorry for the delay, I missed your response.) On Fri, Jul 3, 2020 at 12:38 PM xunlei wrote: > > On 2020/7/2 PM 7:59, Pekka Enberg wrote: > > On Thu, Jul 2, 2020 at 11:32 AM Xunlei Pang > > wrote: > >> The node list_lock in count_partial() spend long time iterating > >> in case of large

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-07 Thread Christopher Lameter
On Thu, 2 Jul 2020, Xunlei Pang wrote: > This patch introduces two counters to maintain the actual number > of partial objects dynamically instead of iterating the partial > page lists with list_lock held. > > New counters of kmem_cache_node are: pfree_objects, ptotal_objects. > The main

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-03 Thread xunlei
On 2020/7/2 PM 7:59, Pekka Enberg wrote: > On Thu, Jul 2, 2020 at 11:32 AM Xunlei Pang wrote: >> The node list_lock in count_partial() spend long time iterating >> in case of large amount of partial page lists, which can cause >> thunder herd effect to the list_lock contention, e.g. it cause >>

Re: [PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-02 Thread Pekka Enberg
On Thu, Jul 2, 2020 at 11:32 AM Xunlei Pang wrote: > The node list_lock in count_partial() spend long time iterating > in case of large amount of partial page lists, which can cause > thunder herd effect to the list_lock contention, e.g. it cause > business response-time jitters when accessing

[PATCH 1/2] mm/slub: Introduce two counters for the partial objects

2020-07-02 Thread Xunlei Pang
The node list_lock in count_partial() spend long time iterating in case of large amount of partial page lists, which can cause thunder herd effect to the list_lock contention, e.g. it cause business response-time jitters when accessing "/proc/slabinfo" in our production environments. This patch