Re: [v3 0/9] parallelized "struct page" zeroing
From: Michal Hocko
Date: Tue May 16 2017 - 04:36:13 EST
On Mon 15-05-17 16:44:26, Pasha Tatashin wrote:
> On 05/15/2017 03:38 PM, Michal Hocko wrote:
> >I do not think this is the right approach. Your measurements just show
> >that sparc could have a more optimized memset for small sizes. If you
> >keep the same memset only for the parallel initialization then you
> >just hide this fact. I wouldn't worry about other architectures. All
> >sane architectures should simply work reasonably well when touching a
> >single or only few cache lines at the same time. If some arches really
> >suffer from small memsets then the initialization should be driven by a
> >specific ARCH_WANT_LARGE_PAGEBLOCK_INIT rather than making this depend
> >on DEFERRED_INIT. Or if you are too worried then make it opt-in and make
> >it depend on ARCH_WANT_PER_PAGE_INIT and make it enabled for x86 and
> >sparc after memset optimization.
>
> OK, I will think about this.
>
> I do not really like adding new configs because they tend to clutter the
> code. This is why,
Yes I hate adding new (arch) config options as well. And I still believe
we do not need any here either...
> I wanted to rely on already existing config that I know benefits all
> platforms that use it.
I wouldn't be so sure about this. If any other platform has a similar
issues with small memset as sparc then the overhead is just papered over
by parallel initialization.
> Eventually,
> "CONFIG_DEFERRED_STRUCT_PAGE_INIT" is going to become the default
> everywhere, as there should not be a drawback of using it even on small
> machines.
Maybe and I would highly appreciate that.
--
Michal Hocko
SUSE Labs