lkml.org 
[lkml]   [2021]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCHv2 4/4] arm64: add host pv-vcpu-state support
On Wed, 21 Jul 2021 11:38:40 +0100,
Sergey Senozhatsky <senozhatsky@chromium.org> wrote:
>
> On (21/07/21 09:40), Marc Zyngier wrote:
> > >
> > > Can that be cured by just checking vcpu->preempted before calling
> > > kvm_update_vcpu_preempted() ?
> >
> > It isn't obvious to me that this is the right thing to do.
> > vcpu->preempted is always updated on sched-out from the preempt
> > notifier if the vcpu was on the run-queue, so my guess is that it will
> > always be set when switching to another task.
> >
> > What you probably want is to check whether the vcpu is blocked by
> > introspecting the wait-queue with:
> >
> > scuwait_active(kvm_arch_vcpu_get_wait(vcpu)
> >
> > which will tell you whether you are blocking or not. We are already
> > using a similar construct for arming a background timer in this case.
>
> Can we examine if vcpu->run->exit_reason == WFE/WFI and avoid setting
> preempted state if so?

We never go back to userspace for WFI/WFE, so no reason to populate
the run structure.

Checking for the blocked state is the right thing to do, and we
already have the primitive for this. Just use it.

M.

--
Without deviation from the norm, progress is not possible.

\
 
 \ /
  Last update: 2021-07-21 13:17    [W:0.563 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site