Re: [PATCH][V3]Make get_user_pages interruptible

From: Paul Menage
Date: Mon Nov 24 2008 - 15:03:07 EST


On Fri, Nov 21, 2008 at 5:31 PM, Ying Han <yinghan@xxxxxxxxxx> wrote:
> From: Paul Menage <menage@xxxxxxxxxx>

This patch is getting further and further from my original internal
changes, so I'm not sure that a From: line from me is appropriate.

> */
> - if (unlikely(test_tsk_thread_flag(tsk, TIF_MEMDIE)))
> - return i ? i : -ENOMEM;
> + if (unlikely(sigkill_pending(tsk)))
> + return i ? i : -ERESTARTSYS;

You've changed the check from sigkill_pending(current) to sigkill_pending(tsk).

I originally made that sigkill_pending(current) since we want to avoid
tasks entering an unkillable state just because they're doing
get_user_pages() on a system that's short of memory. Admittedly for
the main case that we care about, mlock() (or an mmap() with
MCL_FUTURE set) then tsk==current, but philosophically it seems to me
to be more correct to do the check against current than tsk, since
current is the thing that's actually allocating the memory. But maybe
it would be better to check both?

Paul
--
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/