Messages in this thread Patch in this message | | | Date | Tue, 06 Feb 2024 15:49:15 -0300 | From | Marcelo Tosatti <> | Subject | [patch 04/12] clockevent unbind: use smp_call_func_single_fail |
| |
Convert clockevents_unbind from smp_call_function_single to smp_call_func_single_fail, which will fail in case the target CPU is tagged as block interference CPU.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Index: linux-isolation/kernel/time/clockevents.c =================================================================== --- linux-isolation.orig/kernel/time/clockevents.c +++ linux-isolation/kernel/time/clockevents.c @@ -13,6 +13,7 @@ #include <linux/module.h> #include <linux/smp.h> #include <linux/device.h> +#include <linux/sched/isolation.h> #include "tick-internal.h" @@ -416,9 +417,14 @@ static void __clockevents_unbind(void *a */ static int clockevents_unbind(struct clock_event_device *ced, int cpu) { + int ret, idx; struct ce_unbind cu = { .ce = ced, .res = -ENODEV }; - smp_call_function_single(cpu, __clockevents_unbind, &cu, 1); + idx = block_interf_srcu_read_lock(); + ret = smp_call_function_single_fail(cpu, __clockevents_unbind, &cu, 1); + block_interf_srcu_read_unlock(idx); + if (ret) + return ret; return cu.res; }
| |