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=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 3E17DC433E1 for ; Fri, 21 Aug 2020 10:14:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id DDEAC20656 for ; Fri, 21 Aug 2020 10:14:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DDEAC20656 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 904148D001E; Fri, 21 Aug 2020 06:14:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8DB0B8D0006; Fri, 21 Aug 2020 06:14:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7CA138D001E; Fri, 21 Aug 2020 06:14:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0163.hostedemail.com [216.40.44.163]) by kanga.kvack.org (Postfix) with ESMTP id 679568D0006 for ; Fri, 21 Aug 2020 06:14:04 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 25668181AC9C6 for ; Fri, 21 Aug 2020 10:14:04 +0000 (UTC) X-FDA: 77174165208.16.crowd23_4f177de27038 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin16.hostedemail.com (Postfix) with ESMTP id EAFB1100E6903 for ; Fri, 21 Aug 2020 10:14:03 +0000 (UTC) X-HE-Tag: crowd23_4f177de27038 X-Filterd-Recvd-Size: 2616 Received: from fireflyinternet.com (unknown [77.68.26.236]) by imf16.hostedemail.com (Postfix) with ESMTP for ; Fri, 21 Aug 2020 10:14:03 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 22196233-1500050 for multiple; Fri, 21 Aug 2020 11:13:37 +0100 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <20200821100902.GG3354@suse.de> References: <20200821085011.28878-1-chris@chris-wilson.co.uk> <20200821100902.GG3354@suse.de> Subject: Re: [PATCH] mm: Track page table modifications in __apply_to_page_range() construction From: Chris Wilson Cc: linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-mm@kvack.org, Pavel Machek , Andrew Morton , Linus Torvalds , Dave Airlie , Joonas Lahtinen , Rodrigo Vivi , David Vrabel , stable@vger.kernel.org To: Joerg Roedel Date: Fri, 21 Aug 2020 11:13:36 +0100 Message-ID: <159800481672.29194.17217138842959831589@build.alporthouse.com> User-Agent: alot/0.9 X-Rspamd-Queue-Id: EAFB1100E6903 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam03 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: Quoting Joerg Roedel (2020-08-21 11:09:02) > @@ -2333,6 +2339,7 @@ static int __apply_to_page_range(struct mm_struct *= mm, unsigned long addr, > pgd_t *pgd; > unsigned long next; > unsigned long end =3D addr + size; > + pgtbl_mod_mask mask =3D 0; > int err =3D 0; > =20 > if (WARN_ON(addr >=3D end)) > @@ -2343,11 +2350,14 @@ static int __apply_to_page_range(struct mm_struct= *mm, unsigned long addr, > next =3D pgd_addr_end(addr, end); > if (!create && pgd_none_or_clear_bad(pgd)) > continue; > - err =3D apply_to_p4d_range(mm, pgd, addr, next, fn, data,= create); > + err =3D apply_to_p4d_range(mm, pgd, addr, next, fn, data,= create, &mask); > if (err) > break; > } while (pgd++, addr =3D next, addr !=3D end); > =20 > + if (mask & ARCH_PAGE_TABLE_SYNC_MASK) > + arch_sync_kernel_mappings(addr, addr + size); We need to store the initial addr, as here addr =3D=3D end [or earlier on earlier], so range is (start, addr). -Chris