Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp1304927imb; Sat, 2 Mar 2019 10:01:08 -0800 (PST) X-Google-Smtp-Source: AHgI3IaT+84ihTaZBOubvxptAWvZyduKMAbfvP/SykWIZAX5/dpVT6nMQ0s0zxa/ZWw/tQzS+YZg X-Received: by 2002:a62:b2d9:: with SMTP id z86mr11812515pfl.255.1551549668419; Sat, 02 Mar 2019 10:01:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551549668; cv=none; d=google.com; s=arc-20160816; b=vaNX7OeQsQFcvGP26NHca1yp4wYoMmTD4/qD5zR0qlbpA7k1DSvRmwWEe3VFT7XHq6 Yw2p8gVeekeMcYAk1zrSpWj1+oFw90VUcyc6v6S2Mg8iguI4yVPjW7QUvCC8vYu1a6tJ BcPFwCDD2YRMOgxMddUbZ0NCCiNO4SEZUaLpIm8OfISwWLNJKC+QBpGN8AWNVZl5i2jb 12sLI7XsDHwH+nCMC4F2zoWZMMqwE6wTRRA3pgzFb875bi3p0rs43noVsA0NvNEZO1Nn YvhClG9nk/Nkg0oih9LOmLLyGPdHLH8WOBNO/VpjnPxrn4spyYNyCFrlATfrSN7x9Fi9 yS+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:thread-index:thread-topic :content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:from:date; bh=/ZAYbiRQcyhz7n+HNX9gRDFCu9G1gRoR3d6/mNWD8dY=; b=Wdx/CoBa/jhBljFiOXXQZQpXW4YDR/5jAtbwvCaIrKvzGxFQpjVucvWmvxuWuqnEzd 7Z4RE71hJktUTfrG39PiKtzBNvIA4y9uP4jLJjv6BigxV/wS53S1QlrCw2HBk7Si0e9k 2sZF450yiLj6grEb2Xm5Zs9qWHWRbWGcVuVGjtnmiBPy4i5gGDmtRIh/qjhN+z3L+qtE eOqPITkoQipVWSFoYHJ8T4Zw8TqWEZOfm5TFpD97xNvACfhDZrtBq7SO+ngHcDD2c1pS Jx62FIGyAj+CuM1Gkd1bkMM6kWxd4p+o/YtX1t8UvHlG0+KWnvwfswMQONbzvgMW00ZW 6YxA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q14si1088076pls.204.2019.03.02.10.00.52; Sat, 02 Mar 2019 10:01:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726945AbfCBSAM (ORCPT + 99 others); Sat, 2 Mar 2019 13:00:12 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43662 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726246AbfCBSAM (ORCPT ); Sat, 2 Mar 2019 13:00:12 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5437AC04BD22; Sat, 2 Mar 2019 18:00:11 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0FB875D704; Sat, 2 Mar 2019 18:00:11 +0000 (UTC) Received: from zmail17.collab.prod.int.phx2.redhat.com (zmail17.collab.prod.int.phx2.redhat.com [10.5.83.19]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3F9DC1819AFF; Sat, 2 Mar 2019 18:00:10 +0000 (UTC) Date: Sat, 2 Mar 2019 13:00:09 -0500 (EST) From: Jan Stancek To: Matthew Wilcox Cc: linux-mm@kvack.org, akpm@linux-foundation.org, peterz@infradead.org, riel@surriel.com, mhocko@suse.com, ying huang , jrdr linux , jglisse@redhat.com, aneesh kumar , david@redhat.com, aarcange@redhat.com, raquini@redhat.com, rientjes@google.com, kirill@shutemov.name, mgorman@techsingularity.net, linux-kernel@vger.kernel.org Message-ID: <913961507.4507772.1551549609679.JavaMail.zimbra@redhat.com> In-Reply-To: <20190302171043.GP11592@bombadil.infradead.org> References: <0b7a4604529e16ace8d65a42dac7c78582e7fb28.1551538524.git.jstancek@redhat.com> <20190302171043.GP11592@bombadil.infradead.org> Subject: Re: [PATCH] mm/memory.c: do_fault: avoid usage of stale vm_area_struct MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.40.204.21, 10.4.195.4] Thread-Topic: mm/memory.c: do_fault: avoid usage of stale vm_area_struct Thread-Index: C10Zhz2Qec5wJx/oT6sHbvbZS5ZXDA== X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Sat, 02 Mar 2019 18:00:11 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ----- Original Message ----- > On Sat, Mar 02, 2019 at 04:11:26PM +0100, Jan Stancek wrote: > > Problem is that "vmf->vma" used in do_fault() can become stale. > > Because mmap_sem may be released, other threads can come in, > > call munmap() and cause "vma" be returned to kmem cache, and > > get zeroed/re-initialized and re-used: > > > This patch pins mm_struct and stores its value, to avoid using > > potentially stale "vma" when calling pte_free(). > > OK, we need to cache the mm_struct, but why do we need the extra atomic op? > There's surely no way the mm can be freed while the thread is in the middle > of handling a fault. You're right, I was needlessly paranoid. > > ie I would drop these lines: I'll send v2. Thanks, Jan > > > + mmgrab(vm_mm); > > + > ... > > + > > + mmdrop(vm_mm); > > + >