Messages in this thread | | | Date | Wed, 4 Nov 2015 11:16:24 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH v2 01/13] mm: support madvise(MADV_FREE) |
| |
Hi Minchan,
On (11/04/15 10:25), Minchan Kim wrote: [..] >+static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr, >+ unsigned long end, struct mm_walk *walk) >+ ... > + if (pmd_trans_unstable(pmd)) > + return 0;
I think it makes sense to update pmd_trans_unstable() and pmd_none_or_trans_huge_or_clear_bad() comments in asm-generic/pgtable.h Because they explicitly mention MADV_DONTNEED only. Just a thought.
> @@ -379,6 +502,14 @@ madvise_vma(struct vm_area_struct *vma, struct vm_area_struct **prev, > return madvise_remove(vma, prev, start, end); > case MADV_WILLNEED: > return madvise_willneed(vma, prev, start, end); > + case MADV_FREE: > + /* > + * XXX: In this implementation, MADV_FREE works like ^^^^ XXX
> + * MADV_DONTNEED on swapless system or full swap. > + */ > + if (get_nr_swap_pages() > 0) > + return madvise_free(vma, prev, start, end); > + /* passthrough */
-ss
| |