Re: [PATCH RFC 2/2] mm/x86/pat: Do proper PAT bit shift for large mappings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 23, 2024 at 03:48:22PM -0700, Dave Hansen wrote:
> On 5/23/24 15:37, Peter Xu wrote:
> > diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> > index 317de2afd371..c4a2356b1a54 100644
> > --- a/mm/huge_memory.c
> > +++ b/mm/huge_memory.c
> > @@ -1135,7 +1135,7 @@ static void insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
> >  		goto out_unlock;
> >  	}
> >  
> > -	entry = pmd_mkhuge(pfn_t_pmd(pfn, prot));
> > +	entry = pmd_mkhuge(pfn_t_pmd(pfn, pgprot_4k_2_large(prot)));
> >  	if (pfn_t_devmap(pfn))
> >  		entry = pmd_mkdevmap(entry);
> >  	if (write) {
> 
> Does this even compile on non-x86 architectures?

Probably not..  I think I can define a pgprot_to_large() globally, pointing
that to pgprot_4k_2_large() on x86 and make the fallback to be noop.  And
if there's a new version I'll guarantee to run over my cross compilers.

Any comments on the idea itself?  Do we have a problem, or maybe I
overlooked something?

Thanks,

-- 
Peter Xu





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux