From: Vincent Donnefort <vdonnefort@google.com>
To: Kalesh Singh <kaleshsingh@google.com>
Cc: maz@kernel.org, oliver.upton@linux.dev, kvmarm@lists.linux.dev,
qperret@google.com, smostafa@google.com,
linux-arm-kernel@lists.infradead.org, kernel-team@android.com,
will@kernel.org
Subject: Re: [PATCH v2] KVM: arm64: Remove size-order align in the nVHE hyp private VA range
Date: Mon, 14 Aug 2023 08:40:01 +0100 [thread overview]
Message-ID: <ZNnaUV7d4XhjflAr@google.com> (raw)
In-Reply-To: <CAC_TJvcwWRSs-YcP-_awLn2VU9m-AT8HzSq+aKHvSPkpRw5=OA@mail.gmail.com>
[...]
> > +int create_hyp_stack(phys_addr_t phys_addr, unsigned long *haddr)
> > +{
> > + unsigned long base;
> > + size_t size;
> > + int ret;
> > +
> > + mutex_lock(&kvm_hyp_pgd_mutex);
> > + /*
> > + * Efficient stack verification using the PAGE_SHIFT bit implies
> > + * an alignment of our allocation on the order of the size.
> > + */
> > + size = PAGE_SIZE * 2;
> > + base = ALIGN_DOWN(io_map_base - size, size);
> > +
> > + ret = __hyp_alloc_private_va_range(base);
> > +
> > + mutex_unlock(&kvm_hyp_pgd_mutex);
> > +
> > + if (ret) {
> > + kvm_err("Cannot allocate hyp stack guard page\n");
> > + return ret;
> > + }
> > +
> > + /*
> > + * Since the stack grows downwards, map the stack to the page
> > + * at the higher address and leave the lower guard page
> > + * unbacked.
> > + *
> > + * Any valid stack address now has the PAGE_SHIFT bit as 1
> > + * and addresses corresponding to the guard page have the
> > + * PAGE_SHIFT bit as 0 - this is used for overflow detection.
> > + */
> > + ret = __create_hyp_mappings(base + PAGE_SIZE, PAGE_SIZE, phys_addr,
> > + PAGE_HYP);
> > + if (ret)
> > + kvm_err("Cannot map hyp stack\n");
>
> Should we reset the io_map_base if the mapping failed here as well?
I didn't do it on purpose. Here, I'm releasing the lock and I didn't want to add
a non locked __create_hyp_mappings() just for that reset that is probably not
binging much.
>
> Otherwise lgtm, Reviewed-by: Kalesh Singh <kaleshsingh@google.com>
Thanks for the review!
>
> Thanks,
> Kalesh
>
> > +
> > + *haddr = base + size;
> > +
> > + return ret;
> > +}
> > +
> > /**
> > * create_hyp_io_mappings - Map IO into both kernel and HYP
> > * @phys_addr: The physical start address which gets mapped
> >
> > base-commit: 52a93d39b17dc7eb98b6aa3edb93943248e03b2f
> > --
> > 2.41.0.640.ga95def55d0-goog
> >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-14 7:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230828121652eucas1p11cc5921bd55c7e90f83d1938a358237f@eucas1p1.samsung.com>
2023-08-11 11:20 ` [PATCH v2] KVM: arm64: Remove size-order align in the nVHE hyp private VA range Vincent Donnefort
2023-08-11 21:55 ` Kalesh Singh
2023-08-14 7:40 ` Vincent Donnefort [this message]
2023-08-26 11:00 ` Marc Zyngier
2023-08-26 13:02 ` Marc Zyngier
2023-08-28 12:16 ` Marek Szyprowski
2023-08-28 13:19 ` Marc Zyngier
2023-08-28 13:43 ` Marek Szyprowski
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=ZNnaUV7d4XhjflAr@google.com \
--to=vdonnefort@google.com \
--cc=kaleshsingh@google.com \
--cc=kernel-team@android.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=qperret@google.com \
--cc=smostafa@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).