Re: [PATCH] mm: make munlock fast when mlock is canceled by sigkill

From: KOSAKI Motohiro
Date: Mon Aug 24 2009 - 00:14:03 EST

> This patch is for making commit 4779280d1e (mm: make get_user_pages()
> interruptible) complete.

commit 4779280d1e (mm: make get_user_pages() interruptible) has never
works as expected since it's born.
IOW, it was totally broken.

This patch is definitely good forward step patch.

>> > @@ -254,6 +254,7 @@ static inline void
>> > mminit_validate_memmodel_limits(unsigned long *start_pfn,
>> >  #define GUP_FLAGS_FORCE                  0x2
>> >  #define GUP_FLAGS_IGNORE_SIGKILL         0x8
>> > +#define GUP_FLAGS_ALLOW_NULL             0x10
>> >
>> I am worried about adding new flag whenever we need it.
>> But I think this case makes sense to me.
>> In addition, I guess ZERO page can also use this flag.
>> Kame. What do you think about it?
> I do welcome this !
> Then, I don't have to take care of mlock/munlock in ZERO_PAGE patch.
> And without this patch, munlock() does copy-on-write just for unpinning memory.
> So, this patch shows some right direction, I think.
> One concern is flag name, ALLOW_NULL sounds not very good.
> I wonder we can remove a hack of FOLL_ANON for core-dump by this flag, too.

Yeah, GUP_FLAGS_NOFAULT is better.

Plus, this patch change __get_user_pages() return value meaning IOW.
after this patch, it can return following value,

return value: 3
pages[0]: hoge-page
pages[1]: null
pages[2]: fuga-page

but, it can be

return value: 2
pages[0]: hoge-page
pages[1]: fuga-page

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at