From: Bharata B Rao <bharata@linux.ibm.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: farosas@linux.ibm.com, aneesh.kumar@linux.ibm.com,
npiggin@gmail.com, kvm-ppc@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v5 1/3] powerpc/book3s64/radix: Add H_RPT_INVALIDATE pgsize encodings to mmu_psize_def
Date: Tue, 2 Mar 2021 09:51:28 +0530 [thread overview]
Message-ID: <20210302042128.GB188607@in.ibm.com> (raw)
In-Reply-To: <YD2UwhaweIpImZDv@yekko.fritz.box>
On Tue, Mar 02, 2021 at 12:28:34PM +1100, David Gibson wrote:
> On Wed, Feb 24, 2021 at 01:55:08PM +0530, Bharata B Rao wrote:
> > Add a field to mmu_psize_def to store the page size encodings
> > of H_RPT_INVALIDATE hcall. Initialize this while scanning the radix
> > AP encodings. This will be used when invalidating with required
> > page size encoding in the hcall.
> >
> > Signed-off-by: Bharata B Rao <bharata@linux.ibm.com>
> > ---
> > arch/powerpc/include/asm/book3s/64/mmu.h | 1 +
> > arch/powerpc/mm/book3s64/radix_pgtable.c | 5 +++++
> > 2 files changed, 6 insertions(+)
> >
> > diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
> > index eace8c3f7b0a..c02f42d1031e 100644
> > --- a/arch/powerpc/include/asm/book3s/64/mmu.h
> > +++ b/arch/powerpc/include/asm/book3s/64/mmu.h
> > @@ -19,6 +19,7 @@ struct mmu_psize_def {
> > int penc[MMU_PAGE_COUNT]; /* HPTE encoding */
> > unsigned int tlbiel; /* tlbiel supported for that page size */
> > unsigned long avpnm; /* bits to mask out in AVPN in the HPTE */
> > + unsigned long h_rpt_pgsize; /* H_RPT_INVALIDATE page size encoding */
> > union {
> > unsigned long sllp; /* SLB L||LP (exact mask to use in slbmte) */
> > unsigned long ap; /* Ap encoding used by PowerISA 3.0 */
> > diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> > index 98f0b243c1ab..1b749899016b 100644
> > --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> > +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> > @@ -486,6 +486,7 @@ static int __init radix_dt_scan_page_sizes(unsigned long node,
> > def = &mmu_psize_defs[idx];
> > def->shift = shift;
> > def->ap = ap;
> > + def->h_rpt_pgsize = psize_to_rpti_pgsize(idx);
> > }
> >
> > /* needed ? */
> > @@ -560,9 +561,13 @@ void __init radix__early_init_devtree(void)
> > */
> > mmu_psize_defs[MMU_PAGE_4K].shift = 12;
> > mmu_psize_defs[MMU_PAGE_4K].ap = 0x0;
> > + mmu_psize_defs[MMU_PAGE_4K].h_rpt_pgsize =
> > + psize_to_rpti_pgsize(MMU_PAGE_4K);
>
> Hm. TBH, I was thinking of this as replacing psize_to_rpti_pgsize() -
> that is, you directly put the correct codes in there, then just have
> psize_to_rpti_pgsize() look them up in the table.
>
> I guess that could be a followup change, though.
>
> >
> > mmu_psize_defs[MMU_PAGE_64K].shift = 16;
> > mmu_psize_defs[MMU_PAGE_64K].ap = 0x5;
> > + mmu_psize_defs[MMU_PAGE_64K].h_rpt_pgsize =
> > + psize_to_rpti_pgsize(MMU_PAGE_64K);
Hmm if you see I got rid of rpti_pgsize_to_psize() by having the
defines directly in mmu_psize_def[].
There are two cases in the above code (radix__early_init_devtree)
1. If radix pagesize encodings are present in the DT, we walk
the page sizes in the loop and populate the enconding for
H_RPT_INVALIDATE. I am not sure if we can use the direct codes
in this case.
2. If DT doesn't have the radix pagesize encodings, 4K and 64K
sizes are assumed as fallback sizes where we can use direct
encodings.
Regards,
Bharata.
next prev parent reply other threads:[~2021-03-02 4:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-24 8:25 [PATCH v5 0/3] Support for H_RPT_INVALIDATE in PowerPC KVM Bharata B Rao
2021-02-24 8:25 ` [PATCH v5 1/3] powerpc/book3s64/radix: Add H_RPT_INVALIDATE pgsize encodings to mmu_psize_def Bharata B Rao
2021-03-02 1:28 ` David Gibson
2021-03-02 4:21 ` Bharata B Rao [this message]
2021-03-04 7:00 ` David Gibson
2021-02-24 8:25 ` [PATCH v5 2/3] KVM: PPC: Book3S HV: Add support for H_RPT_INVALIDATE Bharata B Rao
2021-02-24 15:58 ` Fabiano Rosas
2021-03-02 4:14 ` Bharata B Rao
2021-03-02 1:45 ` David Gibson
2021-03-02 4:58 ` Bharata B Rao
2021-03-04 6:56 ` David Gibson
2021-02-24 8:25 ` [PATCH v5 3/3] KVM: PPC: Book3S HV: Use H_RPT_INVALIDATE in nested KVM Bharata B Rao
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=20210302042128.GB188607@in.ibm.com \
--to=bharata@linux.ibm.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=farosas@linux.ibm.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=npiggin@gmail.com \
/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).