Re: [PATCHv4 2/5] x86/mm: introduce mmap{,_legacy}_base

From: Thomas Gleixner
Date: Mon Feb 13 2017 - 10:35:25 EST


On Mon, 13 Feb 2017, Dmitry Safonov wrote:
> On 02/11/2017 05:13 PM, Thomas Gleixner wrote:
> > > -static unsigned long mmap_base(unsigned long rnd)
> > > +static unsigned long mmap_base(unsigned long rnd, unsigned long
> > > task_size)
> > > {
> > > unsigned long gap = rlimit(RLIMIT_STACK);
> > unsigned long gap_min, gap_max;
> >
> > /* Add comment what this means */
> > gap_min = SIZE_128M + stack_maxrandom_size(task_size);
> > /* Explain that ' /6 * 5' magic */
> > gap_max = (task_size / 6) * 5;
>
> So, I can't find about those limits on a gap size:
> They were introduced by commit 8913d55b6c58 ("i386 virtual memory
> layout rework").
> All I could find is that 128Mb limit was more limit on virtual adress
> space than on a memory available those days.
> And 5/6 of task_size looks like heuristic value.
> So I'm not sure, what to write in comments:
> that rlimit on stack can't be bigger than 5/6 of task_size?
> That looks obvious from the code.

So just leave it alone. 5/6 is pulled from thin air and 128M probably as
well. I hoped there would be some reasonable explanation ....

Thanks,

tglx