Re: [tip:x86/urgent] VM, x86, PAT: Change is_linear_pfn_mapping tonot use vm_pgoff

From: Pallipadi, Venkatesh
Date: Fri Mar 13 2009 - 13:04:52 EST


On Fri, 2009-03-13 at 09:25 -0700, Nick Piggin wrote:
> On Fri, Mar 13, 2009 at 04:03:39AM +0000, Pallipadi, Venkatesh wrote:
> > Commit-ID: 4bb9c5c02153dfc89a6c73a6f32091413805ad7d
> > Gitweb: http://git.kernel.org/tip/4bb9c5c02153dfc89a6c73a6f32091413805ad7d
> > Author: Pallipadi, Venkatesh <venkatesh.pallipadi@xxxxxxxxx>
> > AuthorDate: Thu, 12 Mar 2009 17:45:27 -0700
> > Commit: Ingo Molnar <mingo@xxxxxxx>
> > CommitDate: Fri, 13 Mar 2009 04:28:50 +0100
> >
> > /*
> > + * pfnmap vmas that are fully mapped at mmap time (not mapped on fault).
> > + * Used by x86 PAT to identify such PFNMAP mappings and optimize their handling.
> > + * Note VM_INSERTPAGE flag is overloaded here. i.e,
> > + * VM_INSERTPAGE && !VM_PFNMAP implies
> > + * The vma has had "vm_insert_page()" done on it
> > + * VM_INSERTPAGE && VM_PFNMAP implies
> > + * The vma is PFNMAP with full mapping at mmap time
> > + */
> > +#define VM_PFNMAP_AT_MMAP (VM_INSERTPAGE | VM_PFNMAP)
>
> This is really ugly IMO. Either it should be its own bit, or if you want
> to reduce usage of bits, then set aside some bits to represent a set of
> vma types, and convert existing code over to use that.
>
> Why not just use another vm_flag for 2.6.29 and earlier (we have 2 left),
> then do some flag rationalisation in 2.6.30?
>
> But I do like just avoiding these games entirely and encoding it
> explicitly.
>

Totally agree that this is ugly. But, I didn't like taking away one bit
for such a light usage. VM_INSERTPAGE is hardly ever used in the kernel
(wherever it is used, it is checked along with VM_PFNMAP).

OK. I will resend the patch with taking away one of the available bits.
But, I feel we need to do some multiplexing here, in a clean manner, for
future.

Thanks,
Venki

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/