Messages in this thread | | | Date | Wed, 6 Jun 2007 00:48:56 -0700 (PDT) | From | David Rientjes <> | Subject | Re: [patch] cpusets: do not allow TIF_MEMDIE tasks to allocate globally |
| |
On Wed, 6 Jun 2007, Paul Jackson wrote:
> Seems like that mlock code is able then to get great globs of memory > without returning to user space ... perhaps that's where the fix > should be ... that code should quit chewing up memory if it's > marked MEMDIE or some such? >
That's one case. Are there others?
The TIF_MEMDIE exception in cpuset_zone_allowed_softwall() allowed this problem in mlock(). If it had not been allowed to allocate anywhere based simply on the zonelist ordering, the mlock iteration would break because it could not handle the fault.
Thus, at the least, we should make sure that memory is not allocated outside of a task's mems_allowed unless we do sanity checks against gfp_mask in the TIF_MEMDIE case via cpuset_zone_allowed_softwall() to make sure a rouge application doesn't cause the same trouble. That is, unless you can guarantee this type of problem will not happen again through any other means. The logic needs to be with the TIF_MEMDIE exception to grant access to memory outside the cpuset only when it is relevant to the OOM killed task's prompt exit.
David - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |