Messages in this thread | | | Date | Tue, 26 Jan 2016 23:07:43 +0200 | From | "Kirill A. Shutemov" <> | Subject | Re: mm: VM_BUG_ON_PAGE(PageTail(page)) in mbind |
| |
On Tue, Jan 26, 2016 at 12:48:23PM -0800, Andrew Morton wrote: > On Tue, 26 Jan 2016 22:28:29 +0200 "Kirill A. Shutemov" <kirill@shutemov.name> wrote: > > > The patch below fixes the issue for me, but this bug makes me wounder how > > many bugs like this we have in kernel... :-/ > > > > Looks like we are too permissive about which VMA is migratable: > > vma_migratable() filters out VMA by VM_IO and VM_PFNMAP. > > I think VM_DONTEXPAND also correlate with VMA which cannot be migrated. > > > > $ git grep VM_DONTEXPAND drivers | grep -v '\(VM_IO\|VM_PFNMAN\)' | wc -l > > 33 > > > > Hm.. :-| > > > > It worth looking on them closely... And I wouldn't be surprised if some > > VMAs without all of these flags are not migratable too. > > > > Sigh.. Any thoughts? > > Sigh indeed. I think that both VM_DONTEXPAND and VM_DONTDUMP are > pretty good signs that mbind() should not be mucking with this vma. If > such a policy sometimes results in mbind failing to set a policy then > that's not a huge loss - something runs a bit slower maybe. > > I mean, we only really expect mbind() to operate against regular old > anon/pagecache memory, yes?
Well, it can work fine too if driver itself uses page tables to find out which pages it should to operate on. I don't think it's a common case.
-- Kirill A. Shutemov
| |