Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA

From: Boaz Harrosh
Date: Thu Aug 13 2015 - 09:23:45 EST

On 08/13/2015 03:57 PM, Dan Williams wrote:
> This is explicitly addressed in the changelog, repeated here:
>> The __pfn_t to resource lookup is indeed inefficient walking of a linked list,
>> but there are two mitigating factors:
>> 1/ The number of persistent memory ranges is bounded by the number of
>> DIMMs which is on the order of 10s of DIMMs, not hundreds.

You do not get where I'm comming from. It used to be a [ptr - ONE_BASE + OTHER_BASE]
(In 64 bit) it is now a call and a loop and a search. how ever you will look at
it is *not* the instantaneous address translation it is now.

I have memory I want memory speeds. You keep thinking HD speeds, where what ever
you do will not matter.

>> 2/ The lookup yields the entire range, if it becomes inefficient to do a
>> kmap_atomic_pfn_t() a PAGE_SIZE at a time the caller can take
>> advantage of the fact that the lookup can be amortized for all kmap
>> operations it needs to perform in a given range.

What "given range" how can a bdev assume that the all sg-list belongs to the
same "range". In fact our code does multple-pmem devices for a long time.
What about say md-of-pmems for example, or btrfs

> DAX as is is races against pmem unbind. A synchronization cost must
> be paid somewhere to make sure the memremap() mapping is still valid.

Sorry for being so slow, is what I asked. what is exactly "pmem unbind" ?

Currently in my 4.1 Kernel the ioremap is done on modprobe time and
released modprobe --remove time. the --remove can not happen with a mounted
FS dax or not. So what is exactly "pmem unbind". And if there is a new knob
then make it refuse with a raised refcount.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at