mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: paul@xen.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Sean Christopherson <seanjc@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org
Subject: Re: [PATCH v3 09/13] KVM: xen: automatically use the vcpu_info embedded in shared_info
Date: Mon, 18 Sep 2023 17:20:35 +0100	[thread overview]
Message-ID: <aaeb3cfe3d4cd40ced226038f3e2cb126854bcc1.camel@infradead.org> (raw)
In-Reply-To: <7ff44cd2-c1a3-27a1-85cd-675320b4cf46@xen.org>

[-- Attachment #1: Type: text/plain, Size: 2041 bytes --]

On Mon, 2023-09-18 at 17:15 +0100, Paul Durrant wrote:
> > > +  Note that, if the guest sets an explicit vcpu_info location in guest
> > > +  memory then the VMM is expected to copy the content of the structure
> > > +  embedded in the shared_info page to the new location. It is therefore
> > > +  important that no event delivery is in progress at this time, otherwise
> > > +  events may be missed.
> > > 
> > 
> > That's difficult. It means tearing down all interrupts from passthrough
> > devices which are mapped via PIRQs, and also all IPIs.
> 
> So those don't honour event channel masking? That seems like a problem.

Oh, *mask*. Sure, it does honour masking. But... that would mean the
VMM has to keep track of which ports were *really* masked by the guest,
and which ones were just masked for the switchover. Including if the
guest does some mask/unmask activity *while* the switchover is
happening (or locking to prevent such). I still don't think that's a
kind thing to be telling the VMMs they need to do.

> > 
> > The IPI code *should* be able to fall back to just letting the VMM
> > handle the hypercall in userspace. But PIRQs are harder. I'd be happier
> > if our plan — handwavy though it may be — led to being able to use the
> > existing slow path for delivering interrupts by just *invalidating* the
> > cache. Maybe we *should* move the memcpy into the kernel, and let it
> > lock *both* the shinfo and new vcpu_info caches while it's doing the
> > copy? Given that that's the only valid transition, that shouldn't be so
> > hard, should it?
> > 
> 
> No, it just kind of oversteps the remit of the attribute... but I'll try 
> adding it and see how messy it gets.

Well, there's a reason I left all the vcpu_info address magic in
userspace in the first place. It was there in João's original patches
and I ripped it all out.

But I see your logic for wanting to put it back; I suspect moving the
memcpy too is part of the cost of that? Should work out OK, I think.

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5965 bytes --]

  reply	other threads:[~2023-09-18 16:28 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-18 14:40 [PATCH v3 00/13] KVM: xen: update shared_info and vcpu_info handling Paul Durrant
2023-09-18 14:40 ` [PATCH v3 01/13] KVM: pfncache: add a map helper function Paul Durrant
2023-09-18 14:41 ` [PATCH v3 02/13] KVM: pfncache: add a mark-dirty helper Paul Durrant
2023-09-18 14:41 ` [PATCH v3 03/13] KVM: pfncache: add a helper to get the gpa Paul Durrant
2023-09-18 14:41 ` [PATCH v3 04/13] KVM: pfncache: base offset check on khva rather than gpa Paul Durrant
2023-09-18 14:41 ` [PATCH v3 05/13] KVM: pfncache: allow a cache to be activated with a fixed (userspace) HVA Paul Durrant
2023-09-18 14:41 ` [PATCH v3 06/13] KVM: xen: allow shared_info to be mapped by fixed HVA Paul Durrant
2023-09-18 14:41 ` [PATCH v3 07/13] KVM: xen: prepare for using 'default' vcpu_info Paul Durrant
2023-09-18 14:41 ` [PATCH v3 08/13] KVM: xen: prevent vcpu_id from changing whilst shared_info is valid Paul Durrant
2023-09-18 15:59   ` David Woodhouse
2023-09-18 14:41 ` [PATCH v3 09/13] KVM: xen: automatically use the vcpu_info embedded in shared_info Paul Durrant
2023-09-18 16:07   ` David Woodhouse
2023-09-18 16:15     ` Paul Durrant
2023-09-18 16:20       ` David Woodhouse [this message]
2023-09-18 14:41 ` [PATCH v3 10/13] KVM: selftests / xen: set KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID Paul Durrant
2023-09-18 14:41 ` [PATCH v3 11/13] KVM: selftests / xen: map shared_info using HVA rather than GFN Paul Durrant
2023-09-18 16:16   ` David Woodhouse
2023-09-18 14:41 ` [PATCH v3 12/13] KVM: selftests / xen: don't explicitly set the vcpu_info address Paul Durrant
2023-09-18 16:10   ` David Woodhouse
2023-09-18 14:41 ` [PATCH v3 13/13] KVM: xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA capability Paul Durrant
2023-09-18 16:18 ` [PATCH v3 00/13] KVM: xen: update shared_info and vcpu_info handling Sean Christopherson
2023-09-18 16:34   ` David Woodhouse
2023-09-18 17:12     ` Sean Christopherson
2023-09-19  8:48       ` Paul Durrant
2023-09-19 15:37         ` Sean Christopherson

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=aaeb3cfe3d4cd40ced226038f3e2cb126854bcc1.camel@infradead.org \
    --to=dwmw2@infradead.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=pdurrant@amazon.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®