diff options
author | Arjan van de Ven <arjan@infradead.org> | 2006-03-25 10:30:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 12:10:56 -0500 |
commit | 4bdc3b7f1b730c07f5a6ccca77ee68e044036ffc (patch) | |
tree | 58e79b7865d4d4660711f7f8a2a3cc2ec91e65ec | |
parent | 9b2a13b963dece8d45e07692b7872ae5a075ca2a (diff) |
[PATCH] x86_64: Basic reorder infrastructure
This patch puts the infrastructure in place to allow for a reordering of
functions based inside the vmlinux. The general idea is that it is possible
to put all "common" functions into the first 2Mb of the code, so that they
are covered by one TLB entry. This as opposed to the current situation where
a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries.
This is done by enabling the -ffunction-sections flag in gcc, which puts
each function in its own ELF section, so that the linker can then order them
in a way defined by the linker script.
As per previous discussions, Linus said he wanted a "static" list for this,
eg a list provided by the kernel tarbal, so that most people have the same
ordering at least. A script is provided to create this list based on
readprofile(1) output. The included list is provisional, and entirely biased
on my own testbox and me running a few kernel compiles and some other
things.
I think that to get to a better list we need to invite people to submit
their own profiles, and somehow add those all up and base the final list on
that. I'm willing to do that effort if this is ends up being the prefered
approach. Such an effort probably needs to be repeated like once a year or
so to adopt to the changing nature of the kernel.
Made it a CONFIG with default n because it increases link times
dramatically.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/x86_64/Kconfig | 8 | ||||
-rw-r--r-- | arch/x86_64/Makefile | 1 | ||||
-rw-r--r-- | arch/x86_64/kernel/functionlist | 1286 | ||||
-rw-r--r-- | arch/x86_64/kernel/vmlinux.lds.S | 5 | ||||
-rw-r--r-- | scripts/profile2linkerlist.pl | 21 |
5 files changed, 1321 insertions, 0 deletions
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 9fad9df86626..24a3016c079d 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -464,6 +464,14 @@ config SECCOMP | |||
464 | 464 | ||
465 | source kernel/Kconfig.hz | 465 | source kernel/Kconfig.hz |
466 | 466 | ||
467 | config REORDER | ||
468 | bool "Function reordering" | ||
469 | default n | ||
470 | help | ||
471 | This option enables the toolchain to reorder functions for a more | ||
472 | optimal TLB usage. If you have pretty much any version of binutils, | ||
473 | this can increase your kernel build time by roughly one minute. | ||
474 | |||
467 | endmenu | 475 | endmenu |
468 | 476 | ||
469 | # | 477 | # |
diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefile index f5e48ba9bec7..0fbc0283609c 100644 --- a/arch/x86_64/Makefile +++ b/arch/x86_64/Makefile | |||
@@ -36,6 +36,7 @@ CFLAGS += -m64 | |||
36 | CFLAGS += -mno-red-zone | 36 | CFLAGS += -mno-red-zone |
37 | CFLAGS += -mcmodel=kernel | 37 | CFLAGS += -mcmodel=kernel |
38 | CFLAGS += -pipe | 38 | CFLAGS += -pipe |
39 | cflags-$(CONFIG_REORDER) += -ffunction-sections | ||
39 | # this makes reading assembly source easier, but produces worse code | 40 | # this makes reading assembly source easier, but produces worse code |
40 | # actually it makes the kernel smaller too. | 41 | # actually it makes the kernel smaller too. |
41 | CFLAGS += -fno-reorder-blocks | 42 | CFLAGS += -fno-reorder-blocks |
diff --git a/arch/x86_64/kernel/functionlist b/arch/x86_64/kernel/functionlist new file mode 100644 index 000000000000..2bcebdc3eedb --- /dev/null +++ b/arch/x86_64/kernel/functionlist | |||
@@ -0,0 +1,1286 @@ | |||
1 | *(.text.flush_thread) | ||
2 | *(.text.check_poison_obj) | ||
3 | *(.text.copy_page) | ||
4 | *(.text.__set_personality) | ||
5 | *(.text.gart_map_sg) | ||
6 | *(.text.kmem_cache_free) | ||
7 | *(.text.find_get_page) | ||
8 | *(.text._raw_spin_lock) | ||
9 | *(.text.ide_outb) | ||
10 | *(.text.unmap_vmas) | ||
11 | *(.text.copy_page_range) | ||
12 | *(.text.kprobe_handler) | ||
13 | *(.text.__handle_mm_fault) | ||
14 | *(.text.__d_lookup) | ||
15 | *(.text.copy_user_generic) | ||
16 | *(.text.__link_path_walk) | ||
17 | *(.text.get_page_from_freelist) | ||
18 | *(.text.kmem_cache_alloc) | ||
19 | *(.text.drive_cmd_intr) | ||
20 | *(.text.ia32_setup_sigcontext) | ||
21 | *(.text.huge_pte_offset) | ||
22 | *(.text.do_page_fault) | ||
23 | *(.text.page_remove_rmap) | ||
24 | *(.text.release_pages) | ||
25 | *(.text.ide_end_request) | ||
26 | *(.text.__mutex_lock_slowpath) | ||
27 | *(.text.__find_get_block) | ||
28 | *(.text.kfree) | ||
29 | *(.text.vfs_read) | ||
30 | *(.text._raw_spin_unlock) | ||
31 | *(.text.free_hot_cold_page) | ||
32 | *(.text.fget_light) | ||
33 | *(.text.schedule) | ||
34 | *(.text.memcmp) | ||
35 | *(.text.touch_atime) | ||
36 | *(.text.__might_sleep) | ||
37 | *(.text.__down_read_trylock) | ||
38 | *(.text.arch_pick_mmap_layout) | ||
39 | *(.text.find_vma) | ||
40 | *(.text.__make_request) | ||
41 | *(.text.do_generic_mapping_read) | ||
42 | *(.text.mutex_lock_interruptible) | ||
43 | *(.text.__generic_file_aio_read) | ||
44 | *(.text._atomic_dec_and_lock) | ||
45 | *(.text.__wake_up_bit) | ||
46 | *(.text.add_to_page_cache) | ||
47 | *(.text.cache_alloc_debugcheck_after) | ||
48 | *(.text.vm_normal_page) | ||
49 | *(.text.mutex_debug_check_no_locks_freed) | ||
50 | *(.text.net_rx_action) | ||
51 | *(.text.__find_first_zero_bit) | ||
52 | *(.text.put_page) | ||
53 | *(.text._raw_read_lock) | ||
54 | *(.text.__delay) | ||
55 | *(.text.dnotify_parent) | ||
56 | *(.text.do_path_lookup) | ||
57 | *(.text.do_sync_read) | ||
58 | *(.text.do_lookup) | ||
59 | *(.text.bit_waitqueue) | ||
60 | *(.text.file_read_actor) | ||
61 | *(.text.strncpy_from_user) | ||
62 | *(.text.__pagevec_lru_add_active) | ||
63 | *(.text.fget) | ||
64 | *(.text.dput) | ||
65 | *(.text.__strnlen_user) | ||
66 | *(.text.inotify_inode_queue_event) | ||
67 | *(.text.rw_verify_area) | ||
68 | *(.text.ide_intr) | ||
69 | *(.text.inotify_dentry_parent_queue_event) | ||
70 | *(.text.permission) | ||
71 | *(.text.memscan) | ||
72 | *(.text.hpet_rtc_interrupt) | ||
73 | *(.text.do_mmap_pgoff) | ||
74 | *(.text.current_fs_time) | ||
75 | *(.text.vfs_getattr) | ||
76 | *(.text.kmem_flagcheck) | ||
77 | *(.text.mark_page_accessed) | ||
78 | *(.text.free_pages_and_swap_cache) | ||
79 | *(.text.generic_fillattr) | ||
80 | *(.text.__block_prepare_write) | ||
81 | *(.text.__set_page_dirty_nobuffers) | ||
82 | *(.text.link_path_walk) | ||
83 | *(.text.find_get_pages_tag) | ||
84 | *(.text.ide_do_request) | ||
85 | *(.text.__alloc_pages) | ||
86 | *(.text.generic_permission) | ||
87 | *(.text.mod_page_state_offset) | ||
88 | *(.text.free_pgd_range) | ||
89 | *(.text.generic_file_buffered_write) | ||
90 | *(.text.number) | ||
91 | *(.text.ide_do_rw_disk) | ||
92 | *(.text.__brelse) | ||
93 | *(.text.__mod_page_state_offset) | ||
94 | *(.text.rotate_reclaimable_page) | ||
95 | *(.text.find_vma_prepare) | ||
96 | *(.text.find_vma_prev) | ||
97 | *(.text.lru_cache_add_active) | ||
98 | *(.text.__kmalloc_track_caller) | ||
99 | *(.text.smp_invalidate_interrupt) | ||
100 | *(.text.handle_IRQ_event) | ||
101 | *(.text.__find_get_block_slow) | ||
102 | *(.text.do_wp_page) | ||
103 | *(.text.do_select) | ||
104 | *(.text.set_user_nice) | ||
105 | *(.text.sys_read) | ||
106 | *(.text.do_munmap) | ||
107 | *(.text.csum_partial) | ||
108 | *(.text.__do_softirq) | ||
109 | *(.text.may_open) | ||
110 | *(.text.getname) | ||
111 | *(.text.get_empty_filp) | ||
112 | *(.text.__fput) | ||
113 | *(.text.remove_mapping) | ||
114 | *(.text.filp_ctor) | ||
115 | *(.text.poison_obj) | ||
116 | *(.text.unmap_region) | ||
117 | *(.text.test_set_page_writeback) | ||
118 | *(.text.__do_page_cache_readahead) | ||
119 | *(.text.sock_def_readable) | ||
120 | *(.text.ide_outl) | ||
121 | *(.text.shrink_zone) | ||
122 | *(.text.rb_insert_color) | ||
123 | *(.text.get_request) | ||
124 | *(.text.sys_pread64) | ||
125 | *(.text.spin_bug) | ||
126 | *(.text.ide_outsl) | ||
127 | *(.text.mask_and_ack_8259A) | ||
128 | *(.text.filemap_nopage) | ||
129 | *(.text.page_add_file_rmap) | ||
130 | *(.text.find_lock_page) | ||
131 | *(.text.tcp_poll) | ||
132 | *(.text.__mark_inode_dirty) | ||
133 | *(.text.file_ra_state_init) | ||
134 | *(.text.generic_file_llseek) | ||
135 | *(.text.__pagevec_lru_add) | ||
136 | *(.text.page_cache_readahead) | ||
137 | *(.text.n_tty_receive_buf) | ||
138 | *(.text.zonelist_policy) | ||
139 | *(.text.vma_adjust) | ||
140 | *(.text.test_clear_page_dirty) | ||
141 | *(.text.sync_buffer) | ||
142 | *(.text.do_exit) | ||
143 | *(.text.__bitmap_weight) | ||
144 | *(.text.alloc_pages_current) | ||
145 | *(.text.get_unused_fd) | ||
146 | *(.text.zone_watermark_ok) | ||
147 | *(.text.cpuset_update_task_memory_state) | ||
148 | *(.text.__bitmap_empty) | ||
149 | *(.text.sys_munmap) | ||
150 | *(.text.__inode_dir_notify) | ||
151 | *(.text.__generic_file_aio_write_nolock) | ||
152 | *(.text.__pte_alloc) | ||
153 | *(.text.sys_select) | ||
154 | *(.text.vm_acct_memory) | ||
155 | *(.text.vfs_write) | ||
156 | *(.text.__lru_add_drain) | ||
157 | *(.text.prio_tree_insert) | ||
158 | *(.text.generic_file_aio_read) | ||
159 | *(.text.vma_merge) | ||
160 | *(.text.block_write_full_page) | ||
161 | *(.text.__page_set_anon_rmap) | ||
162 | *(.text.apic_timer_interrupt) | ||
163 | *(.text.release_console_sem) | ||
164 | *(.text.sys_write) | ||
165 | *(.text.sys_brk) | ||
166 | *(.text.dup_mm) | ||
167 | *(.text.read_current_timer) | ||
168 | *(.text.ll_rw_block) | ||
169 | *(.text.blk_rq_map_sg) | ||
170 | *(.text.dbg_userword) | ||
171 | *(.text.__block_commit_write) | ||
172 | *(.text.cache_grow) | ||
173 | *(.text.copy_strings) | ||
174 | *(.text.release_task) | ||
175 | *(.text.do_sync_write) | ||
176 | *(.text.unlock_page) | ||
177 | *(.text.load_elf_binary) | ||
178 | *(.text.__follow_mount) | ||
179 | *(.text.__getblk) | ||
180 | *(.text.do_sys_open) | ||
181 | *(.text.current_kernel_time) | ||
182 | *(.text.call_rcu) | ||
183 | *(.text.write_chan) | ||
184 | *(.text.vsnprintf) | ||
185 | *(.text.dummy_inode_setsecurity) | ||
186 | *(.text.submit_bh) | ||
187 | *(.text.poll_freewait) | ||
188 | *(.text.bio_alloc_bioset) | ||
189 | *(.text.skb_clone) | ||
190 | *(.text.page_waitqueue) | ||
191 | *(.text.__mutex_lock_interruptible_slowpath) | ||
192 | *(.text.get_index) | ||
193 | *(.text.csum_partial_copy_generic) | ||
194 | *(.text.bad_range) | ||
195 | *(.text.remove_vma) | ||
196 | *(.text.cp_new_stat) | ||
197 | *(.text.alloc_arraycache) | ||
198 | *(.text.test_clear_page_writeback) | ||
199 | *(.text.strsep) | ||
200 | *(.text.open_namei) | ||
201 | *(.text._raw_read_unlock) | ||
202 | *(.text.get_vma_policy) | ||
203 | *(.text.__down_write_trylock) | ||
204 | *(.text.find_get_pages) | ||
205 | *(.text.tcp_rcv_established) | ||
206 | *(.text.generic_make_request) | ||
207 | *(.text.__block_write_full_page) | ||
208 | *(.text.cfq_set_request) | ||
209 | *(.text.sys_inotify_init) | ||
210 | *(.text.split_vma) | ||
211 | *(.text.__mod_timer) | ||
212 | *(.text.get_options) | ||
213 | *(.text.vma_link) | ||
214 | *(.text.mpage_writepages) | ||
215 | *(.text.truncate_complete_page) | ||
216 | *(.text.tcp_recvmsg) | ||
217 | *(.text.sigprocmask) | ||
218 | *(.text.filemap_populate) | ||
219 | *(.text.sys_close) | ||
220 | *(.text.inotify_dev_queue_event) | ||
221 | *(.text.do_task_stat) | ||
222 | *(.text.__dentry_open) | ||
223 | *(.text.unlink_file_vma) | ||
224 | *(.text.__pollwait) | ||
225 | *(.text.packet_rcv_spkt) | ||
226 | *(.text.drop_buffers) | ||
227 | *(.text.free_pgtables) | ||
228 | *(.text.generic_file_direct_write) | ||
229 | *(.text.copy_process) | ||
230 | *(.text.netif_receive_skb) | ||
231 | *(.text.dnotify_flush) | ||
232 | *(.text.print_bad_pte) | ||
233 | *(.text.anon_vma_unlink) | ||
234 | *(.text.sys_mprotect) | ||
235 | *(.text.sync_sb_inodes) | ||
236 | *(.text.find_inode_fast) | ||
237 | *(.text.dummy_inode_readlink) | ||
238 | *(.text.putname) | ||
239 | *(.text.init_smp_flush) | ||
240 | *(.text.dbg_redzone2) | ||
241 | *(.text.sk_run_filter) | ||
242 | *(.text.may_expand_vm) | ||
243 | *(.text.generic_file_aio_write) | ||
244 | *(.text.find_next_zero_bit) | ||
245 | *(.text.file_kill) | ||
246 | *(.text.audit_getname) | ||
247 | *(.text.arch_unmap_area_topdown) | ||
248 | *(.text.alloc_page_vma) | ||
249 | *(.text.tcp_transmit_skb) | ||
250 | *(.text.rb_next) | ||
251 | *(.text.dbg_redzone1) | ||
252 | *(.text.generic_file_mmap) | ||
253 | *(.text.vfs_fstat) | ||
254 | *(.text.sys_time) | ||
255 | *(.text.page_lock_anon_vma) | ||
256 | *(.text.get_unmapped_area) | ||
257 | *(.text.remote_llseek) | ||
258 | *(.text.__up_read) | ||
259 | *(.text.fd_install) | ||
260 | *(.text.eventpoll_init_file) | ||
261 | *(.text.dma_alloc_coherent) | ||
262 | *(.text.create_empty_buffers) | ||
263 | *(.text.__mutex_unlock_slowpath) | ||
264 | *(.text.dup_fd) | ||
265 | *(.text.d_alloc) | ||
266 | *(.text.tty_ldisc_try) | ||
267 | *(.text.sys_stime) | ||
268 | *(.text.__rb_rotate_right) | ||
269 | *(.text.d_validate) | ||
270 | *(.text.rb_erase) | ||
271 | *(.text.path_release) | ||
272 | *(.text.memmove) | ||
273 | *(.text.invalidate_complete_page) | ||
274 | *(.text.clear_inode) | ||
275 | *(.text.cache_estimate) | ||
276 | *(.text.alloc_buffer_head) | ||
277 | *(.text.smp_call_function_interrupt) | ||
278 | *(.text.flush_tlb_others) | ||
279 | *(.text.file_move) | ||
280 | *(.text.balance_dirty_pages_ratelimited) | ||
281 | *(.text.vma_prio_tree_add) | ||
282 | *(.text.timespec_trunc) | ||
283 | *(.text.mempool_alloc) | ||
284 | *(.text.iget_locked) | ||
285 | *(.text.d_alloc_root) | ||
286 | *(.text.cpuset_populate_dir) | ||
287 | *(.text.anon_vma_prepare) | ||
288 | *(.text.sys_newstat) | ||
289 | *(.text.alloc_page_interleave) | ||
290 | *(.text.__path_lookup_intent_open) | ||
291 | *(.text.__pagevec_free) | ||
292 | *(.text.inode_init_once) | ||
293 | *(.text.free_vfsmnt) | ||
294 | *(.text.__user_walk_fd) | ||
295 | *(.text.cfq_idle_slice_timer) | ||
296 | *(.text.sys_mmap) | ||
297 | *(.text.sys_llseek) | ||
298 | *(.text.prio_tree_remove) | ||
299 | *(.text.filp_close) | ||
300 | *(.text.file_permission) | ||
301 | *(.text.vma_prio_tree_remove) | ||
302 | *(.text.tcp_ack) | ||
303 | *(.text.nameidata_to_filp) | ||
304 | *(.text.sys_lseek) | ||
305 | *(.text.percpu_counter_mod) | ||
306 | *(.text.igrab) | ||
307 | *(.text.__bread) | ||
308 | *(.text.alloc_inode) | ||
309 | *(.text.filldir) | ||
310 | *(.text.__rb_rotate_left) | ||
311 | *(.text.irq_affinity_write_proc) | ||
312 | *(.text.init_request_from_bio) | ||
313 | *(.text.find_or_create_page) | ||
314 | *(.text.tty_poll) | ||
315 | *(.text.tcp_sendmsg) | ||
316 | *(.text.ide_wait_stat) | ||
317 | *(.text.free_buffer_head) | ||
318 | *(.text.flush_signal_handlers) | ||
319 | *(.text.tcp_v4_rcv) | ||
320 | *(.text.nr_blockdev_pages) | ||
321 | *(.text.locks_remove_flock) | ||
322 | *(.text.__iowrite32_copy) | ||
323 | *(.text.do_filp_open) | ||
324 | *(.text.try_to_release_page) | ||
325 | *(.text.page_add_new_anon_rmap) | ||
326 | *(.text.kmem_cache_size) | ||
327 | *(.text.eth_type_trans) | ||
328 | *(.text.try_to_free_buffers) | ||
329 | *(.text.schedule_tail) | ||
330 | *(.text.proc_lookup) | ||
331 | *(.text.no_llseek) | ||
332 | *(.text.kfree_skbmem) | ||
333 | *(.text.do_wait) | ||
334 | *(.text.do_mpage_readpage) | ||
335 | *(.text.vfs_stat_fd) | ||
336 | *(.text.tty_write) | ||
337 | *(.text.705) | ||
338 | *(.text.sync_page) | ||
339 | *(.text.__remove_shared_vm_struct) | ||
340 | *(.text.__kfree_skb) | ||
341 | *(.text.sock_poll) | ||
342 | *(.text.get_request_wait) | ||
343 | *(.text.do_sigaction) | ||
344 | *(.text.do_brk) | ||
345 | *(.text.tcp_event_data_recv) | ||
346 | *(.text.read_chan) | ||
347 | *(.text.pipe_writev) | ||
348 | *(.text.__emul_lookup_dentry) | ||
349 | *(.text.rtc_get_rtc_time) | ||
350 | *(.text.print_objinfo) | ||
351 | *(.text.file_update_time) | ||
352 | *(.text.do_signal) | ||
353 | *(.text.disable_8259A_irq) | ||
354 | *(.text.blk_queue_bounce) | ||
355 | *(.text.__anon_vma_link) | ||
356 | *(.text.__vma_link) | ||
357 | *(.text.vfs_rename) | ||
358 | *(.text.sys_newlstat) | ||
359 | *(.text.sys_newfstat) | ||
360 | *(.text.sys_mknod) | ||
361 | *(.text.__show_regs) | ||
362 | *(.text.iput) | ||
363 | *(.text.get_signal_to_deliver) | ||
364 | *(.text.flush_tlb_page) | ||
365 | *(.text.debug_mutex_wake_waiter) | ||
366 | *(.text.copy_thread) | ||
367 | *(.text.clear_page_dirty_for_io) | ||
368 | *(.text.buffer_io_error) | ||
369 | *(.text.vfs_permission) | ||
370 | *(.text.truncate_inode_pages_range) | ||
371 | *(.text.sys_recvfrom) | ||
372 | *(.text.remove_suid) | ||
373 | *(.text.mark_buffer_dirty) | ||
374 | *(.text.local_bh_enable) | ||
375 | *(.text.get_zeroed_page) | ||
376 | *(.text.get_vmalloc_info) | ||
377 | *(.text.flush_old_exec) | ||
378 | *(.text.dummy_inode_permission) | ||
379 | *(.text.__bio_add_page) | ||
380 | *(.text.prio_tree_replace) | ||
381 | *(.text.notify_change) | ||
382 | *(.text.mntput_no_expire) | ||
383 | *(.text.fput) | ||
384 | *(.text.__end_that_request_first) | ||
385 | *(.text.wake_up_bit) | ||
386 | *(.text.unuse_mm) | ||
387 | *(.text.skb_release_data) | ||
388 | *(.text.shrink_icache_memory) | ||
389 | *(.text.sched_balance_self) | ||
390 | *(.text.__pmd_alloc) | ||
391 | *(.text.pipe_poll) | ||
392 | *(.text.normal_poll) | ||
393 | *(.text.__free_pages) | ||
394 | *(.text.follow_mount) | ||
395 | *(.text.cdrom_start_packet_command) | ||
396 | *(.text.blk_recount_segments) | ||
397 | *(.text.bio_put) | ||
398 | *(.text.__alloc_skb) | ||
399 | *(.text.__wake_up) | ||
400 | *(.text.vm_stat_account) | ||
401 | *(.text.sys_fcntl) | ||
402 | *(.text.sys_fadvise64) | ||
403 | *(.text._raw_write_unlock) | ||
404 | *(.text.__pud_alloc) | ||
405 | *(.text.alloc_page_buffers) | ||
406 | *(.text.vfs_llseek) | ||
407 | *(.text.sockfd_lookup) | ||
408 | *(.text._raw_write_lock) | ||
409 | *(.text.put_compound_page) | ||
410 | *(.text.prune_dcache) | ||
411 | *(.text.pipe_readv) | ||
412 | *(.text.mempool_free) | ||
413 | *(.text.make_ahead_window) | ||
414 | *(.text.lru_add_drain) | ||
415 | *(.text.constant_test_bit) | ||
416 | *(.text.__clear_user) | ||
417 | *(.text.arch_unmap_area) | ||
418 | *(.text.anon_vma_link) | ||
419 | *(.text.sys_chroot) | ||
420 | *(.text.setup_arg_pages) | ||
421 | *(.text.radix_tree_preload) | ||
422 | *(.text.init_rwsem) | ||
423 | *(.text.generic_osync_inode) | ||
424 | *(.text.generic_delete_inode) | ||
425 | *(.text.do_sys_poll) | ||
426 | *(.text.dev_queue_xmit) | ||
427 | *(.text.default_llseek) | ||
428 | *(.text.__writeback_single_inode) | ||
429 | *(.text.vfs_ioctl) | ||
430 | *(.text.__up_write) | ||
431 | *(.text.unix_poll) | ||
432 | *(.text.sys_rt_sigprocmask) | ||
433 | *(.text.sock_recvmsg) | ||
434 | *(.text.recalc_bh_state) | ||
435 | *(.text.__put_unused_fd) | ||
436 | *(.text.process_backlog) | ||
437 | *(.text.locks_remove_posix) | ||
438 | *(.text.lease_modify) | ||
439 | *(.text.expand_files) | ||
440 | *(.text.end_buffer_read_nobh) | ||
441 | *(.text.d_splice_alias) | ||
442 | *(.text.debug_mutex_init_waiter) | ||
443 | *(.text.copy_from_user) | ||
444 | *(.text.cap_vm_enough_memory) | ||
445 | *(.text.show_vfsmnt) | ||
446 | *(.text.release_sock) | ||
447 | *(.text.pfifo_fast_enqueue) | ||
448 | *(.text.half_md4_transform) | ||
449 | *(.text.fs_may_remount_ro) | ||
450 | *(.text.do_fork) | ||
451 | *(.text.copy_hugetlb_page_range) | ||
452 | *(.text.cache_free_debugcheck) | ||
453 | *(.text.__tcp_select_window) | ||
454 | *(.text.task_handoff_register) | ||
455 | *(.text.sys_open) | ||
456 | *(.text.strlcpy) | ||
457 | *(.text.skb_copy_datagram_iovec) | ||
458 | *(.text.set_up_list3s) | ||
459 | *(.text.release_open_intent) | ||
460 | *(.text.qdisc_restart) | ||
461 | *(.text.n_tty_chars_in_buffer) | ||
462 | *(.text.inode_change_ok) | ||
463 | *(.text.__downgrade_write) | ||
464 | *(.text.debug_mutex_unlock) | ||
465 | *(.text.add_timer_randomness) | ||
466 | *(.text.sock_common_recvmsg) | ||
467 | *(.text.set_bh_page) | ||
468 | *(.text.printk_lock) | ||
469 | *(.text.path_release_on_umount) | ||
470 | *(.text.ip_output) | ||
471 | *(.text.ide_build_dmatable) | ||
472 | *(.text.__get_user_8) | ||
473 | *(.text.end_buffer_read_sync) | ||
474 | *(.text.__d_path) | ||
475 | *(.text.d_move) | ||
476 | *(.text.del_timer) | ||
477 | *(.text.constant_test_bit) | ||
478 | *(.text.blockable_page_cache_readahead) | ||
479 | *(.text.tty_read) | ||
480 | *(.text.sys_readlink) | ||
481 | *(.text.sys_faccessat) | ||
482 | *(.text.read_swap_cache_async) | ||
483 | *(.text.pty_write_room) | ||
484 | *(.text.page_address_in_vma) | ||
485 | *(.text.kthread) | ||
486 | *(.text.cfq_exit_io_context) | ||
487 | *(.text.__tcp_push_pending_frames) | ||
488 | *(.text.sys_pipe) | ||
489 | *(.text.submit_bio) | ||
490 | *(.text.pid_revalidate) | ||
491 | *(.text.page_referenced_file) | ||
492 | *(.text.lock_sock) | ||
493 | *(.text.get_page_state_node) | ||
494 | *(.text.generic_block_bmap) | ||
495 | *(.text.do_setitimer) | ||
496 | *(.text.dev_queue_xmit_nit) | ||
497 | *(.text.copy_from_read_buf) | ||
498 | *(.text.__const_udelay) | ||
499 | *(.text.console_conditional_schedule) | ||
500 | *(.text.wake_up_new_task) | ||
501 | *(.text.wait_for_completion_interruptible) | ||
502 | *(.text.tcp_rcv_rtt_update) | ||
503 | *(.text.sys_mlockall) | ||
504 | *(.text.set_fs_altroot) | ||
505 | *(.text.schedule_timeout) | ||
506 | *(.text.nr_free_pagecache_pages) | ||
507 | *(.text.nf_iterate) | ||
508 | *(.text.mapping_tagged) | ||
509 | *(.text.ip_queue_xmit) | ||
510 | *(.text.ip_local_deliver) | ||
511 | *(.text.follow_page) | ||
512 | *(.text.elf_map) | ||
513 | *(.text.dummy_file_permission) | ||
514 | *(.text.dispose_list) | ||
515 | *(.text.dentry_open) | ||
516 | *(.text.dentry_iput) | ||
517 | *(.text.bio_alloc) | ||
518 | *(.text.alloc_skb_from_cache) | ||
519 | *(.text.wait_on_page_bit) | ||
520 | *(.text.vfs_readdir) | ||
521 | *(.text.vfs_lstat) | ||
522 | *(.text.seq_escape) | ||
523 | *(.text.__posix_lock_file) | ||
524 | *(.text.mm_release) | ||
525 | *(.text.kref_put) | ||
526 | *(.text.ip_rcv) | ||
527 | *(.text.__iget) | ||
528 | *(.text.free_pages) | ||
529 | *(.text.find_mergeable_anon_vma) | ||
530 | *(.text.find_extend_vma) | ||
531 | *(.text.dummy_inode_listsecurity) | ||
532 | *(.text.bio_add_page) | ||
533 | *(.text.__vm_enough_memory) | ||
534 | *(.text.vfs_stat) | ||
535 | *(.text.tty_paranoia_check) | ||
536 | *(.text.tcp_read_sock) | ||
537 | *(.text.tcp_data_queue) | ||
538 | *(.text.sys_uname) | ||
539 | *(.text.sys_renameat) | ||
540 | *(.text.__strncpy_from_user) | ||
541 | *(.text.__mutex_init) | ||
542 | *(.text.__lookup_hash) | ||
543 | *(.text.kref_get) | ||
544 | *(.text.ip_route_input) | ||
545 | *(.text.__insert_inode_hash) | ||
546 | *(.text.do_sock_write) | ||
547 | *(.text.blk_done_softirq) | ||
548 | *(.text.__wake_up_sync) | ||
549 | *(.text.__vma_link_rb) | ||
550 | *(.text.tty_ioctl) | ||
551 | *(.text.tracesys) | ||
552 | *(.text.sys_getdents) | ||
553 | *(.text.sys_dup) | ||
554 | *(.text.stub_execve) | ||
555 | *(.text.sha_transform) | ||
556 | *(.text.radix_tree_tag_clear) | ||
557 | *(.text.put_unused_fd) | ||
558 | *(.text.put_files_struct) | ||
559 | *(.text.mpage_readpages) | ||
560 | *(.text.may_delete) | ||
561 | *(.text.kmem_cache_create) | ||
562 | *(.text.ip_mc_output) | ||
563 | *(.text.interleave_nodes) | ||
564 | *(.text.groups_search) | ||
565 | *(.text.generic_drop_inode) | ||
566 | *(.text.generic_commit_write) | ||
567 | *(.text.fcntl_setlk) | ||
568 | *(.text.exit_mmap) | ||
569 | *(.text.end_page_writeback) | ||
570 | *(.text.__d_rehash) | ||
571 | *(.text.debug_mutex_free_waiter) | ||
572 | *(.text.csum_ipv6_magic) | ||
573 | *(.text.count) | ||
574 | *(.text.cleanup_rbuf) | ||
575 | *(.text.check_spinlock_acquired_node) | ||
576 | *(.text.can_vma_merge_after) | ||
577 | *(.text.bio_endio) | ||
578 | *(.text.alloc_pidmap) | ||
579 | *(.text.write_ldt) | ||
580 | *(.text.vmtruncate_range) | ||
581 | *(.text.vfs_create) | ||
582 | *(.text.__user_walk) | ||
583 | *(.text.update_send_head) | ||
584 | *(.text.unmap_underlying_metadata) | ||
585 | *(.text.tty_ldisc_deref) | ||
586 | *(.text.tcp_setsockopt) | ||
587 | *(.text.tcp_send_ack) | ||
588 | *(.text.sys_pause) | ||
589 | *(.text.sys_gettimeofday) | ||
590 | *(.text.sync_dirty_buffer) | ||
591 | *(.text.strncmp) | ||
592 | *(.text.release_posix_timer) | ||
593 | *(.text.proc_file_read) | ||
594 | *(.text.prepare_to_wait) | ||
595 | *(.text.locks_mandatory_locked) | ||
596 | *(.text.interruptible_sleep_on_timeout) | ||
597 | *(.text.inode_sub_bytes) | ||
598 | *(.text.in_group_p) | ||
599 | *(.text.hrtimer_try_to_cancel) | ||
600 | *(.text.filldir64) | ||
601 | *(.text.fasync_helper) | ||
602 | *(.text.dummy_sb_pivotroot) | ||
603 | *(.text.d_lookup) | ||
604 | *(.text.d_instantiate) | ||
605 | *(.text.__d_find_alias) | ||
606 | *(.text.cpu_idle_wait) | ||
607 | *(.text.cond_resched_lock) | ||
608 | *(.text.chown_common) | ||
609 | *(.text.blk_congestion_wait) | ||
610 | *(.text.activate_page) | ||
611 | *(.text.unlock_buffer) | ||
612 | *(.text.tty_wakeup) | ||
613 | *(.text.tcp_v4_do_rcv) | ||
614 | *(.text.tcp_current_mss) | ||
615 | *(.text.sys_openat) | ||
616 | *(.text.sys_fchdir) | ||
617 | *(.text.strnlen_user) | ||
618 | *(.text.strnlen) | ||
619 | *(.text.strchr) | ||
620 | *(.text.sock_common_getsockopt) | ||
621 | *(.text.skb_checksum) | ||
622 | *(.text.remove_wait_queue) | ||
623 | *(.text.rb_replace_node) | ||
624 | *(.text.radix_tree_node_ctor) | ||
625 | *(.text.pty_chars_in_buffer) | ||
626 | *(.text.profile_hit) | ||
627 | *(.text.prio_tree_left) | ||
628 | *(.text.pgd_clear_bad) | ||
629 | *(.text.pfifo_fast_dequeue) | ||
630 | *(.text.page_referenced) | ||
631 | *(.text.open_exec) | ||
632 | *(.text.mmput) | ||
633 | *(.text.mm_init) | ||
634 | *(.text.__ide_dma_off_quietly) | ||
635 | *(.text.ide_dma_intr) | ||
636 | *(.text.hrtimer_start) | ||
637 | *(.text.get_io_context) | ||
638 | *(.text.__get_free_pages) | ||
639 | *(.text.find_first_zero_bit) | ||
640 | *(.text.file_free_rcu) | ||
641 | *(.text.dummy_socket_sendmsg) | ||
642 | *(.text.do_unlinkat) | ||
643 | *(.text.do_arch_prctl) | ||
644 | *(.text.destroy_inode) | ||
645 | *(.text.can_vma_merge_before) | ||
646 | *(.text.block_sync_page) | ||
647 | *(.text.block_prepare_write) | ||
648 | *(.text.bio_init) | ||
649 | *(.text.arch_ptrace) | ||
650 | *(.text.wake_up_inode) | ||
651 | *(.text.wait_on_retry_sync_kiocb) | ||
652 | *(.text.vma_prio_tree_next) | ||
653 | *(.text.tcp_rcv_space_adjust) | ||
654 | *(.text.__tcp_ack_snd_check) | ||
655 | *(.text.sys_utime) | ||
656 | *(.text.sys_recvmsg) | ||
657 | *(.text.sys_mremap) | ||
658 | *(.text.sys_bdflush) | ||
659 | *(.text.sleep_on) | ||
660 | *(.text.set_page_dirty_lock) | ||
661 | *(.text.seq_path) | ||
662 | *(.text.schedule_timeout_interruptible) | ||
663 | *(.text.sched_fork) | ||
664 | *(.text.rt_run_flush) | ||
665 | *(.text.profile_munmap) | ||
666 | *(.text.prepare_binprm) | ||
667 | *(.text.__pagevec_release_nonlru) | ||
668 | *(.text.m_show) | ||
669 | *(.text.lookup_mnt) | ||
670 | *(.text.__lookup_mnt) | ||
671 | *(.text.lock_timer_base) | ||
672 | *(.text.is_subdir) | ||
673 | *(.text.invalidate_bh_lru) | ||
674 | *(.text.init_buffer_head) | ||
675 | *(.text.ifind_fast) | ||
676 | *(.text.ide_dma_start) | ||
677 | *(.text.__get_page_state) | ||
678 | *(.text.flock_to_posix_lock) | ||
679 | *(.text.__find_symbol) | ||
680 | *(.text.do_futex) | ||
681 | *(.text.do_execve) | ||
682 | *(.text.dirty_writeback_centisecs_handler) | ||
683 | *(.text.dev_watchdog) | ||
684 | *(.text.can_share_swap_page) | ||
685 | *(.text.blkdev_put) | ||
686 | *(.text.bio_get_nr_vecs) | ||
687 | *(.text.xfrm_compile_policy) | ||
688 | *(.text.vma_prio_tree_insert) | ||
689 | *(.text.vfs_lstat_fd) | ||
690 | *(.text.__user_path_lookup_open) | ||
691 | *(.text.thread_return) | ||
692 | *(.text.tcp_send_delayed_ack) | ||
693 | *(.text.sock_def_error_report) | ||
694 | *(.text.shrink_slab) | ||
695 | *(.text.serial_out) | ||
696 | *(.text.seq_read) | ||
697 | *(.text.secure_ip_id) | ||
698 | *(.text.search_binary_handler) | ||
699 | *(.text.proc_pid_unhash) | ||
700 | *(.text.pagevec_lookup) | ||
701 | *(.text.new_inode) | ||
702 | *(.text.memcpy_toiovec) | ||
703 | *(.text.locks_free_lock) | ||
704 | *(.text.__lock_page) | ||
705 | *(.text.__lock_buffer) | ||
706 | *(.text.load_module) | ||
707 | *(.text.is_bad_inode) | ||
708 | *(.text.invalidate_inode_buffers) | ||
709 | *(.text.insert_vm_struct) | ||
710 | *(.text.inode_setattr) | ||
711 | *(.text.inode_add_bytes) | ||
712 | *(.text.ide_read_24) | ||
713 | *(.text.ide_get_error_location) | ||
714 | *(.text.ide_do_drive_cmd) | ||
715 | *(.text.get_locked_pte) | ||
716 | *(.text.get_filesystem_list) | ||
717 | *(.text.generic_file_open) | ||
718 | *(.text.follow_down) | ||
719 | *(.text.find_next_bit) | ||
720 | *(.text.__find_first_bit) | ||
721 | *(.text.exit_mm) | ||
722 | *(.text.exec_keys) | ||
723 | *(.text.end_buffer_write_sync) | ||
724 | *(.text.end_bio_bh_io_sync) | ||
725 | *(.text.dummy_socket_shutdown) | ||
726 | *(.text.d_rehash) | ||
727 | *(.text.d_path) | ||
728 | *(.text.do_ioctl) | ||
729 | *(.text.dget_locked) | ||
730 | *(.text.copy_thread_group_keys) | ||
731 | *(.text.cdrom_end_request) | ||
732 | *(.text.cap_bprm_apply_creds) | ||
733 | *(.text.blk_rq_bio_prep) | ||
734 | *(.text.__bitmap_intersects) | ||
735 | *(.text.bio_phys_segments) | ||
736 | *(.text.bio_free) | ||
737 | *(.text.arch_get_unmapped_area_topdown) | ||
738 | *(.text.writeback_in_progress) | ||
739 | *(.text.vfs_follow_link) | ||
740 | *(.text.tcp_rcv_state_process) | ||
741 | *(.text.tcp_check_space) | ||
742 | *(.text.sys_stat) | ||
743 | *(.text.sys_rt_sigreturn) | ||
744 | *(.text.sys_rt_sigaction) | ||
745 | *(.text.sys_remap_file_pages) | ||
746 | *(.text.sys_pwrite64) | ||
747 | *(.text.sys_fchownat) | ||
748 | *(.text.sys_fchmodat) | ||
749 | *(.text.strncat) | ||
750 | *(.text.strlcat) | ||
751 | *(.text.strcmp) | ||
752 | *(.text.steal_locks) | ||
753 | *(.text.sock_create) | ||
754 | *(.text.sk_stream_rfree) | ||
755 | *(.text.sk_stream_mem_schedule) | ||
756 | *(.text.skip_atoi) | ||
757 | *(.text.sk_alloc) | ||
758 | *(.text.show_stat) | ||
759 | *(.text.set_fs_pwd) | ||
760 | *(.text.set_binfmt) | ||
761 | *(.text.pty_unthrottle) | ||
762 | *(.text.proc_symlink) | ||
763 | *(.text.pipe_release) | ||
764 | *(.text.pageout) | ||
765 | *(.text.n_tty_write_wakeup) | ||
766 | *(.text.n_tty_ioctl) | ||
767 | *(.text.nr_free_zone_pages) | ||
768 | *(.text.migration_thread) | ||
769 | *(.text.mempool_free_slab) | ||
770 | *(.text.meminfo_read_proc) | ||
771 | *(.text.max_sane_readahead) | ||
772 | *(.text.lru_cache_add) | ||
773 | *(.text.kill_fasync) | ||
774 | *(.text.kernel_read) | ||
775 | *(.text.invalidate_mapping_pages) | ||
776 | *(.text.inode_has_buffers) | ||
777 | *(.text.init_once) | ||
778 | *(.text.inet_sendmsg) | ||
779 | *(.text.idedisk_issue_flush) | ||
780 | *(.text.generic_file_write) | ||
781 | *(.text.free_more_memory) | ||
782 | *(.text.__free_fdtable) | ||
783 | *(.text.filp_dtor) | ||
784 | *(.text.exit_sem) | ||
785 | *(.text.exit_itimers) | ||
786 | *(.text.error_interrupt) | ||
787 | *(.text.end_buffer_async_write) | ||
788 | *(.text.eligible_child) | ||
789 | *(.text.elf_map) | ||
790 | *(.text.dump_task_regs) | ||
791 | *(.text.dummy_task_setscheduler) | ||
792 | *(.text.dummy_socket_accept) | ||
793 | *(.text.dummy_file_free_security) | ||
794 | *(.text.__down_read) | ||
795 | *(.text.do_sock_read) | ||
796 | *(.text.do_sigaltstack) | ||
797 | *(.text.do_mremap) | ||
798 | *(.text.current_io_context) | ||
799 | *(.text.cpu_swap_callback) | ||
800 | *(.text.copy_vma) | ||
801 | *(.text.cap_bprm_set_security) | ||
802 | *(.text.blk_insert_request) | ||
803 | *(.text.bio_map_kern_endio) | ||
804 | *(.text.bio_hw_segments) | ||
805 | *(.text.bictcp_cong_avoid) | ||
806 | *(.text.add_interrupt_randomness) | ||
807 | *(.text.wait_for_completion) | ||
808 | *(.text.version_read_proc) | ||
809 | *(.text.unix_write_space) | ||
810 | *(.text.tty_ldisc_ref_wait) | ||
811 | *(.text.tty_ldisc_put) | ||
812 | *(.text.try_to_wake_up) | ||
813 | *(.text.tcp_v4_tw_remember_stamp) | ||
814 | *(.text.tcp_try_undo_dsack) | ||
815 | *(.text.tcp_may_send_now) | ||
816 | *(.text.sys_waitid) | ||
817 | *(.text.sys_sched_getparam) | ||
818 | *(.text.sys_getppid) | ||
819 | *(.text.sys_getcwd) | ||
820 | *(.text.sys_dup2) | ||
821 | *(.text.sys_chmod) | ||
822 | *(.text.sys_chdir) | ||
823 | *(.text.sprintf) | ||
824 | *(.text.sock_wfree) | ||
825 | *(.text.sock_aio_write) | ||
826 | *(.text.skb_drop_fraglist) | ||
827 | *(.text.skb_dequeue) | ||
828 | *(.text.set_close_on_exec) | ||
829 | *(.text.set_brk) | ||
830 | *(.text.seq_puts) | ||
831 | *(.text.SELECT_DRIVE) | ||
832 | *(.text.sched_exec) | ||
833 | *(.text.return_EIO) | ||
834 | *(.text.remove_from_page_cache) | ||
835 | *(.text.rcu_start_batch) | ||
836 | *(.text.__put_task_struct) | ||
837 | *(.text.proc_pid_readdir) | ||
838 | *(.text.proc_get_inode) | ||
839 | *(.text.prepare_to_wait_exclusive) | ||
840 | *(.text.pipe_wait) | ||
841 | *(.text.pipe_new) | ||
842 | *(.text.pdflush_operation) | ||
843 | *(.text.__pagevec_release) | ||
844 | *(.text.pagevec_lookup_tag) | ||
845 | *(.text.packet_rcv) | ||
846 | *(.text.n_tty_set_room) | ||
847 | *(.text.nr_free_pages) | ||
848 | *(.text.__net_timestamp) | ||
849 | *(.text.mpage_end_io_read) | ||
850 | *(.text.mod_timer) | ||
851 | *(.text.__memcpy) | ||
852 | *(.text.mb_cache_shrink_fn) | ||
853 | *(.text.lock_rename) | ||
854 | *(.text.kstrdup) | ||
855 | *(.text.is_ignored) | ||
856 | *(.text.int_very_careful) | ||
857 | *(.text.inotify_inode_is_dead) | ||
858 | *(.text.inotify_get_cookie) | ||
859 | *(.text.inode_get_bytes) | ||
860 | *(.text.init_timer) | ||
861 | *(.text.init_dev) | ||
862 | *(.text.inet_getname) | ||
863 | *(.text.ide_map_sg) | ||
864 | *(.text.__ide_dma_end) | ||
865 | *(.text.hrtimer_get_remaining) | ||
866 | *(.text.get_task_mm) | ||
867 | *(.text.get_random_int) | ||
868 | *(.text.free_pipe_info) | ||
869 | *(.text.filemap_write_and_wait_range) | ||
870 | *(.text.exit_thread) | ||
871 | *(.text.enter_idle) | ||
872 | *(.text.end_that_request_first) | ||
873 | *(.text.end_8259A_irq) | ||
874 | *(.text.dummy_file_alloc_security) | ||
875 | *(.text.do_group_exit) | ||
876 | *(.text.debug_mutex_init) | ||
877 | *(.text.cpuset_exit) | ||
878 | *(.text.cpu_idle) | ||
879 | *(.text.copy_semundo) | ||
880 | *(.text.copy_files) | ||
881 | *(.text.chrdev_open) | ||
882 | *(.text.cdrom_transfer_packet_command) | ||
883 | *(.text.cdrom_mode_sense) | ||
884 | *(.text.blk_phys_contig_segment) | ||
885 | *(.text.blk_get_queue) | ||
886 | *(.text.bio_split) | ||
887 | *(.text.audit_alloc) | ||
888 | *(.text.anon_pipe_buf_release) | ||
889 | *(.text.add_wait_queue_exclusive) | ||
890 | *(.text.add_wait_queue) | ||
891 | *(.text.acct_process) | ||
892 | *(.text.account) | ||
893 | *(.text.zeromap_page_range) | ||
894 | *(.text.yield) | ||
895 | *(.text.writeback_acquire) | ||
896 | *(.text.worker_thread) | ||
897 | *(.text.wait_on_page_writeback_range) | ||
898 | *(.text.__wait_on_buffer) | ||
899 | *(.text.vscnprintf) | ||
900 | *(.text.vmalloc_to_pfn) | ||
901 | *(.text.vgacon_save_screen) | ||
902 | *(.text.vfs_unlink) | ||
903 | *(.text.vfs_rmdir) | ||
904 | *(.text.unregister_md_personality) | ||
905 | *(.text.unlock_new_inode) | ||
906 | *(.text.unix_stream_sendmsg) | ||
907 | *(.text.unix_stream_recvmsg) | ||
908 | *(.text.unhash_process) | ||
909 | *(.text.udp_v4_lookup_longway) | ||
910 | *(.text.tty_ldisc_flush) | ||
911 | *(.text.tty_ldisc_enable) | ||
912 | *(.text.tty_hung_up_p) | ||
913 | *(.text.tty_buffer_free_all) | ||
914 | *(.text.tso_fragment) | ||
915 | *(.text.try_to_del_timer_sync) | ||
916 | *(.text.tcp_v4_err) | ||
917 | *(.text.tcp_unhash) | ||
918 | *(.text.tcp_seq_next) | ||
919 | *(.text.tcp_select_initial_window) | ||
920 | *(.text.tcp_sacktag_write_queue) | ||
921 | *(.text.tcp_cwnd_validate) | ||
922 | *(.text.sys_vhangup) | ||
923 | *(.text.sys_uselib) | ||
924 | *(.text.sys_symlink) | ||
925 | *(.text.sys_signal) | ||
926 | *(.text.sys_poll) | ||
927 | *(.text.sys_mount) | ||
928 | *(.text.sys_kill) | ||
929 | *(.text.sys_ioctl) | ||
930 | *(.text.sys_inotify_add_watch) | ||
931 | *(.text.sys_getuid) | ||
932 | *(.text.sys_getrlimit) | ||
933 | *(.text.sys_getitimer) | ||
934 | *(.text.sys_getgroups) | ||
935 | *(.text.sys_ftruncate) | ||
936 | *(.text.sysfs_lookup) | ||
937 | *(.text.sys_exit_group) | ||
938 | *(.text.stub_fork) | ||
939 | *(.text.sscanf) | ||
940 | *(.text.sock_map_fd) | ||
941 | *(.text.sock_get_timestamp) | ||
942 | *(.text.__sock_create) | ||
943 | *(.text.smp_call_function_single) | ||
944 | *(.text.sk_stop_timer) | ||
945 | *(.text.skb_copy_and_csum_datagram) | ||
946 | *(.text.__skb_checksum_complete) | ||
947 | *(.text.single_next) | ||
948 | *(.text.sigqueue_alloc) | ||
949 | *(.text.shrink_dcache_parent) | ||
950 | *(.text.select_idle_routine) | ||
951 | *(.text.run_workqueue) | ||
952 | *(.text.run_local_timers) | ||
953 | *(.text.remove_inode_hash) | ||
954 | *(.text.remove_dquot_ref) | ||
955 | *(.text.register_binfmt) | ||
956 | *(.text.read_cache_pages) | ||
957 | *(.text.rb_last) | ||
958 | *(.text.pty_open) | ||
959 | *(.text.proc_root_readdir) | ||
960 | *(.text.proc_pid_flush) | ||
961 | *(.text.proc_pident_lookup) | ||
962 | *(.text.proc_fill_super) | ||
963 | *(.text.proc_exe_link) | ||
964 | *(.text.posix_locks_deadlock) | ||
965 | *(.text.pipe_iov_copy_from_user) | ||
966 | *(.text.opost) | ||
967 | *(.text.nf_register_hook) | ||
968 | *(.text.netif_rx_ni) | ||
969 | *(.text.m_start) | ||
970 | *(.text.mpage_writepage) | ||
971 | *(.text.mm_alloc) | ||
972 | *(.text.memory_open) | ||
973 | *(.text.mark_buffer_async_write) | ||
974 | *(.text.lru_add_drain_all) | ||
975 | *(.text.locks_init_lock) | ||
976 | *(.text.locks_delete_lock) | ||
977 | *(.text.lock_hrtimer_base) | ||
978 | *(.text.load_script) | ||
979 | *(.text.__kill_fasync) | ||
980 | *(.text.ip_mc_sf_allow) | ||
981 | *(.text.__ioremap) | ||
982 | *(.text.int_with_check) | ||
983 | *(.text.int_sqrt) | ||
984 | *(.text.install_thread_keyring) | ||
985 | *(.text.init_page_buffers) | ||
986 | *(.text.inet_sock_destruct) | ||
987 | *(.text.idle_notifier_register) | ||
988 | *(.text.ide_execute_command) | ||
989 | *(.text.ide_end_drive_cmd) | ||
990 | *(.text.__ide_dma_host_on) | ||
991 | *(.text.hrtimer_run_queues) | ||
992 | *(.text.hpet_mask_rtc_irq_bit) | ||
993 | *(.text.__get_zone_counts) | ||
994 | *(.text.get_zone_counts) | ||
995 | *(.text.get_write_access) | ||
996 | *(.text.get_fs_struct) | ||
997 | *(.text.get_dirty_limits) | ||
998 | *(.text.generic_readlink) | ||
999 | *(.text.free_hot_page) | ||
1000 | *(.text.finish_wait) | ||
1001 | *(.text.find_inode) | ||
1002 | *(.text.find_first_bit) | ||
1003 | *(.text.__filemap_fdatawrite_range) | ||
1004 | *(.text.__filemap_copy_from_user_iovec) | ||
1005 | *(.text.exit_aio) | ||
1006 | *(.text.elv_set_request) | ||
1007 | *(.text.elv_former_request) | ||
1008 | *(.text.dup_namespace) | ||
1009 | *(.text.dupfd) | ||
1010 | *(.text.dummy_socket_getsockopt) | ||
1011 | *(.text.dummy_sb_post_mountroot) | ||
1012 | *(.text.dummy_quotactl) | ||
1013 | *(.text.dummy_inode_rename) | ||
1014 | *(.text.__do_SAK) | ||
1015 | *(.text.do_pipe) | ||
1016 | *(.text.do_fsync) | ||
1017 | *(.text.d_instantiate_unique) | ||
1018 | *(.text.d_find_alias) | ||
1019 | *(.text.deny_write_access) | ||
1020 | *(.text.dentry_unhash) | ||
1021 | *(.text.d_delete) | ||
1022 | *(.text.datagram_poll) | ||
1023 | *(.text.cpuset_fork) | ||
1024 | *(.text.cpuid_read) | ||
1025 | *(.text.copy_namespace) | ||
1026 | *(.text.cond_resched) | ||
1027 | *(.text.check_version) | ||
1028 | *(.text.__change_page_attr) | ||
1029 | *(.text.cfq_slab_kill) | ||
1030 | *(.text.cfq_completed_request) | ||
1031 | *(.text.cdrom_pc_intr) | ||
1032 | *(.text.cdrom_decode_status) | ||
1033 | *(.text.cap_capset_check) | ||
1034 | *(.text.blk_put_request) | ||
1035 | *(.text.bio_fs_destructor) | ||
1036 | *(.text.bictcp_min_cwnd) | ||
1037 | *(.text.alloc_chrdev_region) | ||
1038 | *(.text.add_element) | ||
1039 | *(.text.acct_update_integrals) | ||
1040 | *(.text.write_boundary_block) | ||
1041 | *(.text.writeback_release) | ||
1042 | *(.text.writeback_inodes) | ||
1043 | *(.text.wake_up_state) | ||
1044 | *(.text.__wake_up_locked) | ||
1045 | *(.text.wake_futex) | ||
1046 | *(.text.wait_task_inactive) | ||
1047 | *(.text.__wait_on_freeing_inode) | ||
1048 | *(.text.wait_noreap_copyout) | ||
1049 | *(.text.vmstat_start) | ||
1050 | *(.text.vgacon_do_font_op) | ||
1051 | *(.text.vfs_readv) | ||
1052 | *(.text.vfs_quota_sync) | ||
1053 | *(.text.update_queue) | ||
1054 | *(.text.unshare_files) | ||
1055 | *(.text.unmap_vm_area) | ||
1056 | *(.text.unix_socketpair) | ||
1057 | *(.text.unix_release_sock) | ||
1058 | *(.text.unix_detach_fds) | ||
1059 | *(.text.unix_create1) | ||
1060 | *(.text.unix_bind) | ||
1061 | *(.text.udp_sendmsg) | ||
1062 | *(.text.udp_rcv) | ||
1063 | *(.text.udp_queue_rcv_skb) | ||
1064 | *(.text.uart_write) | ||
1065 | *(.text.uart_startup) | ||
1066 | *(.text.uart_open) | ||
1067 | *(.text.tty_vhangup) | ||
1068 | *(.text.tty_termios_baud_rate) | ||
1069 | *(.text.tty_release) | ||
1070 | *(.text.tty_ldisc_ref) | ||
1071 | *(.text.throttle_vm_writeout) | ||
1072 | *(.text.058) | ||
1073 | *(.text.tcp_xmit_probe_skb) | ||
1074 | *(.text.tcp_v4_send_check) | ||
1075 | *(.text.tcp_v4_destroy_sock) | ||
1076 | *(.text.tcp_sync_mss) | ||
1077 | *(.text.tcp_snd_test) | ||
1078 | *(.text.tcp_slow_start) | ||
1079 | *(.text.tcp_send_fin) | ||
1080 | *(.text.tcp_rtt_estimator) | ||
1081 | *(.text.tcp_parse_options) | ||
1082 | *(.text.tcp_ioctl) | ||
1083 | *(.text.tcp_init_tso_segs) | ||
1084 | *(.text.tcp_init_cwnd) | ||
1085 | *(.text.tcp_getsockopt) | ||
1086 | *(.text.tcp_fin) | ||
1087 | *(.text.tcp_connect) | ||
1088 | *(.text.tcp_cong_avoid) | ||
1089 | *(.text.__tcp_checksum_complete_user) | ||
1090 | *(.text.task_dumpable) | ||
1091 | *(.text.sys_wait4) | ||
1092 | *(.text.sys_utimes) | ||
1093 | *(.text.sys_symlinkat) | ||
1094 | *(.text.sys_socketpair) | ||
1095 | *(.text.sys_rmdir) | ||
1096 | *(.text.sys_readahead) | ||
1097 | *(.text.sys_nanosleep) | ||
1098 | *(.text.sys_linkat) | ||
1099 | *(.text.sys_fstat) | ||
1100 | *(.text.sysfs_readdir) | ||
1101 | *(.text.sys_execve) | ||
1102 | *(.text.sysenter_tracesys) | ||
1103 | *(.text.sys_chown) | ||
1104 | *(.text.stub_clone) | ||
1105 | *(.text.strrchr) | ||
1106 | *(.text.strncpy) | ||
1107 | *(.text.stopmachine_set_state) | ||
1108 | *(.text.sock_sendmsg) | ||
1109 | *(.text.sock_release) | ||
1110 | *(.text.sock_fasync) | ||
1111 | *(.text.sock_close) | ||
1112 | *(.text.sk_stream_write_space) | ||
1113 | *(.text.sk_reset_timer) | ||
1114 | *(.text.skb_split) | ||
1115 | *(.text.skb_recv_datagram) | ||
1116 | *(.text.skb_queue_tail) | ||
1117 | *(.text.sk_attach_filter) | ||
1118 | *(.text.si_swapinfo) | ||
1119 | *(.text.simple_strtoll) | ||
1120 | *(.text.set_termios) | ||
1121 | *(.text.set_task_comm) | ||
1122 | *(.text.set_shrinker) | ||
1123 | *(.text.set_normalized_timespec) | ||
1124 | *(.text.set_brk) | ||
1125 | *(.text.serial_in) | ||
1126 | *(.text.seq_printf) | ||
1127 | *(.text.secure_dccp_sequence_number) | ||
1128 | *(.text.rwlock_bug) | ||
1129 | *(.text.rt_hash_code) | ||
1130 | *(.text.__rta_fill) | ||
1131 | *(.text.__request_resource) | ||
1132 | *(.text.relocate_new_kernel) | ||
1133 | *(.text.release_thread) | ||
1134 | *(.text.release_mem) | ||
1135 | *(.text.rb_prev) | ||
1136 | *(.text.rb_first) | ||
1137 | *(.text.random_poll) | ||
1138 | *(.text.__put_super_and_need_restart) | ||
1139 | *(.text.pty_write) | ||
1140 | *(.text.ptrace_stop) | ||
1141 | *(.text.proc_self_readlink) | ||
1142 | *(.text.proc_root_lookup) | ||
1143 | *(.text.proc_root_link) | ||
1144 | *(.text.proc_pid_make_inode) | ||
1145 | *(.text.proc_pid_attr_write) | ||
1146 | *(.text.proc_lookupfd) | ||
1147 | *(.text.proc_delete_inode) | ||
1148 | *(.text.posix_same_owner) | ||
1149 | *(.text.posix_block_lock) | ||
1150 | *(.text.poll_initwait) | ||
1151 | *(.text.pipe_write) | ||
1152 | *(.text.pipe_read_fasync) | ||
1153 | *(.text.pipe_ioctl) | ||
1154 | *(.text.pdflush) | ||
1155 | *(.text.pci_user_read_config_dword) | ||
1156 | *(.text.page_readlink) | ||
1157 | *(.text.null_lseek) | ||
1158 | *(.text.nf_hook_slow) | ||
1159 | *(.text.netlink_sock_destruct) | ||
1160 | *(.text.netlink_broadcast) | ||
1161 | *(.text.neigh_resolve_output) | ||
1162 | *(.text.name_to_int) | ||
1163 | *(.text.mwait_idle) | ||
1164 | *(.text.mutex_trylock) | ||
1165 | *(.text.mutex_debug_check_no_locks_held) | ||
1166 | *(.text.m_stop) | ||
1167 | *(.text.mpage_end_io_write) | ||
1168 | *(.text.mpage_alloc) | ||
1169 | *(.text.move_page_tables) | ||
1170 | *(.text.mounts_open) | ||
1171 | *(.text.__memset) | ||
1172 | *(.text.memcpy_fromiovec) | ||
1173 | *(.text.make_8259A_irq) | ||
1174 | *(.text.lookup_user_key_possessed) | ||
1175 | *(.text.lookup_create) | ||
1176 | *(.text.locks_insert_lock) | ||
1177 | *(.text.locks_alloc_lock) | ||
1178 | *(.text.kthread_should_stop) | ||
1179 | *(.text.kswapd) | ||
1180 | *(.text.kobject_uevent) | ||
1181 | *(.text.kobject_get_path) | ||
1182 | *(.text.kobject_get) | ||
1183 | *(.text.klist_children_put) | ||
1184 | *(.text.__ip_route_output_key) | ||
1185 | *(.text.ip_flush_pending_frames) | ||
1186 | *(.text.ip_compute_csum) | ||
1187 | *(.text.ip_append_data) | ||
1188 | *(.text.ioc_set_batching) | ||
1189 | *(.text.invalidate_inode_pages) | ||
1190 | *(.text.__invalidate_device) | ||
1191 | *(.text.install_arg_page) | ||
1192 | *(.text.in_sched_functions) | ||
1193 | *(.text.inotify_unmount_inodes) | ||
1194 | *(.text.init_once) | ||
1195 | *(.text.init_cdrom_command) | ||
1196 | *(.text.inet_stream_connect) | ||
1197 | *(.text.inet_sk_rebuild_header) | ||
1198 | *(.text.inet_csk_addr2sockaddr) | ||
1199 | *(.text.inet_create) | ||
1200 | *(.text.ifind) | ||
1201 | *(.text.ide_setup_dma) | ||
1202 | *(.text.ide_outsw) | ||
1203 | *(.text.ide_fixstring) | ||
1204 | *(.text.ide_dma_setup) | ||
1205 | *(.text.ide_cdrom_packet) | ||
1206 | *(.text.ide_cd_put) | ||
1207 | *(.text.ide_build_sglist) | ||
1208 | *(.text.i8259A_shutdown) | ||
1209 | *(.text.hung_up_tty_ioctl) | ||
1210 | *(.text.hrtimer_nanosleep) | ||
1211 | *(.text.hrtimer_init) | ||
1212 | *(.text.hrtimer_cancel) | ||
1213 | *(.text.hash_futex) | ||
1214 | *(.text.group_send_sig_info) | ||
1215 | *(.text.grab_cache_page_nowait) | ||
1216 | *(.text.get_wchan) | ||
1217 | *(.text.get_stack) | ||
1218 | *(.text.get_page_state) | ||
1219 | *(.text.getnstimeofday) | ||
1220 | *(.text.get_node) | ||
1221 | *(.text.get_kprobe) | ||
1222 | *(.text.generic_unplug_device) | ||
1223 | *(.text.free_task) | ||
1224 | *(.text.frag_show) | ||
1225 | *(.text.find_next_zero_string) | ||
1226 | *(.text.filp_open) | ||
1227 | *(.text.fillonedir) | ||
1228 | *(.text.exit_io_context) | ||
1229 | *(.text.exit_idle) | ||
1230 | *(.text.exact_lock) | ||
1231 | *(.text.eth_header) | ||
1232 | *(.text.dummy_unregister_security) | ||
1233 | *(.text.dummy_socket_post_create) | ||
1234 | *(.text.dummy_socket_listen) | ||
1235 | *(.text.dummy_quota_on) | ||
1236 | *(.text.dummy_inode_follow_link) | ||
1237 | *(.text.dummy_file_receive) | ||
1238 | *(.text.dummy_file_mprotect) | ||
1239 | *(.text.dummy_file_lock) | ||
1240 | *(.text.dummy_file_ioctl) | ||
1241 | *(.text.dummy_bprm_post_apply_creds) | ||
1242 | *(.text.do_writepages) | ||
1243 | *(.text.__down_interruptible) | ||
1244 | *(.text.do_notify_resume) | ||
1245 | *(.text.do_acct_process) | ||
1246 | *(.text.del_timer_sync) | ||
1247 | *(.text.default_rebuild_header) | ||
1248 | *(.text.d_callback) | ||
1249 | *(.text.dcache_readdir) | ||
1250 | *(.text.ctrl_dumpfamily) | ||
1251 | *(.text.cpuset_rmdir) | ||
1252 | *(.text.copy_strings_kernel) | ||
1253 | *(.text.con_write_room) | ||
1254 | *(.text.complete_all) | ||
1255 | *(.text.collect_sigign_sigcatch) | ||
1256 | *(.text.clear_user) | ||
1257 | *(.text.check_unthrottle) | ||
1258 | *(.text.cdrom_release) | ||
1259 | *(.text.cdrom_newpc_intr) | ||
1260 | *(.text.cdrom_ioctl) | ||
1261 | *(.text.cdrom_check_status) | ||
1262 | *(.text.cdev_put) | ||
1263 | *(.text.cdev_add) | ||
1264 | *(.text.cap_ptrace) | ||
1265 | *(.text.cap_bprm_secureexec) | ||
1266 | *(.text.cache_alloc_refill) | ||
1267 | *(.text.bmap) | ||
1268 | *(.text.blk_run_queue) | ||
1269 | *(.text.blk_queue_dma_alignment) | ||
1270 | *(.text.blk_ordered_req_seq) | ||
1271 | *(.text.blk_backing_dev_unplug) | ||
1272 | *(.text.__bitmap_subset) | ||
1273 | *(.text.__bitmap_and) | ||
1274 | *(.text.bio_unmap_user) | ||
1275 | *(.text.__bforget) | ||
1276 | *(.text.bd_forget) | ||
1277 | *(.text.bad_pipe_w) | ||
1278 | *(.text.bad_get_user) | ||
1279 | *(.text.audit_free) | ||
1280 | *(.text.anon_vma_ctor) | ||
1281 | *(.text.anon_pipe_buf_map) | ||
1282 | *(.text.alloc_sock_iocb) | ||
1283 | *(.text.alloc_fdset) | ||
1284 | *(.text.aio_kick_handler) | ||
1285 | *(.text.__add_entropy_words) | ||
1286 | *(.text.add_disk_randomness) | ||
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index 029be20accef..39ff0708f803 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S | |||
@@ -20,7 +20,12 @@ SECTIONS | |||
20 | phys_startup_64 = startup_64 - LOAD_OFFSET; | 20 | phys_startup_64 = startup_64 - LOAD_OFFSET; |
21 | _text = .; /* Text and read-only data */ | 21 | _text = .; /* Text and read-only data */ |
22 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | 22 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
23 | /* First the code that has to be first for bootstrapping */ | ||
23 | *(.bootstrap.text) | 24 | *(.bootstrap.text) |
25 | /* Then all the functions that are "hot" in profiles, to group them | ||
26 | onto the same hugetlb entry */ | ||
27 | #include "functionlist" | ||
28 | /* Then the rest */ | ||
24 | *(.text) | 29 | *(.text) |
25 | SCHED_TEXT | 30 | SCHED_TEXT |
26 | LOCK_TEXT | 31 | LOCK_TEXT |
diff --git a/scripts/profile2linkerlist.pl b/scripts/profile2linkerlist.pl new file mode 100644 index 000000000000..cb4260ebdb91 --- /dev/null +++ b/scripts/profile2linkerlist.pl | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/usr/bin/perl | ||
2 | |||
3 | # | ||
4 | # Takes a (sorted) output of readprofile and turns it into a list suitable for | ||
5 | # linker scripts | ||
6 | # | ||
7 | # usage: | ||
8 | # readprofile | sort -rn | perl profile2linkerlist.pl > functionlist | ||
9 | # | ||
10 | |||
11 | while (<>) { | ||
12 | my $line = $_; | ||
13 | |||
14 | $_ =~ /\W*[0-9]+\W*([a-zA-Z\_0-9]+)\W*[0-9]+/; | ||
15 | |||
16 | if ( ($line =~ /unknown/) || ($line =~ /total/)) { | ||
17 | |||
18 | } else { | ||
19 | print "*(.text.$1)\n"; | ||
20 | } | ||
21 | } | ||