s a lot smaller than the total amount of struct
pages being mapped.
The altmap path is left alone since it does not support memory savings
based on compound pages devmap.
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
---
mm/page_alloc.c | 17 -
1 file changed, 16 inserti
to the already in use vmemmap_populate(). It
is worth noting that altmap for devmap mappings was there to relieve the
pressure of inordinate amounts of memmap space to map terabytes of pmem.
With compound pages the motivation for altmaps for pmem gets reduced.
Signed-off-by: Joao Martins
Review
In preparation for device-dax for using hugetlbfs compound page tail
deduplication technique, move the comment block explanation into a
common place in Documentation/vm.
Cc: Muchun Song
Cc: Mike Kravetz
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
Reviewed
* as return value,
rather than an hardcoded errno of 0 or -ENOMEM.
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
---
mm/sparse-vmemmap.c | 53 ++---
1 file changed, 36 insertions(+), 17 deletions(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse
tps://lore.kernel.org/linux-mm/20220210193345.23628-1-joao.m.mart...@oracle.com/
[6]
https://lore.kernel.org/linux-mm/20210827145819.16471-15-joao.m.mart...@oracle.com/
[7]
https://lore.kernel.org/linux-mm/20220223194807.12070-1-joao.m.mart...@oracle.com/
[8]
https://lore.kernel.org/linux-mm/
/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
include/linux/memory_hotplug.h | 5 -
include/linux/mm.h | 3 ++-
mm/memory_hotplug.c| 3 ++-
mm/sparse-vmemmap.c| 3 ++-
mm/sparse.c| 26
On 3/10/22 10:32, Mike Rapoport wrote:
> Hi,
>
> On Mon, Mar 07, 2022 at 12:24:55PM +0000, Joao Martins wrote:
>> In preparation for device-dax for using hugetlbfs compound page tail
>> deduplication technique, move the comment block explanation into a
>> commo
/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
include/linux/memory_hotplug.h | 5 -
include/linux/mm.h | 3 ++-
mm/memory_hotplug.c| 3 ++-
mm/sparse-vmemmap.c| 3 ++-
mm/sparse.c| 26
s a lot smaller than the total amount of struct
pages being mapped.
The altmap path is left alone since it does not support memory savings
based on compound pages devmap.
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
---
mm/page_alloc.c | 17 -
1 file changed, 16 inserti
In preparation for device-dax for using hugetlbfs compound page tail
deduplication technique, move the comment block explanation into a
common place in Documentation/vm.
Cc: Muchun Song
Cc: Mike Kravetz
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
Reviewed
to the already in use vmemmap_populate(). It
is worth noting that altmap for devmap mappings was there to relieve the
pressure of inordinate amounts of memmap space to map terabytes of pmem.
With compound pages the motivation for altmaps for pmem gets reduced.
Signed-off-by: Joao Martins
Review
57-1-joao.m.mart...@oracle.com/
[4]
https://lore.kernel.org/linux-mm/20210827145819.16471-1-joao.m.mart...@oracle.com/
[5]
https://lore.kernel.org/linux-mm/20220210193345.23628-1-joao.m.mart...@oracle.com/
[6]
https://lore.kernel.org/linux-mm/20210827145819.16471-15-joao.m.mart...@oracle.com/
[
* as return value,
rather than an hardcoded errno of 0 or -ENOMEM.
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
---
mm/sparse-vmemmap.c | 53 ++---
1 file changed, 36 insertions(+), 17 deletions(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse
On 3/4/22 15:21, Jonathan Corbet wrote:
> Joao Martins writes:
>
>> In preparation for device-dax for using hugetlbfs compound page tail
>> deduplication technique, move the comment block explanation into a
>> common place in Documentation/vm.
>>
>>
On 3/4/22 03:27, Muchun Song wrote:
> On Fri, Mar 4, 2022 at 5:33 AM Joao Martins wrote:
>>
>> Currently memmap_init_zone_device() ends up initializing 32768 pages
>> when it only needs to initialize 128 given tail page reuse. That
>> number is worse with 1GB compound p
On 3/4/22 03:09, Muchun Song wrote:
> On Fri, Mar 4, 2022 at 5:33 AM Joao Martins wrote:
>> A compound devmap is a dev_pagemap with @vmemmap_shift > 0 and it
>> means that pages are mapped at a given huge page alignment and utilize
>> uses compound pages as opposed to o
In preparation for device-dax for using hugetlbfs compound page tail
deduplication technique, move the comment block explanation into a
common place in Documentation/vm.
Cc: Muchun Song
Cc: Mike Kravetz
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
Reviewed
to the already in use vmemmap_populate(). It
is worth noting that altmap for devmap mappings was there to relieve the
pressure of inordinate amounts of memmap space to map terabytes of pmem.
With compound pages the motivation for altmaps for pmem gets reduced.
Signed-off-by: Joao Martins
---
s a lot smaller than the total amount of struct
pages being mapped.
The altmap path is left alone since it does not support memory savings
based on compound pages devmap.
Signed-off-by: Joao Martins
---
mm/page_alloc.c | 17 -
1 file changed, 16 insertions(+), 1 deletion(-)
d
* as return value,
rather than an hardcoded errno of 0 or -ENOMEM.
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
---
mm/sparse-vmemmap.c | 53 ++---
1 file changed, 36 insertions(+), 17 deletions(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse
/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
include/linux/memory_hotplug.h | 5 -
include/linux/mm.h | 3 ++-
mm/memory_hotplug.c| 3 ++-
mm/sparse-vmemmap.c| 3 ++-
mm/sparse.c| 26
cle.com/
[5]
https://lore.kernel.org/linux-mm/20220210193345.23628-1-joao.m.mart...@oracle.com/
[6]
https://lore.kernel.org/linux-mm/20210827145819.16471-15-joao.m.mart...@oracle.com/
[7]
https://lore.kernel.org/linux-mm/20220223194807.12070-1-joao.m.mart...@oracle.com/
Joao Martins (5):
mm/sp
On 2/24/22 15:41, Muchun Song wrote:
> On Thu, Feb 24, 2022 at 3:48 AM Joao Martins
> wrote:
>>
>> Currently memmap_init_zone_device() ends up initializing 32768 pages
>> when it only needs to initialize 128 given tail page reuse. That
>> number is worse with 1GB
On 2/24/22 05:57, Muchun Song wrote:
> On Thu, Feb 24, 2022 at 3:48 AM Joao Martins
> wrote:
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -6653,6 +6653,20 @@ static void __ref __init_zone_device_page(struct page
>> *page, unsigned long pfn,
>>
On 2/24/22 05:54, Muchun Song wrote:
> On Thu, Feb 24, 2022 at 3:48 AM Joao Martins
> wrote:
>> diff --git a/include/linux/mm.h b/include/linux/mm.h
>> index 5f549cf6a4e8..b0798b9c6a6a 100644
>> --- a/include/linux/mm.h
>> +++ b/include/linux/mm.h
On 2/24/22 03:10, Muchun Song wrote:
> On Thu, Feb 24, 2022 at 3:48 AM Joao Martins
> wrote:
>>
>> In preparation for describing a memmap with compound pages, move the
>> actual pte population logic into a separate function
>> vmemmap_populate_address() and have vme
On 2/24/22 03:02, Muchun Song wrote:
> On Thu, Feb 24, 2022 at 3:48 AM Joao Martins
> wrote:
>>
>> In support of using compound pages for devmap mappings, plumb the pgmap
>> down to the vmemmap_populate implementation. Note that while altmap is
>> retrievable
In preparation for device-dax for using hugetlbfs compound page tail
deduplication technique, move the comment block explanation into a
common place in Documentation/vm.
Cc: Muchun Song
Cc: Mike Kravetz
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
Reviewed
to the already in use vmemmap_populate(). It
is worth noting that altmap for devmap mappings was there to relieve the
pressure of inordinate amounts of memmap space to map terabytes of pmem.
With compound pages the motivation for altmaps for pmem gets reduced.
Signed-off-by: Joao Martins
---
/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
include/linux/memory_hotplug.h | 5 -
include/linux/mm.h | 3 ++-
mm/memory_hotplug.c| 3 ++-
mm/sparse-vmemmap.c| 3 ++-
mm/sparse.c| 26 --
5 files
return value,
rather than an hardcoded errno of 0 or -ENOMEM.
Signed-off-by: Joao Martins
---
mm/sparse-vmemmap.c | 46 -
1 file changed, 29 insertions(+), 17 deletions(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
index c506f77cff23
ernel.org/linux-mm/20210617184507.3662-1-joao.m.mart...@oracle.com/
[3]
https://lore.kernel.org/linux-mm/20210714193542.21857-1-joao.m.mart...@oracle.com/
[4]
https://lore.kernel.org/linux-mm/20210827145819.16471-1-joao.m.mart...@oracle.com/
[5]
https://lore.kernel.org/linux-mm/20220210193345.
s a lot smaller that the total amount of struct
pages being mapped.
The altmap path is left alone since it does not support memory savings
based on compound pages devmap.
Signed-off-by: Joao Martins
---
mm/page_alloc.c | 16 +++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --
On 2/12/22 10:08, Muchun Song wrote:
> On Fri, Feb 11, 2022 at 8:37 PM Joao Martins
> wrote:
>> On 2/11/22 07:54, Muchun Song wrote:
>>> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins
>>> wrote:
>>>> @@ -609,7 +624,8 @@ pgd_t * __meminit vmemmap_pgd_p
On 2/12/22 14:49, Muchun Song wrote:
> On Sat, Feb 12, 2022 at 6:08 PM Muchun Song wrote:
>> On Fri, Feb 11, 2022 at 8:37 PM Joao Martins
>> wrote:
>>> On 2/11/22 07:54, Muchun Song wrote:
>>>> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins
>>>>
On 2/11/22 05:07, Muchun Song wrote:
> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins
> wrote:
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index cface1d38093..c10df2fd0ec2 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -
On 2/11/22 07:54, Muchun Song wrote:
> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins
> wrote:
> [...]
>> pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int
>> node,
>> -
On 2/11/22 08:03, Muchun Song wrote:
> On Fri, Feb 11, 2022 at 3:34 AM Joao Martins
> wrote:
>>
>> In support of using compound pages for devmap mappings, plumb the pgmap
>> down to the vmemmap_populate implementation. Note that while altmap is
>> retrievable from
s a lot smaller that the total amount of struct
pages being mapped.
The altmap path is left alone since it does not support memory savings
based on compound pages devmap.
Signed-off-by: Joao Martins
---
mm/page_alloc.c | 16 +++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --
In preparation for device-dax for using hugetlbfs compound page tail
deduplication technique, move the comment block explanation into a
common place in Documentation/vm.
Cc: Muchun Song
Cc: Mike Kravetz
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Muchun Song
Reviewed
to the already in use vmemmap_populate(). It
is worth noting that altmap for devmap mappings was there to relieve the
pressure of inordinate amounts of memmap space to map terabytes of pmem.
With compound pages the motivation for altmaps for pmem gets reduced.
Signed-off-by: Joao Martins
---
In preparation for describing a memmap with compound pages, move the
actual pte population logic into a separate function
vmemmap_populate_address() and have vmemmap_populate_basepages() walk
through all base pages it needs to populate.
Signed-off-by: Joao Martins
---
mm/sparse-vmemmap.c | 51
@oracle.com/
[3]
https://lore.kernel.org/linux-mm/20210617184507.3662-1-joao.m.mart...@oracle.com/
[4]
https://lore.kernel.org/linux-mm/20210827145819.16471-1-joao.m.mart...@oracle.com/
Joao Martins (5):
mm/sparse-vmemmap: add a pgmap argument to section activation
mm/sparse-vmemmap: refactor cor
/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
include/linux/memory_hotplug.h | 5 -
include/linux/mm.h | 3 ++-
mm/memory_hotplug.c| 3 ++-
mm/sparse-vmemmap.c| 3 ++-
mm/sparse.c| 26 --
5 files
art...@oracle.com/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
index 914368164e05..6ef8f374e27b 100644
--- a/drivers/dax/device.c
+++ b/drivers/dax/device.c
After moving the page mapping to be set prior to pte insertion, the pfn
in dev_dax_huge_fault() no longer is necessary. Remove it, as well as
the @pfn argument passed to the internal fault handler helpers.
Suggested-by: Christoph Hellwig
Signed-off-by: Joao Martins
---
drivers/dax/device.c
page mapping is set once but
cleared when the struct pages are removed/freed (i.e. after
{devm_}memunmap_pages()).
Suggested-by: Jason Gunthorpe
Signed-off-by: Joao Martins
---
drivers/dax/device.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/dax
Move initialization of page->mapping into a separate helper.
This is in preparation to move the mapping set to be prior
to inserting the page table entry and also for tidying up
compound page handling into one helper.
Signed-off-by: Joao Martins
---
drivers/dax/device.c |
take the
opportunity to document the differences between static and dynamic da
regions.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/bus.c| 32
drivers/dax/bus.h| 1 +
drivers/dax/device.c | 29 +
3
Rather than calculating @pgoff manually, switch to ALIGN() instead.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
Move struct page init to an helper function __init_zone_device_page().
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
mm/page_alloc.c | 74 +++--
1 file changed
Use the struct_size() helper for the size of a struct with variable array
member at the end, rather than manually calculating it.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/device.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/dax
https://lore.kernel.org/linux-mm/20211018182559.gc3686...@ziepe.ca/
[6]
https://lore.kernel.org/linux-mm/499043a0-b3d8-7a42-4aee-84b81f5b6...@oracle.com/
[7]
https://lore.kernel.org/linux-mm/20210827145819.16471-9-joao.m.mart...@oracle.com/
[8]
https://lore.kernel.org/linux-mm/20210827145819.16
memory_failure_dev_pagemap() to keep working.
Reported-by: Jane Chu
Signed-off-by: Joao Martins
Reviewed-by: Naoya Horiguchi
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm/memory-failure.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index
Split the utility function prep_compound_page() into head and tail
counterparts, and use them accordingly.
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Acked-by: Mike Kravetz
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm
_page") removed set_page_count() because the
setting of page ref count to zero was redundant. devmap pages don't come
from page allocator though and only head page refcount is used for
compound pages, hence initialize tail page count to zero.
Signed-off-by: Joao Martins
Reviewed-by: Dan William
On 11/29/21 15:49, Joao Martins wrote:
> On 11/29/21 07:32, Christoph Hellwig wrote:
>> On Fri, Nov 26, 2021 at 06:39:39PM +0000, Joao Martins wrote:
>> Aso it seems like pfn is only an input
>> parameter now and doesn't need to be passed by reference.
>>
> It&
On 11/29/21 07:32, Christoph Hellwig wrote:
> On Fri, Nov 26, 2021 at 06:39:39PM +0000, Joao Martins wrote:
>> @@ -230,23 +235,18 @@ static vm_fault_t dev_dax_huge_fault(struct vm_fault
>> *vmf,
>> id = dax_read_lock();
>> switch (pe_size)
On 11/25/21 11:42, Joao Martins wrote:
> On 11/24/21 19:10, Joao Martins wrote:
>> @@ -245,8 +251,6 @@ static vm_fault_t dev_dax_huge_fault(struct vm_fault
>> *vmf,
>> rc = VM_FAULT_SIGBUS;
>> }
>>
>> -if (rc == VM_FAULT_NOPAGE)
&
On 11/24/21 19:10, Joao Martins wrote:
> Normally, the @page mapping is set prior to inserting the page into a
> page table entry. Make device-dax adhere to the same ordering, rather
> than setting mapping after the PTE is inserted.
>
> The address_space never changes and it is al
On 11/25/21 06:11, Christoph Hellwig wrote:
> On Wed, Nov 24, 2021 at 07:09:59PM +0000, Joao Martins wrote:
>> Add a new @vmemmap_shift property for struct dev_pagemap which specifies
>> that a
>> devmap is composed of a set of compound pages of order @vmemmap_shift,
>&g
art...@oracle.com/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
index 0ef9fecec005..9b51108aea91 100644
--- a/drivers/dax/device.c
+++ b/drivers/dax/device.c
page mapping is set once but
cleared when the struct pages are removed/freed (i.e. after
{devm_}memunmap_pages()).
Suggested-by: Jason Gunthorpe
Signed-off-by: Joao Martins
---
drivers/dax/device.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/dax/device.c
Use the struct_size() helper for the size of a struct with variable array
member at the end, rather than manually calculating it.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/device.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/dax
Move initialization of page->mapping into a separate helper.
This is in preparation to move the mapping set to be prior
to inserting the page table entry and also for tidying up
compound page handling into one helper.
Signed-off-by: Joao Martins
---
drivers/dax/device.c |
take the
opportunity to document the differences between static and dynamic da
regions.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/bus.c| 32
drivers/dax/bus.h| 1 +
drivers/dax/device.c | 29 +
3
Rather than calculating @pgoff manually, switch to ALIGN() instead.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
Move struct page init to an helper function __init_zone_device_page().
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
mm/page_alloc.c | 74 +++--
1 file changed
@oracle.com/
[7]
https://lore.kernel.org/linux-mm/20210827145819.16471-9-joao.m.mart...@oracle.com/
[8]
https://lore.kernel.org/linux-mm/20210827145819.16471-13-joao.m.mart...@oracle.com/
[9]
https://lore.kernel.org/linux-mm/2022150824.11028-1-joao.m.mart...@oracle.com/
Joao Martins (10)
_page") removed set_page_count() because the
setting of page ref count to zero was redundant. devmap pages don't come
from page allocator though and only head page refcount is used for
compound pages, hence initialize tail page count to zero.
Signed-off-by: Joao Martins
Reviewed-by: Dan William
Split the utility function prep_compound_page() into head and tail
counterparts, and use them accordingly.
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Acked-by: Mike Kravetz
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm
memory_failure_dev_pagemap() to keep working.
Reported-by: Jane Chu
Signed-off-by: Joao Martins
Reviewed-by: Naoya Horiguchi
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm/memory-failure.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index
On 11/19/21 19:53, Jason Gunthorpe wrote:
> On Fri, Nov 19, 2021 at 07:26:44PM +0000, Joao Martins wrote:
>> On 11/19/21 16:55, Jason Gunthorpe wrote:
>>> On Fri, Nov 19, 2021 at 04:12:18PM +, Joao Martins wrote:
>>>
>>>>> Dan, any thoughts (se
On 11/19/21 16:55, Jason Gunthorpe wrote:
> On Fri, Nov 19, 2021 at 04:12:18PM +0000, Joao Martins wrote:
>
>>> Dan, any thoughts (see also below) ? You probably hold all that
>>> history since its inception on commit 2232c6382a4 ("device-dax: Enable
>&g
On 11/16/21 16:38, Joao Martins wrote:
> On 11/15/21 17:49, Jason Gunthorpe wrote:
>> On Mon, Nov 15, 2021 at 01:11:32PM +0100, Joao Martins wrote:
>>> On 11/12/21 16:34, Jason Gunthorpe wrote:
>>>> On Fri, Nov 12, 2021 at 04:08:24PM +0100, Joao Martins wrote:
On 11/17/21 10:43, Christoph Hellwig wrote:
> On Fri, Nov 12, 2021 at 04:08:24PM +0100, Joao Martins wrote:
>> Use the newly added compound devmap facility which maps the assigned dax
>> ranges as compound pages at a page size of @align.
>>
>> dax devices are created wit
On 11/17/21 10:37, Christoph Hellwig wrote:
>> +bool static_dev_dax(struct dev_dax *dev_dax)
>> +{
>> +return is_static(dev_dax->region);
>> +}
>> +EXPORT_SYMBOL_GPL(static_dev_dax);
>
> This function would massively benefit from documentic what a static
> DAX region is and why someone woul
On 11/17/21 10:37, Christoph Hellwig wrote:
>> +pgmap = devm_kzalloc(
>> + dev, struct_size(pgmap, ranges, dev_dax->nr_range -
>> 1),
>> + GFP_KERNEL);
>
> Keeping the dev argument on the previous line would not only make this
> much more re
On 11/15/21 17:49, Jason Gunthorpe wrote:
> On Mon, Nov 15, 2021 at 01:11:32PM +0100, Joao Martins wrote:
>> On 11/12/21 16:34, Jason Gunthorpe wrote:
>>> On Fri, Nov 12, 2021 at 04:08:24PM +0100, Joao Martins wrote:
>>>> diff --git a/drivers/dax/device.c b/d
On 11/12/21 16:34, Jason Gunthorpe wrote:
> On Fri, Nov 12, 2021 at 04:08:24PM +0100, Joao Martins wrote:
>
>> diff --git a/drivers/dax/device.c b/drivers/dax/device.c
>> index a65c67ab5ee0..0c2ac97d397d 100644
>> +++ b/drivers/dax/device.c
>> @@ -192,
On 11/12/21 16:40, Jason Gunthorpe wrote:
> On Fri, Nov 12, 2021 at 04:08:16PM +0100, Joao Martins wrote:
>
>> This series converts device-dax to use compound pages, and moves away from
>> the
>> 'struct page per basepage on PMD/PUD' that is done today. Doi
art...@oracle.com/
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 57 ++--
1 file changed, 44 insertions(+), 13 deletions(-)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
index a65c67ab5ee0..0c2ac97d397d 100644
ested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/bus.c| 14 ++
drivers/dax/bus.h| 1 +
drivers/dax/device.c | 26 +++---
3 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
index 6cc4da4
Rather than calculating @pgoff manually, switch to ALIGN() instead.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
drivers/dax/device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/dax/device.c b/drivers/dax/device.c
Use the struct_size() helper for the size of a struct with variable array
member at the end, rather than manually calculating it.
Suggested-by: Dan Williams
Signed-off-by: Joao Martins
---
drivers/dax/device.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/dax
mm/20210827145819.16471-1-joao.m.mart...@oracle.com/
[5] https://lore.kernel.org/linux-mm/20211018182559.gc3686...@ziepe.ca/
[6]
https://lore.kernel.org/linux-mm/499043a0-b3d8-7a42-4aee-84b81f5b6...@oracle.com/
[7]
https://lore.kernel.org/linux-mm/20210827145819.16471-9-joao.m.mart...@oracl
_page") removed set_page_count() because the
setting of page ref count to zero was redundant. devmap pages don't come
from page allocator though and only head page refcount is used for
compound pages, hence initialize tail page count to zero.
Signed-off-by: Joao Martins
Reviewed-by: Dan William
memory_failure_dev_pagemap() to keep working.
Reported-by: Jane Chu
Signed-off-by: Joao Martins
Reviewed-by: Naoya Horiguchi
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm/memory-failure.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index
Split the utility function prep_compound_page() into head and tail
counterparts, and use them accordingly.
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Acked-by: Mike Kravetz
Reviewed-by: Dan Williams
Reviewed-by: Muchun Song
---
mm
Move struct page init to an helper function __init_zone_device_page().
This is in preparation for sharing the storage for compound page
metadata.
Signed-off-by: Joao Martins
Reviewed-by: Dan Williams
---
mm/page_alloc.c | 74 +++--
1 file changed
On 11/5/21 16:46, Dan Williams wrote:
> On Fri, Nov 5, 2021 at 5:10 AM Joao Martins wrote:
>>
>> On 11/5/21 00:31, Dan Williams wrote:
>>> On Fri, Aug 27, 2021 at 7:59 AM Joao Martins
>>> wrote:
>>>>
>>>> Right now, only static dax regio
On 11/5/21 12:09, Joao Martins wrote:
> On 11/5/21 00:31, Dan Williams wrote:
>> On Fri, Aug 27, 2021 at 7:59 AM Joao Martins
>> wrote:
>>>
>>> Right now, only static dax regions have a valid @pgmap pointer in its
>>> struct dev_dax. Dynamic dax case h
On 11/5/21 00:38, Dan Williams wrote:
> On Fri, Aug 27, 2021 at 7:59 AM Joao Martins
> wrote:
>>
>> Use the newly added compound devmap facility which maps the assigned dax
>> ranges as compound pages at a page size of @align. Currently, this means,
>> that region/
On 11/5/21 00:31, Dan Williams wrote:
> On Fri, Aug 27, 2021 at 7:59 AM Joao Martins
> wrote:
>>
>> Right now, only static dax regions have a valid @pgmap pointer in its
>> struct dev_dax. Dynamic dax case however, do not.
>>
>> In preparation for device-da
On 10/13/21 20:43, Jason Gunthorpe wrote:
> On Wed, Oct 13, 2021 at 08:18:08PM +0100, Joao Martins wrote:
>> On 10/13/21 18:41, Jason Gunthorpe wrote:
>>> On Mon, Oct 11, 2021 at 04:53:29PM +0100, Joao Martins wrote:
>>>> On 10/8/21 12:54, Jason Gunthorpe wrote:
&
On 10/13/21 18:41, Jason Gunthorpe wrote:
> On Mon, Oct 11, 2021 at 04:53:29PM +0100, Joao Martins wrote:
>> On 10/8/21 12:54, Jason Gunthorpe wrote:
>
>>> The only optimization that might work here is to grab the head, then
>>> compute the extent of tail pages and
On 10/8/21 12:54, Jason Gunthorpe wrote:
> On Fri, Aug 27, 2021 at 03:58:13PM +0100, Joao Martins wrote:
>> @@ -2252,16 +2265,25 @@ static int __gup_device_huge(unsigned long pfn,
>> unsigned long addr,
>> ret = 0;
>>
On 9/30/21 04:01, Alistair Popple wrote:
> On Thursday, 30 September 2021 5:34:05 AM AEST Jason Gunthorpe wrote:
>> On Wed, Sep 29, 2021 at 12:50:15PM +0100, Joao Martins wrote:
>>
>>>> If the get_dev_pagemap has to remain then it just means we have to
>>>>
On 9/28/21 19:01, Jason Gunthorpe wrote:
> On Thu, Sep 23, 2021 at 05:51:04PM +0100, Joao Martins wrote:
>> So ... if pgmap accounting was removed from gup-fast then this patch
>> would be a lot simpler and we could perhaps just fallback to the regular
>> hugepage case (TH
On 8/31/21 6:05 PM, Jason Gunthorpe wrote:
> On Tue, Aug 31, 2021 at 01:34:04PM +0100, Joao Martins wrote:
>> On 8/30/21 2:07 PM, Jason Gunthorpe wrote:
>>> On Fri, Aug 27, 2021 at 07:34:54PM +0100, Joao Martins wrote:
>>>> On 8/27/21 5:25 PM, Jason Gunthorpe wrote:
1 - 100 of 121 matches
Mail list logo