On Tue 20-01-15 11:23:40, long.wanglong wrote: [...] > hi, Michal Hocko > > sorry for the wrong description in the email. i run the two testcase in > kernel v3.10.63, not > the latest kernel. > > in kernel v3.18, the two testcases can not invoke OOM killer. > > The problem comes from the LTP tests, because the v3.10.61 lts apply the > following patch: > > f8a5117916dd2871c056963bf5ee0d1101c10099 mm: memcg: handle non-error OOM > situations more gracefully > f79d6a468980516cbfb9e01313c846b82b9d2e7e mm: memcg: do not trap chargers with > full callstack on OOM > 7a147e0c45a8fa198ade4128bdcbf8592f48843e mm: memcg: rework and document OOM > waiting and wakeup > 11f34787b50ce71f66b85ad8790beaa5eee3f897 mm: memcg: enable memcg OOM killer > only for user faults > > as you said in: http://marc.info/?l=linux-api&m=142122902613316&w=2 > > " > The primary issue is that mmap doesn't report a failure if MAP_LOCKED fails > to populate the area. Is > this the correct/expected behavior? > " > > There is another problem: > > in kernel v3.10.63 testcase 1 can not invoke OOM, but testcase2 can invoke > OOM.
Both mlock and mmap(MAP_LOCKED) are using the same way to fault pages backing mmaped area so they both are supposed to fail in the same way. Meaning OOM before the above rework and ENOMEM with the change. Maybe both of them are using a different exit paths when something is faulted in and OOM happens for one while not for the other. strace would tell you that. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/