Re: [PATCH 18/89] sched/core: Move task->mm handling methods to <linux/sched/mm.h>

From: Ingo Molnar
Date: Tue Feb 07 2017 - 02:30:53 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

>
> * Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
> > On Mon, Feb 06, 2017 at 02:28:21PM +0100, Ingo Molnar wrote:
> > > Move the following task->mm helper APIs into a new header file,
> > > <linux/sched/mm.h>, to further reduce the size and complexity
> > > of <linux/sched.h>:
> >
> > Is there any good reason why they can't just go into linux/mm.h?
>
> So mm.h is pretty large already, and I wanted to preserve the natural API and
> header separation that was the result of these APIs being in sched.h. Many
> smaller headers are so much easier to maintain, and they are much more readable
> as well in my experience.

The other big reason is that putting these APIs (mmget()/mmput()/etc.) into mm.h
would cause mm.h to include sched.h, which would make the whole major kernel
header coupling situation I'm trying to improve with this series so much worse all
around.

The current stats are: <linux/mm.h> is included in almost as many files as
<linux/sched.h>, and about half of them don't include <linux/sched.h>. So adding
these APIs would significantly bloat the kernel in the header build space. So we
really don't want to include sched.h in mm.h.

Thanks,

Ingo