On 11/02/2018 04:11 PM, Andy Lutomirski wrote:
> On Fri, Nov 2, 2018 at 12:50 PM Waiman Long <[email protected]> wrote:
>> On 11/02/2018 03:44 PM, Dave Hansen wrote:
>>> On 11/2/18 12:40 PM, Waiman Long wrote:
>>>> The 64k+ limit check is kind of arbitrary. So the check is now removed
>>>> to just let expand_stack() decide if a segmentation fault should happen.
>>> With the 64k check removed, what's the next limit that we bump into?  Is
>>> it just the stack_guard_gap space above the next-lowest VMA?
>> I think it is both the stack_guard_gap space above the next lowest VMA
>> and the rlimit(RLIMIT_STACK).
>>
> Did the non-working programs ever work?  Because, if not, I say let them fail.

The program was working before on older kernel. After the backport of
the commit 1be7107fbe18 ("mm: larger stack guard gap, between vmas"),
the program stopped working. I believe it is the removal of the
check_stack_guard_page() function which did expand the stack. So the 64k
check was actually not functional because of the stack expansion before
hand, but now it does.

Anyway, I see the current 64k check a very crude check on an userspace
error. I think there are quite a number of more powerful userspace tools
out there that can do this kind of check more effectively. Kernel isn't
the right place to do that.

Cheers,
Longman


Reply via email to