Files
linux/kernel
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-08-04 15:14:38 +02:00
2010-05-18 08:57:00 +10: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
2009-09-18 09:48:52 -07:00
2010-05-26 16:15:37 +02:00
2010-05-19 08:18:44 +02:00
2010-05-27 09:12:53 -07:00
2010-02-10 17:47:17 -08:00
2010-05-11 12:01:10 -07:00
2010-04-02 20:12:05 +02:00
2010-03-12 15:52:32 -08:00
2010-05-24 11:50:38 +02:00
2010-03-06 11:26:23 -08:00
2009-09-23 18:13:10 -07:00
2010-05-10 08:48:39 +02:00