Message ID | 20211018144713.873464-1-nsaenzju@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Select POSIX_CPU_TIMERS_TASK_WORK | expand |
[adding Marc Z to Cc, since this affects KVM] On Mon, Oct 18, 2021 at 04:47:13PM +0200, Nicolas Saenz Julienne wrote: > With 6caa5812e2d1 ("KVM: arm64: Use generic KVM xfer to guest work > function") all arm64 exit paths are properly equipped to handle the > POSIX timers' task work. > > Deferring timer callbacks to thread context, not only limits the amount > of time spent in hard interrupt context, but is a safer > implementation[1], and will allow PREEMPT_RT setups to use KVM[2]. > > So let's enable POSIX_CPU_TIMERS_TASK_WORK on arm64. > > [1] https://lore.kernel.org/all/20200716201923.228696399@linutronix.de/ > [2] https://www.spinics.net/lists/linux-rt-users/msg24860.html Trivial nit: could we please make that second link: https://lore.kernel.org/linux-rt-users/87v92bdnlx.ffs@tglx/ > Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com> Regardless, this makes sense to me, and given you've tested it: Acked-by: Mark Rutland <mark.rutland@arm.com> Thanks, Mark. > > --- > > This was tested by running all relevant kernel timer self-tests and > making sure KVM still works as expected. > > arch/arm64/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 789036cf74f5..ce0d0d254542 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -191,6 +191,7 @@ config ARM64 > select HAVE_PERF_REGS > select HAVE_PERF_USER_STACK_DUMP > select HAVE_REGS_AND_STACK_ACCESS_API > + select HAVE_POSIX_CPU_TIMERS_TASK_WORK > select HAVE_FUNCTION_ARG_ACCESS_API > select HAVE_FUTEX_CMPXCHG if FUTEX > select MMU_GATHER_RCU_TABLE_FREE > -- > 2.32.0 >
On Wed, 27 Oct 2021 12:26:58 +0100, Mark Rutland <mark.rutland@arm.com> wrote: > > [adding Marc Z to Cc, since this affects KVM] > > On Mon, Oct 18, 2021 at 04:47:13PM +0200, Nicolas Saenz Julienne wrote: > > With 6caa5812e2d1 ("KVM: arm64: Use generic KVM xfer to guest work > > function") all arm64 exit paths are properly equipped to handle the > > POSIX timers' task work. > > > > Deferring timer callbacks to thread context, not only limits the amount > > of time spent in hard interrupt context, but is a safer > > implementation[1], and will allow PREEMPT_RT setups to use KVM[2]. > > > > So let's enable POSIX_CPU_TIMERS_TASK_WORK on arm64. > > > > [1] https://lore.kernel.org/all/20200716201923.228696399@linutronix.de/ > > [2] https://www.spinics.net/lists/linux-rt-users/msg24860.html > > Trivial nit: could we please make that second link: > > https://lore.kernel.org/linux-rt-users/87v92bdnlx.ffs@tglx/ > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com> > > Regardless, this makes sense to me, and given you've tested it: > > Acked-by: Mark Rutland <mark.rutland@arm.com> > > Thanks, > Mark. > > > > > --- > > > > This was tested by running all relevant kernel timer self-tests and > > making sure KVM still works as expected. > > > > arch/arm64/Kconfig | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > > index 789036cf74f5..ce0d0d254542 100644 > > --- a/arch/arm64/Kconfig > > +++ b/arch/arm64/Kconfig > > @@ -191,6 +191,7 @@ config ARM64 > > select HAVE_PERF_REGS > > select HAVE_PERF_USER_STACK_DUMP > > select HAVE_REGS_AND_STACK_ACCESS_API > > + select HAVE_POSIX_CPU_TIMERS_TASK_WORK > > select HAVE_FUNCTION_ARG_ACCESS_API > > select HAVE_FUTEX_CMPXCHG if FUTEX > > select MMU_GATHER_RCU_TABLE_FREE Looks reasonable to me. Acked-by: Marc Zyngier <maz@kernel.org> M.
On Mon, 18 Oct 2021 16:47:13 +0200, Nicolas Saenz Julienne wrote: > With 6caa5812e2d1 ("KVM: arm64: Use generic KVM xfer to guest work > function") all arm64 exit paths are properly equipped to handle the > POSIX timers' task work. > > Deferring timer callbacks to thread context, not only limits the amount > of time spent in hard interrupt context, but is a safer > implementation[1], and will allow PREEMPT_RT setups to use KVM[2]. > > [...] Applied to arm64 (for-next/misc), thanks! [1/1] arm64: Select POSIX_CPU_TIMERS_TASK_WORK https://git.kernel.org/arm64/c/a68773bd32d9 Cheers,
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 789036cf74f5..ce0d0d254542 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -191,6 +191,7 @@ config ARM64 select HAVE_PERF_REGS select HAVE_PERF_USER_STACK_DUMP select HAVE_REGS_AND_STACK_ACCESS_API + select HAVE_POSIX_CPU_TIMERS_TASK_WORK select HAVE_FUNCTION_ARG_ACCESS_API select HAVE_FUTEX_CMPXCHG if FUTEX select MMU_GATHER_RCU_TABLE_FREE
With 6caa5812e2d1 ("KVM: arm64: Use generic KVM xfer to guest work function") all arm64 exit paths are properly equipped to handle the POSIX timers' task work. Deferring timer callbacks to thread context, not only limits the amount of time spent in hard interrupt context, but is a safer implementation[1], and will allow PREEMPT_RT setups to use KVM[2]. So let's enable POSIX_CPU_TIMERS_TASK_WORK on arm64. [1] https://lore.kernel.org/all/20200716201923.228696399@linutronix.de/ [2] https://www.spinics.net/lists/linux-rt-users/msg24860.html Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com> --- This was tested by running all relevant kernel timer self-tests and making sure KVM still works as expected. arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+)