public inbox for linux-next@vger.kernel.org 
 help / color / mirror / Atom feed
* register_syctl_init error in linux-next-20250612
@ 2025-06-12 17:55 Bert Karwatzki
  2025-06-19 11:50 ` Joel Granados
  2025-06-19 12:39 ` Joel Granados
  0 siblings, 2 replies; 8+ messages in thread
From: Bert Karwatzki @ 2025-06-12 17:55 UTC (permalink / raw)
  To: Joel Granados
  Cc: Bert Karwatzki, linux-kernel, linux-next, Waiman Long, Kees Cook

When starting evolution (gnome email client) on my debian sid with
linux-next-20250612 I get the following error message on the terminal
emulator (the Gtk messages also occur  when):

Gtk-Message: 13:34:49.069: Failed to load module "colorreload-gtk-module"
Gtk-Message: 13:34:49.070: Failed to load module "window-decorations-gtk-module"
Gtk-Message: 13:34:51.012: Failed to load module "colorreload-gtk-module"
Gtk-Message: 13:34:51.013: Failed to load module "window-decorations-gtk-module"
bwrap: Can't read /proc/sys/kernel/overflowuid: No such file or directory

** (org.gnome.Evolution:3327): ERROR **: 13:34:51.245: Failed to fully launch dbus-proxy: Der Kindprozess wurde mit Status 1 beendet
Trace/Breakpoint ausgelöst

and the following message in dmesg:

[  305.600587] [      T3327] traps: evolution[3327] trap int3 ip:7f64442d3ab7 sp:7ffc9f4e94d0 error:0 in libglib-2.0.so.0.8400.2[66ab7,7f644428c000+a1000]

I bisected this to commit cf47285025e6 ("locking/rtmutex: Move max_lock_depth
into rtmutex.c"). The absence of /proc/sys/kernel/overflow{uid,gid} seems to be the related
to the start failure, in affected kernel version the files are absent while they're present
when evolution starts normally.

Also when booting next-20250612 I get this error message regarding max_lock_depth and
rtmutex_sysctl_table:

[    0.234399] [         T1] sysctl duplicate entry: /kernel/max_lock_depth
[    0.234402] [         T1] failed when register_sysctl_sz rtmutex_sysctl_table to kernel
[    0.234405] [         T1] sysctl duplicate entry: /kernel/max_lock_depth
[    0.234407] [         T1] failed when register_sysctl_sz rtmutex_sysctl_table to kernel

Reverting commit cf47285025e6 in next-20250612 fixes the both the "sysctl duplicate
entry" issue and the missing overflow{gid,uid} files and evolution starts normally again.

As there were conflicts when reverting, here the revert patch for next-20250612
to illustrate conflict resolution:

diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
index dc9a51cda97c..7d049883a08a 100644
--- a/include/linux/rtmutex.h
+++ b/include/linux/rtmutex.h
@@ -18,6 +18,8 @@
 #include <linux/rbtree_types.h>
 #include <linux/spinlock_types_raw.h>
 
+extern int max_lock_depth; /* for sysctl */
+
 struct rt_mutex_base {
 	raw_spinlock_t		wait_lock;
 	struct rb_root_cached   waiters;
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index 705a0e0fd72a..c80902eacd79 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -29,29 +29,6 @@
 #include "rtmutex_common.h"
 #include "lock_events.h"
 
-/*
- * Max number of times we'll walk the boosting chain:
- */
-static int max_lock_depth = 1024;
-
-static const struct ctl_table rtmutex_sysctl_table[] = {
-	{
-		.procname	= "max_lock_depth",
-		.data		= &max_lock_depth,
-		.maxlen		= sizeof(int),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec,
-	},
-};
-
-static int __init init_rtmutex_sysctl(void)
-{
-	register_sysctl_init("kernel", rtmutex_sysctl_table);
-	return 0;
-}
-
-subsys_initcall(init_rtmutex_sysctl);
-
 #ifndef WW_RT
 # define build_ww_mutex()	(false)
 # define ww_container_of(rtm)	NULL
diff --git a/kernel/locking/rtmutex_api.c b/kernel/locking/rtmutex_api.c
index 9e00ea0e5cfa..2d933528a0fa 100644
--- a/kernel/locking/rtmutex_api.c
+++ b/kernel/locking/rtmutex_api.c
@@ -8,6 +8,11 @@
 #define RT_MUTEX_BUILD_MUTEX
 #include "rtmutex.c"
 
+/*
+ * Max number of times we'll walk the boosting chain:
+ */
+int max_lock_depth = 1024;
+
 /*
  * Debug aware fast / slowpath lock,trylock,unlock
  *
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 0716c7df7243..82af6e6f5dbb 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -23,6 +23,14 @@
 #include <linux/uaccess.h>
 #include <asm/processor.h>
 
+#ifdef CONFIG_X86
+#include <asm/nmi.h>
+#include <asm/io.h>
+#endif
+#ifdef CONFIG_RT_MUTEXES
+#include <linux/rtmutex.h>
+#endif
+
 /* shared constants to be used in various sysctls */
 const int sysctl_vals[] = { 0, 1, 2, 3, 4, 100, 200, 1000, 3000, INT_MAX, 65535, -1 };
 EXPORT_SYMBOL(sysctl_vals);
@@ -1525,6 +1533,15 @@ static const struct ctl_table kern_table[] = {
 		.proc_handler	= proc_dointvec,
 	},
 #endif
+#ifdef CONFIG_RT_MUTEXES
+	{
+		.procname	= "max_lock_depth",
+		.data		= &max_lock_depth,
+		.maxlen		= sizeof(int),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec,
+	},
+#endif
 };
 
 int __init sysctl_init_bases(void)


Bert Karwatzki

^ permalink raw reply related	[flat|nested] 8+ messages in thread
* register_syctl_init error in linux-next-20250612
@ 2025-06-19 15:22 Bert Karwatzki
  0 siblings, 0 replies; 8+ messages in thread
From: Bert Karwatzki @ 2025-06-19 15:22 UTC (permalink / raw)
  To: Joel Granados; +Cc: Bert Karwatzki, linux-kernel, linux-next

I just confirmed that this bug occurs only with CONFIG_PREEMPT_RT=y,
and also occurs in your sysctl-next branch.

Bert Karwatzki

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-06-23  9:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-12 17:55 register_syctl_init error in linux-next-20250612 Bert Karwatzki
2025-06-19 11:50 ` Joel Granados
2025-06-19 12:39 ` Joel Granados
2025-06-20  9:37   ` Bert Karwatzki
2025-06-20 11:11     ` Joel Granados
2025-06-20 11:17       ` Bert Karwatzki
2025-06-23  7:55         ` Joel Granados
  -- strict thread matches above, loose matches on Subject: below --
2025-06-19 15:22 Bert Karwatzki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox