All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
	RT <linux-rt-users@vger.kernel.org>,
	maz@kernel.org
Subject: Re: arm64: kvm + RT
Date: Wed, 06 Oct 2021 02:05:14 +0200	[thread overview]
Message-ID: <87v92bdnlx.ffs@tglx> (raw)
In-Reply-To: <20211005105449.GC1664@C02TD0UTHF1T.local>

On Tue, Oct 05 2021 at 11:54, Mark Rutland wrote:
> On Tue, Oct 05, 2021 at 11:52:52AM +0200, Thomas Gleixner wrote:
>> Jan,
>> 
>> On Mon, Oct 04 2021 at 19:54, Jan Kiszka wrote:
>> > what's the state of getting kvm working (again?) along RT? Seems
>> > HAVE_POSIX_CPU_TIMERS_TASK_WORK is in conflict with KVM but a
>> > precondition for RT on recent kernels. What's the story behind that?
>> 
>> the ARM64 KVM implementation is incorrect vs. TIF handling before
>> VMENTER which breaks the posix cpu timers task work assumptions and also
>> violates a few other expectations. AFAICT the arm64 folks are working on
>> that, but you have to ask them directly what the state of this is.
>
> I think that was dealt with as of mainline commits:
>
> * e1c6b9e1669e44fb ("entry: KVM: Allow use of generic KVM entry w/o full generic support")
>   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e1c6b9e1669e44fb7f9688e34e460b759e3b9187
>
> * 6caa5812e2d126a0 ("KVM: arm64: Use generic KVM xfer to guest work function")
>   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6caa5812e2d126a0aa8a17816c1ba6f0a0c2b309
>
> ... unless I'm missing something.

Just a minor detail:

$ cd linus
$ git grep HAVE_POSIX_CPU_TIMERS_TASK_WORK
arch/x86/Kconfig:       select HAVE_POSIX_CPU_TIMERS_TASK_WORK
kernel/time/Kconfig:config HAVE_POSIX_CPU_TIMERS_TASK_WORK
kernel/time/Kconfig:    default y if POSIX_TIMERS && HAVE_POSIX_CPU_TIMERS_TASK_WORK

$cd rt
$ git grep HAVE_POSIX_CPU_TIMERS_TASK_WORK
arch/arm/Kconfig:       select ARCH_SUPPORTS_RT if HAVE_POSIX_CPU_TIMERS_TASK_WORK
arch/arm/Kconfig:       select HAVE_POSIX_CPU_TIMERS_TASK_WORK if !KVM
arch/arm64/Kconfig:     select ARCH_SUPPORTS_RT if HAVE_POSIX_CPU_TIMERS_TASK_WORK
arch/arm64/Kconfig:     select HAVE_POSIX_CPU_TIMERS_TASK_WORK if !KVM
arch/powerpc/Kconfig:   select ARCH_SUPPORTS_RT                 if HAVE_POSIX_CPU_TIMERS_TASK_WORK
arch/powerpc/Kconfig:   select HAVE_POSIX_CPU_TIMERS_TASK_WORK  if !KVM
arch/x86/Kconfig:       select HAVE_POSIX_CPU_TIMERS_TASK_WORK

Which is simply because arm64 does not yet have:

arch/arm64/Kconfig:     select HAVE_POSIX_CPU_TIMERS_TASK_WORK

set in mainline to indicate that it does support it unconditionally
including in KVM.

See?

Thanks,

        tglx

      reply	other threads:[~2021-10-06  0:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-04 17:54 arm64: kvm + RT Jan Kiszka
2021-10-05  9:52 ` Thomas Gleixner
2021-10-05 10:01   ` Jan Kiszka
2021-10-05 10:01     ` Jan Kiszka
2021-10-05 10:54   ` Mark Rutland
2021-10-06  0:05     ` Thomas Gleixner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v92bdnlx.ffs@tglx \
    --to=tglx@linutronix.de \
    --cc=jan.kiszka@siemens.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.