Files
kernel/include/linux
Alexey Dobriyan a6231d1993 exec: move struct linux_binprm::buf
struct linux_binprm::buf is the first field and it is exactly 128 bytes
in size.  It means that on x86_64 all accesses to other fields will go
though [r64 + disp32] addressing mode which is 3 bytes bloatier than
[r64 + disp8] addressing mode.  Given that accesses to other fields
outnumber accesses to ->buf, move it down.

Space savings (x86_64 defconfig):
more on distro configs because LSMs actively dereference "bprm"
but do not care about first 128 bytes of the executable itself.

add/remove: 0/0 grow/shrink: 0/24 up/down: 0/-492 (-492)
Function                                     old     new   delta
selinux_bprm_committing_creds                552     549      -3
finalize_exec                                 94      91      -3
__audit_log_bprm_fcaps                       283     280      -3
__audit_bprm                                  39      36      -3
perf_trace_sched_process_exec                347     341      -6
install_exec_creds                           105      99      -6
cap_bprm_set_creds.cold                       60      54      -6
would_dump                                   137     128      -9
load_script                                  637     628      -9
bprm_change_interp                            61      52      -9
trace_event_raw_event_sched_process_exec     260     250     -10
search_binary_handler                        255     240     -15
remove_arg_zero                              295     277     -18
free_bprm                                    119     101     -18
prepare_binprm                               379     360     -19
setup_new_exec                               336     315     -21
flush_old_exec                              1638    1617     -21
copy_strings.isra                            746     724     -22
setup_arg_pages                              559     530     -29
load_misc_binary                            1151    1118     -33
selinux_bprm_set_creds                       792     753     -39
load_elf_binary                            11111   11072     -39
cap_bprm_set_creds                          1496    1454     -42
__do_execve_file.isra                       2395    2286    -109

Link: http://lkml.kernel.org/r/20190421165025.GA26843@avx2
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 19:52:50 -07:00
..
2019-05-07 11:46:02 -07:00
2019-04-16 18:03:48 +02:00
2019-05-02 10:37:55 +09:00
2019-04-15 18:14:01 -04:00
2019-05-14 19:52:50 -07:00
2019-04-23 01:50:43 +02:00
2019-04-09 17:05:46 -07:00
2019-05-07 08:39:02 -06:00
2019-04-19 11:26:48 -07:00
2019-04-29 12:37:46 +02:00
2019-03-12 10:04:02 -07:00
2019-04-22 09:48:12 -06:00
2019-03-09 19:52:47 -08:00
2019-03-22 14:36:02 +01:00
2019-05-01 07:47:37 -07:00
2019-04-08 22:56:14 +02:00
2019-04-16 15:38:07 +02:00
2019-03-07 18:32:03 -08:00
2019-04-19 14:07:40 -07:00
2019-05-14 09:47:51 -07:00
2019-05-07 14:31:03 +02:00
2019-03-12 10:04:03 -07:00
2019-05-14 19:52:48 -07:00
2019-05-08 22:14:36 +02:00
2019-03-15 15:29:47 -07:00
2019-04-06 10:48:35 -06:00
2019-05-01 08:38:47 -06:00
2019-04-30 12:37:51 +02:00
2019-04-09 15:14:49 -06:00