Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6817767pxb; Wed, 17 Feb 2021 14:30:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaCy/GT6TRjL+bt+CRrqkAZBmqJnu0JCfA9d7LdqDaXR10csiwWZUg77tXhA50/9vCSr1R X-Received: by 2002:a17:906:5798:: with SMTP id k24mr1072126ejq.125.1613601031266; Wed, 17 Feb 2021 14:30:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613601031; cv=none; d=google.com; s=arc-20160816; b=yXjLM7XFvdSOndx/vcRj0bgEA0iHhqPIkztm86embr43LRa7VMlXbUIsiQqS9aJVsV VMr4GAdUoLzpbZqjv8cg3o/qWrrsk8BBWhGYFEb1iPs2X/TWi0tHrk6esC2r3UCXhwd2 9ytep34tcrY6a6GLa1PXGln/zh7ToPlqNIif410aI5z26NdnSdxBauPlUKL2pa5lMPxU 6CQYdGn5rwcwOK1viQdvMjAx5biuusNa1VepcPc7nR4CtZgGXZbHDGTtEVUL+gWyhC0C PIAQ4CsaB2pmOigGz/iO+ySnRROO2gZm8WhYWFS5a2ivjd8Pj0lKIPUlqH6omdE3M4Ep bmmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=LPLQZ3gKol9rWgflgDVMSMgsp8q2d5LiQQA0yvbvF4Q=; b=CneaQcBpqgNJsMNFh7b/Ffm3BAtxrfA7Ft1EN925TV4XKrGFjcuKVaK4fHR4h84sYk 4Gy7WOHbPykkeFGYo+0U8kndJ+OQ5Jk1BB/Z9IhDao7/dVrTFDJoxMd93FPZXM+83lGt uSO0t31/mFCYjvSoKDW4VBIV1yZpl5rcBgQdJAfNWyfKrSmSxfG5206ofx8AcA2UJ7cR ZzmscaLoJkh9PCGWrD5H/FG3gGis2/sclVHltEBajXvwK87jQtRdn0VdO4ZLd3/RUGFR 83z9CXZcnTiAtl1ZdErhfixmfhbLdjCoJl8LRbMNKRpv/I5v0AlSk70F55RFp9Cqw2j2 6GCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=korg header.b="zOE7O/Fp"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n12si2521537eja.210.2021.02.17.14.30.08; Wed, 17 Feb 2021 14:30:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=korg header.b="zOE7O/Fp"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232082AbhBQTDf (ORCPT + 99 others); Wed, 17 Feb 2021 14:03:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:50704 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231239AbhBQTDd (ORCPT ); Wed, 17 Feb 2021 14:03:33 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 90D3E6186A; Wed, 17 Feb 2021 19:02:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1613588572; bh=odEQGZsuO+lEqXY7esyTBK2QgwaJ1DoXNXR2BQ1SGlc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zOE7O/FpIEoPbTe+GWOPDp8/ki03sqzNLQavTgdbhGlzxCACNYMYDEhpwElSTFUBL Yfl2GW/J+6CTXv3m9VJE3WvAMVoOeEs9OSFrC0+zD5g5d9qL7KeS4Ny3PlR9JNKEre Mxh3+R1H1GFO9zDdiQ2Egb0nNz/TTDgN7jsz0T9E= Date: Wed, 17 Feb 2021 11:02:52 -0800 From: Andrew Morton To: Mike Kravetz Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Zi Yan , Davidlohr Bueso , "Kirill A . Shutemov" , Andrea Arcangeli , Matthew Wilcox , Oscar Salvador , Joao Martins , stable@vger.kernel.org Subject: Re: [PATCH 1/2] hugetlb: fix update_and_free_page contig page struct assumption Message-Id: <20210217110252.185c7f5cd5a87c3f7b0c0144@linux-foundation.org> In-Reply-To: <20210217184926.33567-1-mike.kravetz@oracle.com> References: <20210217184926.33567-1-mike.kravetz@oracle.com> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 17 Feb 2021 10:49:25 -0800 Mike Kravetz wrote: > page structs are not guaranteed to be contiguous for gigantic pages. The > routine update_and_free_page can encounter a gigantic page, yet it assumes > page structs are contiguous when setting page flags in subpages. > > If update_and_free_page encounters non-contiguous page structs, we can > see “BUG: Bad page state in process …” errors. > > Non-contiguous page structs are generally not an issue. However, they can > exist with a specific kernel configuration and hotplug operations. For > example: Configure the kernel with CONFIG_SPARSEMEM and > !CONFIG_SPARSEMEM_VMEMMAP. Then, hotplug add memory for the area where the > gigantic page will be allocated. > Zi Yan outlined steps to reproduce here [1]. > > [1] https://lore.kernel.org/linux-mm/16F7C58B-4D79-41C5-9B64-A1A1628F4AF2@nvidia.com/ > > Fixes: 944d9fec8d7a ("hugetlb: add support for gigantic page allocation at runtime") June 2014. That's a long lurk time for a bug. I wonder if some later commit revealed it. I guess it doesn't matter a lot, but some -stable kernel maintainers might wonder if they really need this fix...