• Ingo Molnar's avatar
    ratelimit: Use per ratelimit context locking · 979f693d
    Ingo Molnar authored
    I'd like to use printk_ratelimit() in atomic context, but that's
    not possible right now due to the spinlock usage this commit
    introduced more than a year ago:
    
      717115e1: printk ratelimiting rewrite
    
    As a first step push the lock into the ratelimit state structure.
    This allows us to deal with locking failures to be considered as an
    event related to that state being too busy.
    
    Also clean up the code a bit (without changing functionality):
    
     - tidy up the definitions
    
     - clean up the code flow
    
    This also shrinks the code a tiny bit:
    
       text	   data	    bss	    dec	    hex	filename
        264	      0	      4	    268	    10c	ratelimit.o.before
        255	      0	      0	    255	     ff	ratelimit.o.after
    
    ( Whole-kernel data size got a bit larger, because we have
      two ratelimit-state data structures right now. )
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: David S. Miller <davem@davemloft.net>
    LKML-Reference: <new-submission>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    979f693d
ratelimit.c 1.17 KB