Re: [PATCH] x86: Don't randomize stack unless current->personality permits it

From: Al Boldi
Date: Mon Jul 24 2006 - 11:55:02 EST


Al Boldi wrote:
> Chuck Ebbert wrote:
> > On Tue, 18 Jul 2006 08:21:45 +0300. Al Boldi wrote:
> > > Going one step further,
> > > with #define arch_stack_align(x) (x)
> > > all blips/hits/weirdness are gone
> > >
> > > Which means that either arch_stack_align isn't necessary at all, or
> > > randomization isn't working as intended.
> > >
> > > Can somebody prove me wrong here?
> >
> > Your program seems highly sensitive to any changes,
>
> Extremely sensitive. You may have noticed the strange repetitions in main
> instead of a for loop. It's like that for a reason: compile semantics.
>
> > $ ./tst.ex
> > &x = 0xbfb32d90, &y = 0xbfb32d98
> > 10 6 10 10 6 10 7 10 10 10 10 10 10 10
>
> With your changes on:
>
> stock kernel, randomize_va_space=0, gcc.322 -Os tstExec.c,
> while :; do ./a.out; done
> &x = 0xbffff874, &y = 0xbffff86c 28 28
> &x = 0xbffff874, &y = 0xbffff86c 27 27
> &x = 0xbffff874, &y = 0xbffff86c 27 27
> &x = 0xbffff874, &y = 0xbffff86c 28 27
> &x = 0xbffff874, &y = 0xbffff86c 27 30
> &x = 0xbffff874, &y = 0xbffff86c 27 29
>
> stock kernel, randomize_va_space=1, gcc.322 -Os tstExec.c,
> while :; do ./a.out; done
> &x = 0xbfe2e614, &y = 0xbfe2e60c 29 28
> &x = 0xbfd6a104, &y = 0xbfd6a0fc 55 56
> &x = 0xbf91d454, &y = 0xbf91d44c 27 27
> &x = 0xbf941e84, &y = 0xbf941e7c 55 56
> &x = 0xbfa75834, &y = 0xbfa7582c 28 27
> &x = 0xbfb58634, &y = 0xbfb5862c 27 30

After closer inspection, it looks like addresses ending with 3c,7c,bc,fc
cause a slowdown on P4, while addresses ending with 1c,3c,5c,7c,9c,bc,dc,fc
cause a slowdown on P2.

Any easy way to instruct the kernel to skip those addresses?

Thanks!

--
Al

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/