Linus Torvalds
44032e6316
module: reduce stack usage for each_symbol()
...
And now that I'm looking at that call-chain (to see if it would make sense
to use some other more specific lock - doesn't look like it: all the
readers are using RCU and this is the only writer), I also give you this
trivial one-liner. It changes each_symbol() to not put that constant array
on the stack, resulting in changing
movq $C.388.31095, %rsi #, tmp85
subq $376, %rsp #,
movq %rdi, %rbx # fn, fn
leaq -208(%rbp), %rdi #, tmp84
movq %rbx, %rdx # fn,
rep movsl
xorl %esi, %esi #
leaq -208(%rbp), %rdi #, tmp87
movq %r12, %rcx # data,
call each_symbol_in_section.clone.0 #
into
xorl %esi, %esi #
subq $216, %rsp #,
movq %rdi, %rbx # fn, fn
movq $arr.31078, %rdi #,
call each_symbol_in_section.clone.0 #
which is not so much about being obviously shorter and simpler because we
don't unnecessarily copy that constant array around onto the stack, but
also about having a much smaller stack footprint (376 vs 216 bytes - see
the update of 'rsp').
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au >
2010-08-05 12:59:06 +09:30
..
2010-08-04 15:14:38 +02:00
2009-09-21 14:29:21 +02:00
2010-06-09 17:05:08 +02:00
2010-08-04 15:31:02 -07:00
2010-08-04 15:14:38 +02:00
2010-06-10 20:56:54 -04:00
2010-05-18 08:57:00 +10:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-07-20 13:28:05 -07:00
2010-03-30 22:02:32 +09:00
2010-04-05 13:19:45 -07:00
2009-12-12 13:08:14 +01:00
2010-04-02 20:12:00 +02:00
2010-05-10 23:18:47 +02:00
2010-08-04 11:47:58 -07:00
2010-05-19 11:48:18 -07:00
2010-06-01 09:22:50 -07:00
2010-06-16 18:08:13 +02:00
2010-07-29 15:16:17 -07:00
2009-09-18 09:48:52 -07:00
2010-07-19 11:54:15 +01:00
2010-03-06 11:26:46 -08:00
2010-06-04 15:21:45 -07:00
2010-05-27 09:12:47 -07:00
2010-05-30 09:00:03 -07:00
2009-12-09 14:22:14 +01:00
2010-06-30 15:43:44 -07:00
2010-04-12 12:19:18 +10:00
2010-05-26 16:15:37 +02:00
2009-11-27 06:21:57 +01:00
2010-05-04 08:39:36 +02:00
2009-11-18 16:32:12 +01:00
2010-05-20 21:04:21 -05:00
2009-12-03 11:50:11 +01:00
2010-06-29 15:29:31 -07:00
2010-02-16 15:11:08 -08:00
2010-05-27 09:12:45 -07:00
2010-05-08 18:08:30 +02:00
2010-05-21 09:37:31 -07:00
2010-03-24 16:31:21 -07:00
2010-03-30 22:02:32 +09:00
2010-05-04 05:38:16 +02:00
2010-04-06 00:15:37 +02:00
2010-05-21 09:37:30 -07:00
2010-05-20 21:04:18 -05:00
2010-08-05 12:59:06 +09:30
2009-10-11 11:20:58 -07:00
2009-12-14 23:55:32 +01:00
2010-05-19 08:18:44 +02:00
2010-02-25 10:34:26 +01:00
2009-09-24 07:20:58 -07:00
2010-03-30 22:02:32 +09:00
2010-08-04 15:23:14 -07:00
2010-05-27 09:12:53 -07:00
2010-03-12 16:04:50 -08:00
2010-06-08 18:43:00 +02:00
2010-03-30 22:02:32 +09:00
2010-05-27 09:12:51 -07:00
2010-07-19 02:00:34 +02:00
2010-05-27 09:12:46 -07:00
2010-05-27 22:38:15 +02:00
2010-05-20 21:04:27 -05:00
2010-05-27 09:12:57 -07:00
2010-05-27 09:12:44 -07:00
2010-02-10 17:47:17 -08:00
2010-05-10 11:08:34 -07:00
2010-05-10 11:08:34 -07:00
2010-05-11 16:10:47 -07:00
2010-05-18 08:27:54 -07:00
2010-05-11 16:10:47 -07:00
2010-05-10 11:08:35 -07:00
2010-05-11 16:10:47 -07:00
2010-05-10 11:08:35 -07:00
2010-05-27 09:12:48 -07:00
2010-03-30 22:02:32 +09:00
2010-05-11 12:01:10 -07:00
2009-12-14 23:55:33 +01:00
2009-12-14 23:55:33 +01:00
2010-04-15 08:54:59 +02:00
2010-03-30 22:02:32 +09:00
2009-12-14 23:55:33 +01:00
2010-05-27 09:12:47 -07:00
2010-06-23 06:50:44 -07:00
2010-03-11 18:32:53 +01:00
2010-04-23 11:02:02 +02:00
2010-04-02 20:12:05 +02:00
2010-07-02 09:52:58 -07:00
2010-08-04 11:17:10 -07:00
2009-12-01 08:20:31 -08:00
2010-03-29 09:13:30 -07:00
2010-03-29 09:14:47 -07:00
2010-05-27 09:12:48 -07:00
2010-06-04 15:21:45 -07:00
2010-03-21 19:30:13 +01:00
2009-12-14 23:55:33 +01:00
2010-03-30 22:02:32 +09:00
2010-05-31 08:37:44 +02:00
2010-03-12 15:52:32 -08:00
2010-05-27 09:12:44 -07:00
2010-05-25 08:07:05 -07:00
2009-12-03 12:14:38 -08:00
2010-06-03 14:54:39 +02:00
2010-03-30 22:02:32 +09:00
2010-05-24 11:50:38 +02:00
2010-08-03 09:48:45 -04:00
2010-05-14 09:50:34 -04:00
2010-03-06 11:26:23 -08:00
2009-09-23 18:13:10 -07:00
2010-06-16 14:55:34 -07:00
2009-12-02 10:22:59 +01:00
2010-05-10 08:48:39 +02:00
2009-11-12 02:04:55 -08:00
2010-05-27 09:12:48 -07:00