All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Steven Price <steven.price@arm.com>
Cc: "Marc Zyngier" <maz@kernel.org>, "Will Deacon" <will@kernel.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Radim Krčmář" <rkrcmar@redhat.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"James Morse" <james.morse@arm.com>,
	"Julien Thierry" <julien.thierry.kdev@gmail.com>,
	"Suzuki K Pouloze" <suzuki.poulose@arm.com>,
	kvm@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 01/10] KVM: arm64: Document PV-time interface
Date: Mon, 21 Oct 2019 15:38:13 +0100	[thread overview]
Message-ID: <20191021143812.GB56589@lakrids.cambridge.arm.com> (raw)
In-Reply-To: <d01edcb3-0d9a-d4ec-6a60-a82f3ffccba5@arm.com>

On Mon, Oct 21, 2019 at 02:40:31PM +0100, Steven Price wrote:
> On 18/10/2019 18:10, Mark Rutland wrote:
> > On Tue, Oct 15, 2019 at 06:56:51PM +0100, Mark Rutland wrote:
> [...]
> >>> +PV_TIME_ST
> >>> +    ============= ========    ==========
> >>> +    Function ID:  (uint32)    0xC5000021
> >>> +    Return value: (int64)     IPA of the stolen time data structure for this
> >>> +                              VCPU. On failure:
> >>> +                              NOT_SUPPORTED (-1)
> >>> +    ============= ========    ==========
> >>> +
> >>> +The IPA returned by PV_TIME_ST should be mapped by the guest as normal memory
> >>> +with inner and outer write back caching attributes, in the inner shareable
> >>> +domain. A total of 16 bytes from the IPA returned are guaranteed to be
> >>> +meaningfully filled by the hypervisor (see structure below).
> >>
> >> At what granularity is this allowed to share IPA space with other
> >> mappings? The spec doesn't provide any guidance here, and I strongly
> >> suspect that it should.
> >>
> >> To support a 64K guest, we must ensure that this doesn't share a 64K IPA
> >> granule with any MMIO, and it probably only makes sense for an instance
> >> of this structure to share that granule with another vCPU's structure.
> >>
> >> We probably _also_ want to ensure that this doesn't share a 64K granule
> >> with memory the guest sees as regular system RAM. Otherwise we're liable
> >> to force it into having mismatched attributes for any of that RAM it
> >> happens to map as part of mapping the PV_TIME_ST structure.
> > 
> > I guess we can say that it's userspace's responsibiltiy to set this up
> > with sufficient alignment, but I do think we want to make a
> > recommendataion here.
> 
> I can add something like this to the kernel's documentation:
> 
>     It is advisable that one or more 64k pages are set aside for the
>     purpose of these structures and not used for other purposes, this
>     enables the guest to map the region using 64k pages and avoids
>     conflicting attributes with other memory.

Sounds good to me!

Thanks,
Mark.

  reply	other threads:[~2019-10-21 14:38 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 12:59 [PATCH v6 00/10] arm64: Stolen time support Steven Price
2019-10-11 12:59 ` Steven Price
2019-10-11 12:59 ` Steven Price
2019-10-11 12:59 ` [PATCH v6 01/10] KVM: arm64: Document PV-time interface Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-15 17:56   ` Mark Rutland
2019-10-17  9:40     ` Steven Price
2019-10-18 17:10     ` Mark Rutland
2019-10-21 13:40       ` Steven Price
2019-10-21 14:38         ` Mark Rutland [this message]
2019-10-11 12:59 ` [PATCH v6 02/10] KVM: arm/arm64: Factor out hypercall handling from PSCI code Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59 ` [PATCH v6 03/10] KVM: arm64: Implement PV_TIME_FEATURES call Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59 ` [PATCH v6 04/10] KVM: Implement kvm_put_guest() Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59 ` [PATCH v6 05/10] KVM: arm64: Support stolen time reporting via shared structure Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-19 11:12   ` Marc Zyngier
2019-10-19 11:12     ` Marc Zyngier
2019-10-19 11:12     ` Marc Zyngier
2019-10-21 10:21     ` Steven Price
2019-10-21 10:21       ` Steven Price
2019-10-21 10:21       ` Steven Price
2019-10-21 10:40       ` Marc Zyngier
2019-10-21 10:40         ` Marc Zyngier
2019-10-21 10:40         ` Marc Zyngier
2019-10-21 11:24         ` Steven Price
2019-10-21 11:24           ` Steven Price
2019-10-21 11:24           ` Steven Price
2019-10-11 12:59 ` [PATCH v6 06/10] KVM: Allow kvm_device_ops to be const Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59 ` [PATCH v6 07/10] KVM: arm64: Provide VCPU attributes for stolen time Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-19 11:28   ` Marc Zyngier
2019-10-19 11:28     ` Marc Zyngier
2019-10-19 11:28     ` Marc Zyngier
2019-10-21 11:00     ` Steven Price
2019-10-21 11:00       ` Steven Price
2019-10-21 11:00       ` Steven Price
2019-10-11 12:59 ` [PATCH v6 08/10] arm/arm64: Provide a wrapper for SMCCC 1.1 calls Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-21 11:42   ` Marc Zyngier
2019-10-21 11:42     ` Marc Zyngier
2019-10-21 11:42     ` Marc Zyngier
2019-10-21 13:43     ` Steven Price
2019-10-21 13:43       ` Steven Price
2019-10-21 13:43       ` Steven Price
2019-10-21 14:05       ` Marc Zyngier
2019-10-21 14:05         ` Marc Zyngier
2019-10-21 14:05         ` Marc Zyngier
2019-10-11 12:59 ` [PATCH v6 09/10] arm/arm64: Make use of the SMCCC 1.1 wrapper Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59 ` [PATCH v6 10/10] arm64: Retrieve stolen time as paravirtualized guest Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-11 12:59   ` Steven Price
2019-10-19 20:28   ` Marc Zyngier
2019-10-19 20:28     ` Marc Zyngier
2019-10-19 20:28     ` Marc Zyngier
2019-10-21  5:01     ` Jürgen Groß
2019-10-21  5:01       ` Jürgen Groß
2019-10-21  5:01       ` Jürgen Groß
2019-10-21  7:55       ` Marc Zyngier
2019-10-21  7:55         ` Marc Zyngier
2019-10-21  7:55         ` Marc Zyngier
2019-10-21 12:14     ` Steven Price
2019-10-21 12:14       ` Steven Price
2019-10-21 12:14       ` Steven Price

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=20191021143812.GB56589@lakrids.cambridge.arm.com \
    --to=mark.rutland@arm.com \
    --cc=james.morse@arm.com \
    --cc=julien.thierry.kdev@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=maz@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=steven.price@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=will@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.