Re: [PATCH RFC 00/10] Introduce lockless shrink_slab()

Stephen Rothwell
2018-08-08T01:12:32Z

[-- Attachment #1: Type: text/plain, Size: 1779 bytes --]

Hi Kirill,

On Tue, 07 Aug 2018 18:37:19 +0300 Kirill Tkhai <ktkhai@virtuozzo.com> wrote:
>
> After bitmaps of not-empty memcg shrinkers were implemented
> (see "[PATCH v9 00/17] Improve shrink_slab() scalability..."
> series, which is already in mm tree), all the evil in perf
> trace has moved from shrink_slab() to down_read_trylock().
> As reported by Shakeel Butt:
>
> > I created 255 memcgs, 255 ext4 mounts and made each memcg create a
> > file containing few KiBs on corresponding mount. Then in a separate
> > memcg of 200 MiB limit ran a fork-bomb.
> >
> > I ran the "perf record -ag -- sleep 60" and below are the results:
> > + 47.49% fb.sh [kernel.kallsyms] [k] down_read_trylock
> > + 30.72% fb.sh [kernel.kallsyms] [k] up_read
> > + 9.51% fb.sh [kernel.kallsyms] [k] mem_cgroup_iter
> > + 1.69% fb.sh [kernel.kallsyms] [k] shrink_node_memcg
> > + 1.35% fb.sh [kernel.kallsyms] [k] mem_cgroup_protected
> > + 1.05% fb.sh [kernel.kallsyms] [k] queued_spin_lock_slowpath
> > + 0.85% fb.sh [kernel.kallsyms] [k] _raw_spin_lock
> > + 0.78% fb.sh [kernel.kallsyms] [k] lruvec_lru_size
> > + 0.57% fb.sh [kernel.kallsyms] [k] shrink_node
> > + 0.54% fb.sh [kernel.kallsyms] [k] queue_work_on
> > + 0.46% fb.sh [kernel.kallsyms] [k] shrink_slab_memcg
>
> The patchset continues to improve shrink_slab() scalability and makes
> it lockless completely. Here are several steps for that:

So do you have any numbers for after theses changes?

--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]