Hi, Thank you for give me comment. > On Tue, Nov 17, 2009 at 04:17:07PM +0900, KOSAKI Motohiro wrote: > > Non MM subsystem must not use PF_MEMALLOC. Memory reclaim need few > > memory, anyone must not prevent it. Otherwise the system cause > > mysterious hang-up and/or OOM Killer invokation. > > This code is also on the critical path, for example, if you are swapping > onto a dm device. (There are ways we could reduce its use further as > not every dm ioctl needs to be on the critical path and the buffer size > could be limited for the ioctls that do.) May I ask one additional question? Original code is here. ------------------------------------------------------- /* * Trying to avoid low memory issues when a device is * suspended. */ current->flags |= PF_MEMALLOC; /* * Copy the parameters into kernel space. */ r = copy_params(user, ¶m); current->flags &= ~PF_MEMALLOC; ------------------------------------------------------- but PF_MEMALLOC doesn't gurantee allocation successfull. In your case, mempoll seems better to me. copy_params seems enough small function and we can rewrite it. Why didn't you use mempool? Am I missing something? > But what situations have been causing you trouble? The OOM killer must > generally avoid killing userspace processes that suspend & resume dm > devices, and there are tight restrictions on what those processes > can do safely between suspending and resuming. No. This is theorical issue. but I really want to avoid stress weakness kernel. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel