From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C179C6FA8F for ; Wed, 30 Aug 2023 03:24:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 87834680002; Tue, 29 Aug 2023 23:24:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 828E38E000B; Tue, 29 Aug 2023 23:24:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71751680002; Tue, 29 Aug 2023 23:24:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 621138E000B for ; Tue, 29 Aug 2023 23:24:38 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2C62840491 for ; Wed, 30 Aug 2023 03:24:38 +0000 (UTC) X-FDA: 81179328636.14.B412494 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf10.hostedemail.com (Postfix) with ESMTP id EC0DBC0019 for ; Wed, 30 Aug 2023 03:24:35 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ah7a8XAe; dmarc=none; spf=none (imf10.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693365876; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oNvnXO07Rwkegf1zt9eCJPkOO0J/3P+q6I5X1kBu2TE=; b=BUermfHKgocfarxvstJ8x4Grt518WeMSORMC5QJ9jml2hMIWliH9hL1UTSHs1W40x+tjaJ zhUXBQzSdn3I7opc9XK+2ely7tESbnOTitqqa6f5CUsr81TqN/QXn0pgcyy3gmus5DrYO7 akFD0yVy6tpFCT/QrHiasSs0gJU3+7Q= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ah7a8XAe; dmarc=none; spf=none (imf10.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693365876; a=rsa-sha256; cv=none; b=egkBLYBsowsEnRrsz02t+6HLPbD7X0WXPxjigjh8/OUVP03cLo7BE2/Se1aEI/7IHsFYyV 092JneGeXynrfPzQl4hWabfTJ92/+5mD6zecFVMeLJV8Cvs0Xa28366UrgzEzqhdWdEDHd JpWxwi0YRm3COFdtKSDFMHhDnINneQY= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=oNvnXO07Rwkegf1zt9eCJPkOO0J/3P+q6I5X1kBu2TE=; b=ah7a8XAekVCtIlWVVydgHbN5Xy zdlPIXS7LZ6eeaP5CqURZFZabefgSkFVv8lLCdfjW49mF59UeOse+2I8nt0g85NAi/aMXTAfJpgs7 kzuFSX2516YLzN3hU93+elZswyb4i6wl+QvXP7I80+qrpqM5N37/L7MYDeLfngsB9ksWgi2z/4ekn YR8jYM1TUbk72bRUWmr86emsCmQMFBnkyaRy1IpgI8ZAc5S7e6XXpjpV7U1PkxFnvYxqFrkuwurRL csd+MNwAK6q1IbePisPus4d4Lms0V7xMzCwSewa4r8puNd+Iiy//957XuzhfJxpC+t3TVw1cX1jnw O0+7Rezg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qbBom-00APwj-K4; Wed, 30 Aug 2023 03:24:32 +0000 Date: Wed, 30 Aug 2023 04:24:32 +0100 From: Matthew Wilcox To: Anshuman Khandual Cc: linux-mm@kvack.org, Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/mmap: Tighten up cmdline_parse_stack_guard_gap() Message-ID: References: <20230828052212.748872-1-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: EC0DBC0019 X-Stat-Signature: anxqc8pacodw1fmn51ch8r13o695a5fr X-Rspam-User: X-HE-Tag: 1693365875-277115 X-HE-Meta: U2FsdGVkX19u7Uh/vghuOCF7XPJB3NCM5QToeW4Ugdkqcfhptl4On0uS3ApiQJoLLBuGDoL5flkDZjrCp/cWFX8Ib/6XFjQOYzKmAfy5pqGLzmrV9CNCrqI1zY/XAtpQdvYYK/sIkNpg9OGJ/XtWBxzDVRKYkhLtSQ64vpegxocjSy4K/gDXghGY2CkStUOK5h9IlrL/bw4YyerUq0Xbkq/pJic1PBV36NuRi+sv8d5KIiRJxpuvTD6vfNX5IpqJaZ/TB68L1Mao7IbCUKJtPoOjP+IGkMuxmg6ckRLf6UkH2pn/ud9YMgXLBkLnnOZqfnSFc5WJdaKgQ4IbdUpVTvAXm4RuWqLJ/WQ3YVfGL3zd2JfCfAgTNw8JwtqUqRKL3FkiqoY2CG6zSvZhHf2sRCb0CrA5/bGyRxZNaudllQSVdjUXFV2zJT7QMEc3BE0Cj9f1++T8EkXyO1xVJV+n/eaRtFjRRcBEGALl5HomSfPaTFsMAR2vPkCwNHhQcctA8GifEwUghsLeynLApeIdOxdyuqxmRYiFoOSdbbCMg9GeSZUGV0Cef9jUhbWk1UN5yuDFSQrMV0OtaBUNAxkQqY/wSCfzdbgFXUwzNMy37PrDrxYOdkzh4mwkfQ/K4ILb4kowoDko38AkdXnn1SLHdR8y5iYiUC0BIlcJh9DB1X3CSuqWQ5xtlzM5Mr+ifXk5pEZWFd+5rnuGzXuG0/xMaB8k7YLTtGy5NcognuPENack73qPvz+q5UZ1lBvoGor2D/1AkJHIuVG8rHOXB8/CqEjb7qMqPqjHHh/h+Kt0NBEsZaMmD1RJ+FnkzCqnGRwM8qsBKfAnwiirbn06pvpBpOjD9e3O6AEVc8D7BDTPYIORldBb3DALyXp3mimiYr5UUq3dk47ZAcWOgn8B1X5W1z4dtnBGH7OJZbMRQqYqqGD3jTBzZFNmozV/YzzNdYNu7wt3yHyvrB232UeEnV5 aDD6a9ua /n97/sjvfmFll4Ceh9kvYjCD7q2YxfT56HFQs0FY+Hwrmanx/uVFcx4TGTSx8SA7nFUfiraLfGk259wH6Q1OArP/U99sXjMadqrrsHjg8FDs7PsAPIcCwOysjq+L4MTVLzXx41azg5hXxWfgiAR4H8yYQzYm2NHx3wWCSiNRU95GVD0BwBY+qUshosg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Aug 30, 2023 at 08:47:12AM +0530, Anshuman Khandual wrote: > > > On 8/29/23 18:21, Matthew Wilcox wrote: > > On Mon, Aug 28, 2023 at 10:52:12AM +0530, Anshuman Khandual wrote: > >> -static int __init cmdline_parse_stack_guard_gap(char *p) > >> +static int __init cmdline_parse_stack_guard_gap(char *str) > >> { > >> unsigned long val; > >> - char *endptr; > >> > >> - val = simple_strtoul(p, &endptr, 10); > >> - if (!*endptr) > >> - stack_guard_gap = val << PAGE_SHIFT; > >> + if (!str) > >> + return 0; > > > > Please explain how this function can be called with a NULL pointer. > > This is an additional check just in case. We have similar constructs > in the following __setup() functions as well. In case of _what_? Somebody goes insane and decides to start calling __setup functions with NULL pointers? We don't test "Did the VFS call this filesystem with a NULL inode pointer" because that would make ZERO sense. Defensive programming doesn't need to defend against an insane kernel core. > __setup("hashdist=", set_hashdist) > __setup("numa_balancing=", setup_numabalancing) > __setup("transparent_hugepage=", setup_transparent_hugepage) Those should have this stupid NULL check removed. > > Now you've removed the abillity for someone to say stack_guard_gap=0, > > which seems potentially useful. > > In that case, should the following two scenarios be differentiated ? > > * stack_guard_gap= - Retains DEFAULT_STACK_GUARD_GAP > * stack_guard_gap=0 - Changes to 0 pages I don't know. You appear to have run into the scenario where 'stack_guard_gap=' was specified. What did you expect it to do?