Message ID | 87y236lpwb.fsf@depni.sinp.msu.ru |
---|---|
State | New |
Headers | show |
Series | linux-user/alpha: Fix target rlimits for alpha and rearrange for clarity | expand |
Le 15/01/2022 à 12:32, Serge Belyshev a écrit : > Alpha uses different values of some TARGET_RLIMIT_* constants, which were > missing and caused bugs like #577, fixed thus. Also rearranged all three > (alpha, mips and sparc) that differ from everyone else for clarity. > > Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/577 > --- > linux-user/syscall_defs.h | 31 ++++++++++++++----------------- > 1 file changed, 14 insertions(+), 17 deletions(-) > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index f23f0a2178..3fcabaeae3 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -730,44 +730,41 @@ struct target_rlimit { > #define TARGET_RLIM_INFINITY ((abi_ulong)-1) > #endif > > -#if defined(TARGET_MIPS) > #define TARGET_RLIMIT_CPU 0 > #define TARGET_RLIMIT_FSIZE 1 > #define TARGET_RLIMIT_DATA 2 > #define TARGET_RLIMIT_STACK 3 > #define TARGET_RLIMIT_CORE 4 > +#if defined(TARGET_MIPS) > +#define TARGET_RLIMIT_NOFILE 5 > +#define TARGET_RLIMIT_AS 6 > #define TARGET_RLIMIT_RSS 7 > #define TARGET_RLIMIT_NPROC 8 > -#define TARGET_RLIMIT_NOFILE 5 > #define TARGET_RLIMIT_MEMLOCK 9 > -#define TARGET_RLIMIT_AS 6 > -#define TARGET_RLIMIT_LOCKS 10 > -#define TARGET_RLIMIT_SIGPENDING 11 > -#define TARGET_RLIMIT_MSGQUEUE 12 > -#define TARGET_RLIMIT_NICE 13 > -#define TARGET_RLIMIT_RTPRIO 14 > -#else > -#define TARGET_RLIMIT_CPU 0 > -#define TARGET_RLIMIT_FSIZE 1 > -#define TARGET_RLIMIT_DATA 2 > -#define TARGET_RLIMIT_STACK 3 > -#define TARGET_RLIMIT_CORE 4 > +#elif defined(TARGET_ALPHA) > +#define TARGET_RLIMIT_RSS 5 > +#define TARGET_RLIMIT_NOFILE 6 > +#define TARGET_RLIMIT_AS 7 > +#define TARGET_RLIMIT_NPROC 8 > +#define TARGET_RLIMIT_MEMLOCK 9 > +#elif defined(TARGET_SPARC) > #define TARGET_RLIMIT_RSS 5 > -#if defined(TARGET_SPARC) > #define TARGET_RLIMIT_NOFILE 6 > #define TARGET_RLIMIT_NPROC 7 > +#define TARGET_RLIMIT_MEMLOCK 8 > +#define TARGET_RLIMIT_AS 9 > #else > +#define TARGET_RLIMIT_RSS 5 > #define TARGET_RLIMIT_NPROC 6 > #define TARGET_RLIMIT_NOFILE 7 > -#endif > #define TARGET_RLIMIT_MEMLOCK 8 > #define TARGET_RLIMIT_AS 9 > +#endif > #define TARGET_RLIMIT_LOCKS 10 > #define TARGET_RLIMIT_SIGPENDING 11 > #define TARGET_RLIMIT_MSGQUEUE 12 > #define TARGET_RLIMIT_NICE 13 > #define TARGET_RLIMIT_RTPRIO 14 > -#endif > > struct target_pollfd { > int fd; /* file descriptor */ Reviewed-by: Laurent Vivier <laurent@vivier.eu> perhaps you could also add RLIMIT_RTTIME (15) and update target_to_host_resource()? The next step would be to move the generic definitions to a new file in linux-user/generic/target_resource.h and the specific ones to linux-user/alpha, linux-user/mips and linux-user/sparc. Thanks, Laurent
Le 15/01/2022 à 12:32, Serge Belyshev a écrit : > Alpha uses different values of some TARGET_RLIMIT_* constants, which were > missing and caused bugs like #577, fixed thus. Also rearranged all three > (alpha, mips and sparc) that differ from everyone else for clarity. > > Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/577 > --- > linux-user/syscall_defs.h | 31 ++++++++++++++----------------- > 1 file changed, 14 insertions(+), 17 deletions(-) > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index f23f0a2178..3fcabaeae3 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -730,44 +730,41 @@ struct target_rlimit { > #define TARGET_RLIM_INFINITY ((abi_ulong)-1) > #endif > > -#if defined(TARGET_MIPS) > #define TARGET_RLIMIT_CPU 0 > #define TARGET_RLIMIT_FSIZE 1 > #define TARGET_RLIMIT_DATA 2 > #define TARGET_RLIMIT_STACK 3 > #define TARGET_RLIMIT_CORE 4 > +#if defined(TARGET_MIPS) > +#define TARGET_RLIMIT_NOFILE 5 > +#define TARGET_RLIMIT_AS 6 > #define TARGET_RLIMIT_RSS 7 > #define TARGET_RLIMIT_NPROC 8 > -#define TARGET_RLIMIT_NOFILE 5 > #define TARGET_RLIMIT_MEMLOCK 9 > -#define TARGET_RLIMIT_AS 6 > -#define TARGET_RLIMIT_LOCKS 10 > -#define TARGET_RLIMIT_SIGPENDING 11 > -#define TARGET_RLIMIT_MSGQUEUE 12 > -#define TARGET_RLIMIT_NICE 13 > -#define TARGET_RLIMIT_RTPRIO 14 > -#else > -#define TARGET_RLIMIT_CPU 0 > -#define TARGET_RLIMIT_FSIZE 1 > -#define TARGET_RLIMIT_DATA 2 > -#define TARGET_RLIMIT_STACK 3 > -#define TARGET_RLIMIT_CORE 4 > +#elif defined(TARGET_ALPHA) > +#define TARGET_RLIMIT_RSS 5 > +#define TARGET_RLIMIT_NOFILE 6 > +#define TARGET_RLIMIT_AS 7 > +#define TARGET_RLIMIT_NPROC 8 > +#define TARGET_RLIMIT_MEMLOCK 9 > +#elif defined(TARGET_SPARC) > #define TARGET_RLIMIT_RSS 5 > -#if defined(TARGET_SPARC) > #define TARGET_RLIMIT_NOFILE 6 > #define TARGET_RLIMIT_NPROC 7 > +#define TARGET_RLIMIT_MEMLOCK 8 > +#define TARGET_RLIMIT_AS 9 > #else > +#define TARGET_RLIMIT_RSS 5 > #define TARGET_RLIMIT_NPROC 6 > #define TARGET_RLIMIT_NOFILE 7 > -#endif > #define TARGET_RLIMIT_MEMLOCK 8 > #define TARGET_RLIMIT_AS 9 > +#endif > #define TARGET_RLIMIT_LOCKS 10 > #define TARGET_RLIMIT_SIGPENDING 11 > #define TARGET_RLIMIT_MSGQUEUE 12 > #define TARGET_RLIMIT_NICE 13 > #define TARGET_RLIMIT_RTPRIO 14 > -#endif > > struct target_pollfd { > int fd; /* file descriptor */ Applied to my linux-user-for-7.0 branch. Thanks, Laurent
Laurent Vivier <laurent@vivier.eu> writes: > > Reviewed-by: Laurent Vivier <laurent@vivier.eu> > Applied to my linux-user-for-7.0 branch. Thanks! > perhaps you could also add RLIMIT_RTTIME (15) and update target_to_host_resource()? > > The next step would be to move the generic definitions to a new file > in linux-user/generic/target_resource.h and the specific ones to > linux-user/alpha, linux-user/mips and linux-user/sparc. Will submit in a moment on top of the previous patch. End result is cleaner but slightly bulkier.
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index f23f0a2178..3fcabaeae3 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -730,44 +730,41 @@ struct target_rlimit { #define TARGET_RLIM_INFINITY ((abi_ulong)-1) #endif -#if defined(TARGET_MIPS) #define TARGET_RLIMIT_CPU 0 #define TARGET_RLIMIT_FSIZE 1 #define TARGET_RLIMIT_DATA 2 #define TARGET_RLIMIT_STACK 3 #define TARGET_RLIMIT_CORE 4 +#if defined(TARGET_MIPS) +#define TARGET_RLIMIT_NOFILE 5 +#define TARGET_RLIMIT_AS 6 #define TARGET_RLIMIT_RSS 7 #define TARGET_RLIMIT_NPROC 8 -#define TARGET_RLIMIT_NOFILE 5 #define TARGET_RLIMIT_MEMLOCK 9 -#define TARGET_RLIMIT_AS 6 -#define TARGET_RLIMIT_LOCKS 10 -#define TARGET_RLIMIT_SIGPENDING 11 -#define TARGET_RLIMIT_MSGQUEUE 12 -#define TARGET_RLIMIT_NICE 13 -#define TARGET_RLIMIT_RTPRIO 14 -#else -#define TARGET_RLIMIT_CPU 0 -#define TARGET_RLIMIT_FSIZE 1 -#define TARGET_RLIMIT_DATA 2 -#define TARGET_RLIMIT_STACK 3 -#define TARGET_RLIMIT_CORE 4 +#elif defined(TARGET_ALPHA) +#define TARGET_RLIMIT_RSS 5 +#define TARGET_RLIMIT_NOFILE 6 +#define TARGET_RLIMIT_AS 7 +#define TARGET_RLIMIT_NPROC 8 +#define TARGET_RLIMIT_MEMLOCK 9 +#elif defined(TARGET_SPARC) #define TARGET_RLIMIT_RSS 5 -#if defined(TARGET_SPARC) #define TARGET_RLIMIT_NOFILE 6 #define TARGET_RLIMIT_NPROC 7 +#define TARGET_RLIMIT_MEMLOCK 8 +#define TARGET_RLIMIT_AS 9 #else +#define TARGET_RLIMIT_RSS 5 #define TARGET_RLIMIT_NPROC 6 #define TARGET_RLIMIT_NOFILE 7 -#endif #define TARGET_RLIMIT_MEMLOCK 8 #define TARGET_RLIMIT_AS 9 +#endif #define TARGET_RLIMIT_LOCKS 10 #define TARGET_RLIMIT_SIGPENDING 11 #define TARGET_RLIMIT_MSGQUEUE 12 #define TARGET_RLIMIT_NICE 13 #define TARGET_RLIMIT_RTPRIO 14 -#endif struct target_pollfd { int fd; /* file descriptor */
Alpha uses different values of some TARGET_RLIMIT_* constants, which were missing and caused bugs like #577, fixed thus. Also rearranged all three (alpha, mips and sparc) that differ from everyone else for clarity. Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/577 --- linux-user/syscall_defs.h | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-)