lkml.org 
[lkml]   [2015]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2 00/10] evacuate struct page from the block layer, introduce __pfn_t
From
On Thu, May 7, 2015 at 10:43 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> On Thu, May 7, 2015 at 9:03 AM, Dan Williams <dan.j.williams@intel.com> wrote:
>>
>> Ok, I'll keep thinking about this and come back when we have a better
>> story about passing mmap'd persistent memory around in userspace.
>
> Ok. And if we do decide to go with your kind of "__pfn" type, I'd
> probably prefer that we encode the type in the low bits of the word
> rather than compare against PAGE_OFFSET. On some architectures
> PAGE_OFFSET is zero (admittedly probably not ones you'd care about),
> but even on x86 it's a *lot* cheaper to test the low bit than it is to
> compare against a big constant.
>
> We know "struct page *" is supposed to be at least aligned to at least
> "unsigned long", so you'd have two bits of type information (and we
> could easily make it three). With "0" being a real pointer, so that
> you can use the pointer itself without masking.
>
> And the "hide type in low bits of pointer" is something we've done
> quite a lot, so it's more "kernel coding style" anyway.

Ok. Although __pfn_t also stores pfn values directly which will
consume those 2 bits so we'll need to shift pfns up when storing.


\
 
 \ /
  Last update: 2015-05-07 22:21    [W:0.106 / U:0.832 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site