Re: [PATCH v2 0/7] mm/hotplug: Only use subsection map in VMEMMAP case

From: Baoquan He
Date: Wed Feb 26 2020 - 07:30:45 EST


On 02/26/20 at 10:14am, Michal Hocko wrote:
> On Wed 26-02-20 11:42:36, Baoquan He wrote:
> > On 02/25/20 at 11:02am, Michal Hocko wrote:
> > > On Tue 25-02-20 10:10:45, David Hildenbrand wrote:
> > > > >>> include/linux/mmzone.h | 2 +
> > > > >>> mm/sparse.c | 178 +++++++++++++++++++++++++++++------------
> > > > >>> 2 files changed, 127 insertions(+), 53 deletions(-)
> > > > >>
> > > > >> Why do we need to add so much code to remove a functionality from one
> > > > >> memory model?
> > > > >
> > > > > Hmm, Dan also asked this before.
> > > > >
> > > > > The adding mainly happens in patch 2, 3, 4, including the two newly
> > > > > added function defitions, the code comments above them, and those added
> > > > > dummy functions for !VMEMMAP.
> > > >
> > > > AFAIKS, it's mostly a bunch of newly added comments on top of functions.
> > > > E.g., the comment for fill_subsection_map() alone spans 12 LOC in total.
> > > > I do wonder if we have to be that verbose. We are barely that verbose on
> > > > MM code (and usually I don't see much benefit unless it's a function
> > > > with many users from many different places).
> > >
> > > I would tend to agree here. Not that I am against kernel doc
> > > documentation but these are internal functions and the comment doesn't
> > > really give any better insight IMHO. I would be much more inclined if
> > > this was the general pattern in the respective file but it just stands
> > > out.
> >
> > I saw there are internal functions which have code comments, e.g
> > shrink_slab() in mm/vmscan.c, not only this one place, there are several
> > places. I personally prefer to see code comment for function if
> > possible, this can save time, e.g people can skip the bitmap operation
> > when read code if not necessary. And here I mainly want to tell there
> > are different returned value to note different behaviour when call them.
>
> ... yet nobody really cares about different return code. It is an error
> that is propagated up the call chain and that's all.
>
> I also like when there is a kernel doc comment that helps to understand
> the intented usage, context the function can be called from, potential
> side effects, locking requirements and other details people need to know

Fair enough. As I have said, I didn't intend to stick to add kernel doc
comments for these two functions. Will remove them. Thanks for
reviewing.

> when calling functions. But have a look at
> /**
> * clear_subsection_map - Clear subsection map of one memory region
> *
> * @pfn - start pfn of the memory range
> * @nr_pages - number of pfns to add in the region
> *
> * This is only intended for hotplug, and clear the related subsection
> * map inside one section.
> *
> * Return:
> * * -EINVAL - Section already deactived.
> * * 0 - Subsection map is emptied.
> * * 1 - Subsection map is not empty.
> */
>
> the only useful information in here is that this is a hotplug stuff but
> I would be completely lost about the intention without already knowing
> what is this whole subsection about.
>
> --
> Michal Hocko
> SUSE Labs
>