Re: does the semantics of MAP_LOCKED is equal to mlock() function?

From: Michal Hocko
Date: Mon Jan 19 2015 - 06:01:22 EST


On Mon 19-01-15 10:46:56, Michal Hocko wrote:
[...]
> > testcase 2: mmap without MAP_LOCKED flag and the call mlock (memsize = 8192)
> >
> > 185 p = mmap(NULL, memsize, PROT_WRITE | PROT_READ,
> > 186 MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
> > 187 if (p == MAP_FAILED)
> > 188 err(1, "mmap(lock) failed");
> > 189
> > 190 if (mlock(p, memsize) == -1)
> > 191 err(1, "mlock failed")
> >
> > expect: invoke OOM killer.
> > result: invoke OOM killer.

Are you sure about this? memcg OOM killer shouldn't trigger even from
mlock path. It should just lead to ENOMEM. If you see the OOM killer
then it is probably coming from a page fault from a different source.
strace of your test would tell you more.
--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/