Re: [BUGFIX PATCH 1/5] selftests: proc: Make va_max 3GB on 32bit arch

From: Masami Hiramatsu
Date: Tue Oct 08 2019 - 22:50:03 EST


On Tue, 8 Oct 2019 20:59:16 +0300
Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:

> On Tue, Oct 08, 2019 at 12:10:26AM +0900, Masami Hiramatsu wrote:
> > Currently proc-self-map-files-002.c sets va_max (max test address
> > of user virtual address) to 4GB, but it is too big for 32bit
> > arch and 1UL << 32 is overflow on 32bit long.
> >
> > Make va_max 3GB on 32bit arch like i386 and arm.
>
> IIRC i386 had 1G/3G split, so 3GB would be too much still.

Hmm, would you know what is the best value for that?
i386 can also be configured 3G/1G, 2G/2G and 1G/3G, so it
depends on the build configuration. Would 1G is enough for test?

Thank you,

>
> > --- a/tools/testing/selftests/proc/proc-self-map-files-002.c
> > +++ b/tools/testing/selftests/proc/proc-self-map-files-002.c
>
> > +#if __BITS_PER_LONG == 32
> > +# define VA_MAX (3UL << 30)
> > +#elif __BITS_PER_LONG == 64
> > +# define VA_MAX (1UL << 32)
> > +#else
> > +# define VA_MAX 0
> > +#endif
> > +
> > int main(void)
> > {
> > const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
> > - const unsigned long va_max = 1UL << 32;
> > + const unsigned long va_max = VA_MAX;
>
> This limit doesn't need to be precise, 1GB is "big enough".


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>