Le 25/07/2017 à 13:19, Michael Ellerman a écrit :
LEROY Christophe <christophe.le...@c-s.fr> writes:

Michael Ellerman <m...@ellerman.id.au> a écrit :

LEROY Christophe <christophe.le...@c-s.fr> writes:

Benjamin Herrenschmidt <b...@kernel.crashing.org> a écrit :

When hitting below a VM_GROWSDOWN vma (typically growing the stack),
we check whether it's a valid stack-growing instruction and we
check the distance to GPR1. This is largely open coded with lots
of comments, so move it out to a helper.

Did you have a look at the following patch ? It's been waiting for
application for some weeks now.
https://patchwork.ozlabs.org/patch/771869

I actually merged it last merge window, but found I had no good way to
test it, so I took it out again until I can write a test case for it.

The way I realised it wasn't being tested was by removing all the
store_updates_sp logic entirely and having my system run happily for
several days :}

Which demonstrates how unlikely this is, hence doing that get_user()
at every fault is waste of time.

Yes I agree.

How do you plan to handle that in parralele to ben's serie ?

Not sure :)

I'll be back from vacation next week and may help finding a way to
test that. (A test program using alloca() ?)

I was thinking hand-crafted asm, but that might be a pain to get working
for 32 & 64-bit, in which case alloca() might work.

No need of very sofisticated thing indeed.
The following app makes the trick. If I modify store_updates_sp() to always return 0, the app gets a SIGSEGV.

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char **argv)
{
        char buf[1024 * 1025];

        sprintf(buf, "Hello world !\n");
        printf(buf);

        exit(0);
}

Christophe


cheers

Reply via email to