* [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64
[not found] ` <mvmtvdyoi33.fsf@suse.de>
@ 2019-05-13 20:16 ` Yuri Norov
2019-05-14 10:43 ` Cyril Hrubis
0 siblings, 1 reply; 4+ messages in thread
From: Yuri Norov @ 2019-05-13 20:16 UTC (permalink / raw)
To: ltp
+ ltp@lists.linux.it
> There is a problem with the stack size accounting during execve when
> there is no stack limit:
>
> $ ulimit -s
> 8192
> $ ./hello.ilp32
> Hello World!
> $ ulimit -s unlimited
> $ ./hello.ilp32
> Segmentation fault
> $ strace ./hello.ilp32
> execve("./hello.ilp32", ["./hello.ilp32"], 0xfffff10548f0 /* 77 vars */) = -1 ENOMEM (Cannot allocate memory)
> +++ killed by SIGSEGV +++
> Segmentation fault (core dumped)
>
> Andreas.
Thanks Andreas, I will take a look. Do we have such test in LTP?
Yury
^ permalink raw reply [flat|nested] 4+ messages in thread
* [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64
2019-05-13 20:16 ` [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64 Yuri Norov
@ 2019-05-14 10:43 ` Cyril Hrubis
2019-05-14 23:01 ` Yury Norov
2019-05-14 23:41 ` Yury Norov
0 siblings, 2 replies; 4+ messages in thread
From: Cyril Hrubis @ 2019-05-14 10:43 UTC (permalink / raw)
To: ltp
Hi!
> > There is a problem with the stack size accounting during execve when
> > there is no stack limit:
> >
> > $ ulimit -s
> > 8192
> > $ ./hello.ilp32
> > Hello World!
> > $ ulimit -s unlimited
> > $ ./hello.ilp32
> > Segmentation fault
> > $ strace ./hello.ilp32
> > execve("./hello.ilp32", ["./hello.ilp32"], 0xfffff10548f0 /* 77 vars */) = -1 ENOMEM (Cannot allocate memory)
> > +++ killed by SIGSEGV +++
> > Segmentation fault (core dumped)
> >
> > Andreas.
>
> Thanks Andreas, I will take a look. Do we have such test in LTP?
We do have a test that we can run a binary with very small stack size
i.e. 512kB but there does not seem to be anything that would catch this
specific problem.
Can you please open an issue and describe how to reproduce the problem
at our github tracker:
https://github.com/linux-test-project/ltp/issues
Then we can create testcase based on that reproducer later on.
--
Cyril Hrubis
chrubis@suse.cz
^ permalink raw reply [flat|nested] 4+ messages in thread
* [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64
2019-05-14 10:43 ` Cyril Hrubis
@ 2019-05-14 23:01 ` Yury Norov
2019-05-14 23:41 ` Yury Norov
1 sibling, 0 replies; 4+ messages in thread
From: Yury Norov @ 2019-05-14 23:01 UTC (permalink / raw)
To: ltp
On Tue, May 14, 2019 at 12:43:11PM +0200, Cyril Hrubis wrote:
> Hi!
> > > There is a problem with the stack size accounting during execve when
> > > there is no stack limit:
> > >
> > > $ ulimit -s
> > > 8192
> > > $ ./hello.ilp32
> > > Hello World!
> > > $ ulimit -s unlimited
> > > $ ./hello.ilp32
> > > Segmentation fault
> > > $ strace ./hello.ilp32
> > > execve("./hello.ilp32", ["./hello.ilp32"], 0xfffff10548f0 /* 77 vars */) = -1 ENOMEM (Cannot allocate memory)
> > > +++ killed by SIGSEGV +++
> > > Segmentation fault (core dumped)
> > >
> > > Andreas.
> >
> > Thanks Andreas, I will take a look. Do we have such test in LTP?
So the problem was in not converting new compat-sensitive code:
diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
index 5bdf357169d8..c509f83fa506 100644
--- a/arch/arm64/include/asm/processor.h
+++ b/arch/arm64/include/asm/processor.h
@@ -63,7 +63,7 @@
TASK_SIZE_32 : TASK_SIZE_64)
#define TASK_SIZE_OF(tsk) (is_compat_thread(tsk) ? \
TASK_SIZE_32 : TASK_SIZE_64)
-#define DEFAULT_MAP_WINDOW (test_thread_flag(TIF_32BIT) ? \
+#define DEFAULT_MAP_WINDOW (is_compat_task() ? \
TASK_SIZE_32 : DEFAULT_MAP_WINDOW_64)
#else
#define TASK_SIZE TASK_SIZE_64
The fix is incorporated in ilp32-5.1.1:
https://github.com/norov/linux/tree/ilp32-5.1.1
> We do have a test that we can run a binary with very small stack size
> i.e. 512kB but there does not seem to be anything that would catch this
> specific problem.
>
> Can you please open an issue and describe how to reproduce the problem
> at our github tracker:
>
> https://github.com/linux-test-project/ltp/issues
>
> Then we can create testcase based on that reproducer later on.
>
> --
> Cyril Hrubis
> chrubis@suse.cz
OK, I'll do.
Yury
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64
2019-05-14 10:43 ` Cyril Hrubis
2019-05-14 23:01 ` Yury Norov
@ 2019-05-14 23:41 ` Yury Norov
1 sibling, 0 replies; 4+ messages in thread
From: Yury Norov @ 2019-05-14 23:41 UTC (permalink / raw)
To: ltp
On Tue, May 14, 2019 at 12:43:11PM +0200, Cyril Hrubis wrote:
> Hi!
> > > There is a problem with the stack size accounting during execve when
> > > there is no stack limit:
> > >
> > > $ ulimit -s
> > > 8192
> > > $ ./hello.ilp32
> > > Hello World!
> > > $ ulimit -s unlimited
> > > $ ./hello.ilp32
> > > Segmentation fault
> > > $ strace ./hello.ilp32
> > > execve("./hello.ilp32", ["./hello.ilp32"], 0xfffff10548f0 /* 77 vars */) = -1 ENOMEM (Cannot allocate memory)
> > > +++ killed by SIGSEGV +++
> > > Segmentation fault (core dumped)
> > >
> > > Andreas.
> >
> > Thanks Andreas, I will take a look. Do we have such test in LTP?
>
> We do have a test that we can run a binary with very small stack size
> i.e. 512kB but there does not seem to be anything that would catch this
> specific problem.
>
> Can you please open an issue and describe how to reproduce the problem
> at our github tracker:
>
> https://github.com/linux-test-project/ltp/issues
>
> Then we can create testcase based on that reproducer later on.
This is it:
https://github.com/linux-test-project/ltp/issues/530
Yury
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-05-14 23:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20180516081910.10067-1-ynorov@caviumnetworks.com>
[not found] ` <20190508225900.GA14091@yury-thinkpad>
[not found] ` <mvmtvdyoi33.fsf@suse.de>
2019-05-13 20:16 ` [LTP] [EXT] Re: [PATCH v9 00/24] ILP32 for ARM64 Yuri Norov
2019-05-14 10:43 ` Cyril Hrubis
2019-05-14 23:01 ` Yury Norov
2019-05-14 23:41 ` Yury Norov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox