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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CD70ECE58F for ; Wed, 16 Oct 2019 01:44:53 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5CD7C2067B for ; Wed, 16 Oct 2019 01:44:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=intel-com.20150623.gappssmtp.com header.i=@intel-com.20150623.gappssmtp.com header.b="SvmV5Lle" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5CD7C2067B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E0EAC8E0005; Tue, 15 Oct 2019 21:44:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBE118E0001; Tue, 15 Oct 2019 21:44:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CAD1A8E0005; Tue, 15 Oct 2019 21:44:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0054.hostedemail.com [216.40.44.54]) by kanga.kvack.org (Postfix) with ESMTP id AA2B88E0001 for ; Tue, 15 Oct 2019 21:44:52 -0400 (EDT) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id 5B04E4DB1 for ; Wed, 16 Oct 2019 01:44:52 +0000 (UTC) X-FDA: 76047954024.01.hair89_2a7abac9c480e X-HE-Tag: hair89_2a7abac9c480e X-Filterd-Recvd-Size: 4466 Received: from mail-il1-f195.google.com (mail-il1-f195.google.com [209.85.166.195]) by imf47.hostedemail.com (Postfix) with ESMTP for ; Wed, 16 Oct 2019 01:44:51 +0000 (UTC) Received: by mail-il1-f195.google.com with SMTP id u1so802344ilq.12 for ; Tue, 15 Oct 2019 18:44:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=9cw9NzCx7epGU/Xvw2wyJAAx8RJsP4I6+3SDXP5hV5Y=; b=SvmV5LleMFDNduOG3ZnOMQucqdJuqRVjwOZVpPy+uyZWlbkqgM73zq46LfGYZDJdyz dlHlBftp3GdbnS1cuXYXRlh3Hq7WQ+BAI92XnMX2Om9PAnPiw3/sathpHMJ439wK4Zjd DBc/Zkm/Acqw2RQeO9T60fcVTjsUMu3dhDtl5JgAFSnMlmcfzZoU1C3t5psaQJFBhMit /LCO3+HsxI/gqR9aP+16jZv7BjUaDTprjoZGnJX1s4VrAqVp9YbQL7QMrBwgcNBwGJN7 L1HM5y+VmS/+rHTFUwcKFhTZ+X2oGWzrTuHTWWIHeKl9u12V8JSRhFCUF9oINu7JL4vB l7Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=9cw9NzCx7epGU/Xvw2wyJAAx8RJsP4I6+3SDXP5hV5Y=; b=WVZj8SEGc+H7GOgB9Y6ptV6ozYPL5OhBi35brzcYMpXNLLrjIByWhZKkTURarxtSMQ zSJ+fq2JVdg+xm+1FgWcselIq42NQp4GXHzLX7hCBMfFwHnQ33qXqD3PM6vCPd5KTkHE 7f/Z9tIXH4QYPgxr7VReckAZVZvnckiKwMUqwtwHT9W1M8ldBhXENkkDCuwbZavbZOIC jpsCvKjUcR6xDou9llGIbq6BDT97xdJeIQ1SNOdvRZwYgIqk9i86r/tvwD7O5z3ODbzH 9snfaCO/Ft6xDhtuSJMBYniezwAthFWERPY5lhVEK4LQELRlEmD5bGi4/YGUBJ7utIOB ZcpQ== X-Gm-Message-State: APjAAAWjcufFStKYXm2AaI8qRtdQBTZHYlYT/zrNobNilypzCvCncP2T n3dafg+WTh0Et24g9NMTAQ7VVLVg329h6d5MrCg= X-Google-Smtp-Source: APXvYqyU+TBYsARRfZ7iQjAiQwiOiz0lI+XMM1Up+CNpl9TgTQFA0vfAXnaxfGtvljOBJdS3DnGO2D+9AI0FBq4feIo= X-Received: by 2002:a92:8746:: with SMTP id d6mr9458720ilm.267.1571190290945; Tue, 15 Oct 2019 18:44:50 -0700 (PDT) MIME-Version: 1.0 References: <20191008093711.3410-1-thomas_os@shipmail.org> <20191015100653.ittq4b2mx7pszky5@box> In-Reply-To: <20191015100653.ittq4b2mx7pszky5@box> From: Dan Williams Date: Tue, 15 Oct 2019 18:44:39 -0700 Message-ID: Subject: Re: [RFC PATCH] mm: Fix a huge pud insertion race during faulting To: "Kirill A. Shutemov" Cc: =?UTF-8?Q?Thomas_Hellstr=C3=B6m_=28VMware=29?= , Matthew Wilcox , linux-mm , Linux Kernel Mailing List , Thomas Hellstrom Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Tue, Oct 15, 2019 at 3:06 AM Kirill A. Shutemov w= rote: > > On Tue, Oct 08, 2019 at 11:37:11AM +0200, Thomas Hellstr=C3=B6m (VMware) = wrote: > > From: Thomas Hellstrom > > > > A huge pud page can theoretically be faulted in racing with pmd_alloc() > > in __handle_mm_fault(). That will lead to pmd_alloc() returning an > > invalid pmd pointer. Fix this by adding a pud_trans_unstable() function > > similar to pmd_trans_unstable() and check whether the pud is really sta= ble > > before using the pmd pointer. > > > > Race: > > Thread 1: Thread 2: Comment > > create_huge_pud() Fallback - not taken. > > create_huge_pud() Taken. > > pmd_alloc() Returns an invalid poin= ter. > > > > Cc: Matthew Wilcox > > Fixes: a00cc7d9dd93 ("mm, x86: add support for PUD-sized transparent hu= gepages") > > Signed-off-by: Thomas Hellstrom > > --- > > RFC: We include pud_devmap() as an unstable PUD flag. Is this correct? > > Do the same for pmds? > > I *think* it is correct and we should do the same for PMD, but I may be > wrong. > > Dan, Matthew, could you comment on this? The _devmap() check in these paths near _trans_unstable() has always been about avoiding assumptions that the corresponding page might be page cache or anonymous which for dax it's neither and does not behave like a typical page.