Re: [PATCH 2/5] introduce "struct wait_opts" to simplify do_wait() pathes

Richard Kennedy
2009-05-07T11:54:50Z

Oleg Nesterov wrote:
> Introduce "struct wait_opts" which holds the parameters for misc helpers
> in do_wait() pathes.
>
> This adds 13 lines to kernel/exit.c, but saves 256 bytes from .o and imho
> makes the code much more readable.
>
> This patch temporary uglifies rusage/siginfo code a little bit, will be
> addressed by further cleanups.
>
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
> Reviewed-by: Ingo Molnar <mingo@elte.hu>
> ---
>
> kernel/exit.c | 207 ++++++++++++++++++++++++++++++----------------------------
> 1 file changed, 110 insertions(+), 97 deletions(-)
>
> --- PTRACE/kernel/exit.c~2_WOPTS 2009-05-07 04:32:08.000000000 +0200
> +++ PTRACE/kernel/exit.c 2009-05-07 04:37:49.000000000 +0200
> @@ -1076,6 +1076,18 @@ SYSCALL_DEFINE1(exit_group, int, error_c
> return 0;
> }
>
> +struct wait_opts {
> + enum pid_type wo_type;
> + struct pid *wo_pid;
> + int wo_flags;
> +
> + struct siginfo __user *wo_info;
> + int __user *wo_stat;
> + struct rusage __user *wo_rusage;
> +
> + int notask_error;
> +};
> +

Hi Oleg,
you can remove 8 bytes of alignment padding from wait_opts on 64bit
builds if you reorder it slightly.

struct wait_opts {
enum pid_type wo_type;
int wo_flags;
struct pid *wo_pid;
...

regards
Richard