[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <162884232829.395.5057138139418300894.tip-bot2@tip-bot2>
Date: Fri, 13 Aug 2021 08:12:08 -0000
From: "tip-bot2 for Thomas Gleixner" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: Thomas Gleixner <tglx@...utronix.de>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
x86@...nel.org, linux-kernel@...r.kernel.org
Subject: [tip: core/debugobjects] debugobjects: Make them PREEMPT_RT aware
The following commit has been merged into the core/debugobjects branch of tip:
Commit-ID: 4bedcc28469a24fe481a8a31b3584e6070457ddb
Gitweb: https://git.kernel.org/tip/4bedcc28469a24fe481a8a31b3584e6070457ddb
Author: Thomas Gleixner <tglx@...utronix.de>
AuthorDate: Thu, 12 Aug 2021 17:43:26 +02:00
Committer: Thomas Gleixner <tglx@...utronix.de>
CommitterDate: Fri, 13 Aug 2021 10:07:44 +02:00
debugobjects: Make them PREEMPT_RT aware
On PREEMPT_RT enabled kernels it is not possible to refill the object pool
from atomic context (preemption or interrupts disabled) as the allocator
might acquire 'sleeping' spinlocks.
Guard the invocation of fill_pool() accordingly.
Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
Tested-by: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Link: https://lore.kernel.org/r/87sfzehdnl.ffs@tglx
---
lib/debugobjects.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 9e14ae0..6946f8e 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -557,7 +557,12 @@ __debug_object_init(void *addr, const struct debug_obj_descr *descr, int onstack
struct debug_obj *obj;
unsigned long flags;
- fill_pool();
+ /*
+ * On RT enabled kernels the pool refill must happen in preemptible
+ * context:
+ */
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT) || preemptible())
+ fill_pool();
db = get_bucket((unsigned long) addr);
Powered by blists - more mailing lists