Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-15 Thread David Hildenbrand
On 15.03.21 14:26, David Hildenbrand wrote: On 15.03.21 14:03, Kirill A. Shutemov wrote: On Mon, Mar 15, 2021 at 01:25:40PM +0100, David Hildenbrand wrote: On 15.03.21 13:22, Kirill A. Shutemov wrote: On Mon, Mar 08, 2021 at 05:45:20PM +0100, David Hildenbrand wrote: +

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-15 Thread David Hildenbrand
On 15.03.21 14:03, Kirill A. Shutemov wrote: On Mon, Mar 15, 2021 at 01:25:40PM +0100, David Hildenbrand wrote: On 15.03.21 13:22, Kirill A. Shutemov wrote: On Mon, Mar 08, 2021 at 05:45:20PM +0100, David Hildenbrand wrote: + case -EHWPOISON: /* Skip over any poisoned

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-15 Thread Kirill A. Shutemov
On Mon, Mar 15, 2021 at 01:25:40PM +0100, David Hildenbrand wrote: > On 15.03.21 13:22, Kirill A. Shutemov wrote: > > On Mon, Mar 08, 2021 at 05:45:20PM +0100, David Hildenbrand wrote: > > > + case -EHWPOISON: /* Skip over any poisoned pages. */ > > > +

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-15 Thread David Hildenbrand
On 15.03.21 13:22, Kirill A. Shutemov wrote: On Mon, Mar 08, 2021 at 05:45:20PM +0100, David Hildenbrand wrote: + case -EHWPOISON: /* Skip over any poisoned pages. */ + start += PAGE_SIZE; + continue; Why is it

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-15 Thread Kirill A. Shutemov
On Mon, Mar 08, 2021 at 05:45:20PM +0100, David Hildenbrand wrote: > + case -EHWPOISON: /* Skip over any poisoned pages. */ > + start += PAGE_SIZE; > + continue; Why is it good approach? It's not abvious to me. --

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-10 Thread David Hildenbrand
On 08.03.21 17:45, David Hildenbrand wrote: I. Background: Sparse Memory Mappings When we manage sparse memory mappings dynamically in user space - also sometimes involving MAP_NORESERVE - we want to dynamically populate/ discard memory inside such a sparse memory region. Example users are

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-09 Thread David Hildenbrand
On 09.03.21 08:35, Rolf Eike Beer wrote: diff --git a/mm/internal.h b/mm/internal.h index 9902648f2206..a5c4ed23b1db 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -340,6 +340,9 @@ void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma); #ifdef CONFIG_MMU extern long

Re: [PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-08 Thread Rolf Eike Beer
diff --git a/mm/internal.h b/mm/internal.h index 9902648f2206..a5c4ed23b1db 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -340,6 +340,9 @@ void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma); #ifdef CONFIG_MMU extern long populate_vma_page_range(struct vm_area_struct

[PATCH RFCv2] mm/madvise: introduce MADV_POPULATE_(READ|WRITE) to prefault/prealloc memory

2021-03-08 Thread David Hildenbrand
I. Background: Sparse Memory Mappings When we manage sparse memory mappings dynamically in user space - also sometimes involving MAP_NORESERVE - we want to dynamically populate/ discard memory inside such a sparse memory region. Example users are hypervisors (especially implementing memory