On Wed, Mar 4, 2026 at 12:23 AM <[email protected]> wrote:
>
> From: zhidao su <[email protected]>
>
> Proxy Execution currently tracks blocked_on chains only through
> struct mutex. This patch extends the infrastructure to support
> rw_semaphore write-side blocking, allowing PE to eliminate priority
> inversion where a high-priority writer waits for a low-priority
> write lock holder.

I'm confused. I've already mentioned Suleiman has implemented rwsem
support for proxy back in September:
  https://lore.kernel.org/lkml/[email protected]/

Which the latest version can be found here (though I do have fixes
pending for v25):
  https://github.com/johnstultz-work/linux-dev/commits/proxy-exec-v24-6.18/


> diff --git a/tools/testing/selftests/sched/proxy_exec_test.c 
> b/tools/testing/selftests/sched/proxy_exec_test.c
> new file mode 100644
> index 00000000000..30fc58b9738
> --- /dev/null
> +++ b/tools/testing/selftests/sched/proxy_exec_test.c
> @@ -0,0 +1,763 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Proxy Execution (PE) selftest
> + *
> + * Tests for the sched_proxy_exec feature. Verifies that the kernel
> + * correctly handles RT priority inheritance through proxy execution.
> + *
> + * TC-1: Basic PE activation — low-prio holder releases lock for high-prio
> + *        waiter within expected time bound.
> + * TC-2: Three-level blocked_on chain — PE chains through B->C so that
> + *        A eventually acquires its mutex.
> + * TC-3: PE deactivate path — SIGSTOP/SIGCONT on holder; high-prio thread
> + *        must still acquire the lock within a generous timeout.
> + */
> +
> +#define _GNU_SOURCE
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <unistd.h>
> +#include <pthread.h>
> +#include <sched.h>
> +#include <errno.h>
> +#include <signal.h>
> +#include <time.h>
> +#include <sys/syscall.h>
> +#include <sys/types.h>
> +
> +static int test_count;
> +
> +/* ------------------------------------------------------------------ */
> +/* Helpers                                                              */
> +/* ------------------------------------------------------------------ */
> +
> +/*
> + * is_proxy_exec_enabled - check whether CONFIG_SCHED_PROXY_EXEC is active
> + *
> + * Try to read /proc/sys/kernel/sched_proxy_exec. If the file exists and
> + * contains a non-zero value the feature is considered enabled. Returns 1
> + * when enabled, 0 otherwise.
> + */
> +static int is_proxy_exec_enabled(void)
> +{
> +       FILE *f;
> +       int val = 0;
> +
> +       f = fopen("/proc/sys/kernel/sched_proxy_exec", "r");
> +       if (!f)
> +               return 0;

? There is no /proc/sys/kernel/sched_proxy_exec file.

This seems a bit like its AI generated, and wasn't tested. I'd avoid
sending stuff like that out to the list.

thanks
-john

Reply via email to