Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752824AbdFVIGf (ORCPT ); Thu, 22 Jun 2017 04:06:35 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:36326 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751124AbdFVIGb (ORCPT ); Thu, 22 Jun 2017 04:06:31 -0400 Date: Thu, 22 Jun 2017 11:06:28 +0300 From: Cyrill Gorcunov To: Hugh Dickins Cc: Dmitry Safonov , Linus Torvalds , Oleg Nesterov , Andrey Vagin , LKML , Pavel Emelyanov , Andrew Morton , Adrian Reber , Michael Kerrisk Subject: Re: [criu] 1M guard page ruined restore Message-ID: <20170622080628.GI31050@uranus> References: <20170621152256.GC31050@uranus> <20170621155730.GA32554@redhat.com> <20170621160410.GF31050@uranus> <20170621170129.GA32752@redhat.com> <2551ee70-a4b6-4f38-7d3a-4eb2cddc96a5@virtuozzo.com> <20170621173115.GA28723@redhat.com> <8ff61433-f154-6c9e-91b2-1857b5eff90c@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.0 (2017-02-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1751 Lines: 35 On Wed, Jun 21, 2017 at 06:24:18PM -0700, Hugh Dickins wrote: > > > > At this moment, mmap() will no more return address one page lower > > and "guard" is no more a page: > > > > > MAP_GROWSDOWN > > > This flag is used for stacks. It indicates to the kernel virtual > > > memory system that the mapping should extend downward in > > > memory. The return address is one page lower than the memory > > > area that is actually created in the process's virtual address > > > space. Touching an address in the "guard" page below the mapping > > > will cause the mapping to grow by a page. This growth can be > > > repeated until the mapping grows to within a page of the high end > > > of the next lower mapping, at which point touching the "guard" > > > page will result in a SIGSEGV signal. > > > > CC'ing Michael > > That does go into rather more detail than I like to see: I suppose > the man pages on my machines are rather old, and only show the first > two innocuous sentences about MAP_GROWSDOWN. On my fedora24 too :) And I rather wonder why guard page is mentioned here, because as far as I remember the only "cut off a guard page" case was proc/$pid/[s]maps output. mmap() returned exact vma's start address all the time, isn't it? Where the guard page is rather an internal kernel's handling of page faults for growsdown areas. > Michael, v4.12-rc6 enlarges the stack guard gap from one page to 256 > pages (by default). But quite what the man page ought to say will > depend on the outcome of the discussion in the lkp-robot thread. > (Or perhaps it isn't a discussion, but me feeling over-anxious > about how Linus has decided.) Maybe the robot will settle it. Cyrill