[PATCH v4 7/7] fs/splice: full support for compiling out splice
Entirely compile out splice translation unit when the system is configured without splice family of syscalls (i.e. CONFIG_SYSCALL_SPLICE is undefined). Exported fs/splice functions are transparently mocked out with static inlines. Because userspace support for splice has already been removed by this patch-set, the exported functions cannot be called anyway. Mocking them out prevents a maintenance burden on file system drivers. The bloat score resulting from this patch given a tinyconfig is: add/remove: 0/25 grow/shrink: 0/5 up/down: 0/-4845 (-4845) function old new delta pipe_to_null 4 - -4 generic_pipe_buf_nosteal 6 - -6 spd_release_page 10 - -10 PageUptodate 22 11 -11 lock_page 36 24 -12 page_cache_pipe_buf_release 16 - -16 splice_write_null 24 4 -20 page_cache_pipe_buf_ops 20 - -20 nosteal_pipe_buf_ops 20 - -20 default_pipe_buf_ops 20 - -20 generic_splice_sendpage 24 - -24 splice_shrink_spd 27 - -27 direct_splice_actor 47 - -47 default_file_splice_write 49 - -49 wakeup_pipe_writers 54 - -54 write_pipe_buf71 - -71 page_cache_pipe_buf_confirm 80 - -80 splice_grow_spd 87 - -87 splice_from_pipe 93 - -93 splice_from_pipe_next106 --106 pipe_to_sendpage 109 --109 page_cache_pipe_buf_steal114 --114 generic_file_splice_read 131 8-123 do_splice_direct 148 --148 __splice_from_pipe 246 --246 splice_direct_to_actor 416 --416 splice_to_pipe 417 --417 default_file_splice_read 688 --688 iter_file_splice_write 702 4-698 __generic_file_splice_read 1109 - -1109 The bloat score for the entire CONFIG_SYSCALL_SPLICE patch-set is: add/remove: 0/41 grow/shrink: 5/7 up/down: 23/-8422 (-8399) function old new delta sys_pwritev 115 122 +7 sys_preadv 115 122 +7 fdput_pos 29 36 +7 sys_pwrite64 115 116 +1 sys_pread64 115 116 +1 pipe_to_null 4 - -4 generic_pipe_buf_nosteal 6 - -6 spd_release_page 10 - -10 fdput 11 - -11 PageUptodate 22 11 -11 lock_page 36 24 -12 signal_pending39 26 -13 fdget 56 42 -14 page_cache_pipe_buf_release 16 - -16 user_page_pipe_buf_ops20 - -20 splice_write_null 24 4 -20 page_cache_pipe_buf_ops 20 - -20 nosteal_pipe_buf_ops 20 - -20 default_pipe_buf_ops 20 - -20 generic_splice_sendpage 24 - -24 user_page_pipe_buf_steal 25 - -25 splice_shrink_spd 27 - -27 pipe_to_user 43 - -43 direct_splice_actor 47 - -47 default_file_splice_write 49 - -49 wakeup_pipe_writers 54 - -54 wakeup_pipe_readers 54 - -54 write_pipe_buf71 - -71 page_cache_pipe_buf_confirm 80 - -80 splice_grow_spd 87 - -87 do_splice_to 87 - -87 ipipe_prep.part 92 - -92 splice_from_pipe 93 - -93 splice_from_pipe_next107 --107 pipe_to_sendpage
[PATCH v4 7/7] fs/splice: full support for compiling out splice
Entirely compile out splice translation unit when the system is configured without splice family of syscalls (i.e. CONFIG_SYSCALL_SPLICE is undefined). Exported fs/splice functions are transparently mocked out with static inlines. Because userspace support for splice has already been removed by this patch-set, the exported functions cannot be called anyway. Mocking them out prevents a maintenance burden on file system drivers. The bloat score resulting from this patch given a tinyconfig is: add/remove: 0/25 grow/shrink: 0/5 up/down: 0/-4845 (-4845) function old new delta pipe_to_null 4 - -4 generic_pipe_buf_nosteal 6 - -6 spd_release_page 10 - -10 PageUptodate 22 11 -11 lock_page 36 24 -12 page_cache_pipe_buf_release 16 - -16 splice_write_null 24 4 -20 page_cache_pipe_buf_ops 20 - -20 nosteal_pipe_buf_ops 20 - -20 default_pipe_buf_ops 20 - -20 generic_splice_sendpage 24 - -24 splice_shrink_spd 27 - -27 direct_splice_actor 47 - -47 default_file_splice_write 49 - -49 wakeup_pipe_writers 54 - -54 write_pipe_buf71 - -71 page_cache_pipe_buf_confirm 80 - -80 splice_grow_spd 87 - -87 splice_from_pipe 93 - -93 splice_from_pipe_next106 --106 pipe_to_sendpage 109 --109 page_cache_pipe_buf_steal114 --114 generic_file_splice_read 131 8-123 do_splice_direct 148 --148 __splice_from_pipe 246 --246 splice_direct_to_actor 416 --416 splice_to_pipe 417 --417 default_file_splice_read 688 --688 iter_file_splice_write 702 4-698 __generic_file_splice_read 1109 - -1109 The bloat score for the entire CONFIG_SYSCALL_SPLICE patch-set is: add/remove: 0/41 grow/shrink: 5/7 up/down: 23/-8422 (-8399) function old new delta sys_pwritev 115 122 +7 sys_preadv 115 122 +7 fdput_pos 29 36 +7 sys_pwrite64 115 116 +1 sys_pread64 115 116 +1 pipe_to_null 4 - -4 generic_pipe_buf_nosteal 6 - -6 spd_release_page 10 - -10 fdput 11 - -11 PageUptodate 22 11 -11 lock_page 36 24 -12 signal_pending39 26 -13 fdget 56 42 -14 page_cache_pipe_buf_release 16 - -16 user_page_pipe_buf_ops20 - -20 splice_write_null 24 4 -20 page_cache_pipe_buf_ops 20 - -20 nosteal_pipe_buf_ops 20 - -20 default_pipe_buf_ops 20 - -20 generic_splice_sendpage 24 - -24 user_page_pipe_buf_steal 25 - -25 splice_shrink_spd 27 - -27 pipe_to_user 43 - -43 direct_splice_actor 47 - -47 default_file_splice_write 49 - -49 wakeup_pipe_writers 54 - -54 wakeup_pipe_readers 54 - -54 write_pipe_buf71 - -71 page_cache_pipe_buf_confirm 80 - -80 splice_grow_spd 87 - -87 do_splice_to 87 - -87 ipipe_prep.part 92 - -92 splice_from_pipe 93 - -93 splice_from_pipe_next107 --107 pipe_to_sendpage