repro02 from PSBM-130602 executed on debug kernel inside centos7
container triggers the following message:

 INFO: trying to register non-static key.
 the code is fine but needs lockdep annotation.
 turning off the locking correctness validator.
 Call Trace:
  [<ffffffff96ec9edc>] dump_stack+0x19/0x1b
  [<ffffffff96ec21fa>] register_lock_class.part.27+0x38/0x3c
  [<ffffffff96760426>] __lock_acquire+0x1276/0x1630
  [<ffffffff967610c9>] lock_acquire+0x99/0x1e0
  [<ffffffff96ed50d4>] _raw_spin_trylock+0x64/0x80
  [<ffffffff96a5bb11>] ___ratelimit+0x51/0x140
  [<ffffffff9674a707>] __charge_beancounter_locked+0x147/0x170
  [<ffffffff9674a77f>] charge_beancounter+0x4f/0x80
  [<ffffffff96da822e>] xt_replace_table+0x1de/0x3d0
   ...
 Fatal resource shortage: numiptent, UB xxxx

This happen because of ub.ub_ratelimit does not have properly
initialized 'lock' spinlock.

https://jira.sw.ru/browse/PSBM-130672
Signed-off-by: Vasily Averin <[email protected]>
---
 kernel/bc/beancounter.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/kernel/bc/beancounter.c b/kernel/bc/beancounter.c
index 287d4c5440a4..5e04d6c0c9b1 100644
--- a/kernel/bc/beancounter.c
+++ b/kernel/bc/beancounter.c
@@ -1067,8 +1067,7 @@ static void init_beancounter_nolimits(struct 
user_beancounter *ub)
        ub->ub_parms[UB_OOMGUARPAGES].barrier = totalram_pages * 3 / 4;
 
        /* Ratelimit for messages in the kernel log */
-       ub->ub_ratelimit.burst = 4;
-       ub->ub_ratelimit.interval = 300*HZ;
+       ratelimit_state_init(&ub->ub_ratelimit, 300*HZ, 4);
 }
 
 static DEFINE_PER_CPU(struct ub_percpu_struct, ub0_percpu);
-- 
2.25.1

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to