Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp131348pxa; Fri, 21 Aug 2020 03:15:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTaCcgFQ+xOs2yKCp/luuh3YkbfZf3lqRqeNFheUujJJN1jthA5eKEV7xGo/8HCupnqtUn X-Received: by 2002:a17:906:6a84:: with SMTP id p4mr2272026ejr.374.1598004936720; Fri, 21 Aug 2020 03:15:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598004936; cv=none; d=google.com; s=arc-20160816; b=pxEvDXzM7T/2kyx1Gzz7qWTXzeTlMY9lONf8meQA62lLwj89dlgtIRKq3gGTTqoZON BxSDxIjxsRdBEUDIYSpx9rYvtHyCJZ+V/P8p60VrbcztM1Ax+2a3bw+PTcsNb0w0LABp BDuyFy+hs25uJxs5lCs7Lna74aIBLAVS5HWEbdsF6K3F889RIEu2eSaR3kK8D0E5CMsh wu8MIABPey1OFt6Lse4/MR11tbbCZIVXPOfTCH8NZt6XA1k6ElVOIlpcPMVg8qwGI2WF zT0ekMFwPHCCA8qhLT1d4AsSttxsoKXaGkyjPPtQStHSocBVJMO6xUqHBmE5A1zkNASh 53uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:date:to:cc:from :subject:references:in-reply-to:content-transfer-encoding :mime-version; bh=oDShWBJyKBzYnV6mEx40tZE4F0elrcuutFRRzLWWJ2k=; b=bU19wUPIphKFXQEXvGyVZhXiFy0CVF0FRh7L7hy7rsWKQesPMb6FLz/J01PR0C1qRD fENAM6depj9YzuRKIvef5rs2fmXQ1J3KAh/4EzjzleDfsxz3G1DMLLNMLXk4hPMYV/Z1 juzxajsrVRzlE9L5KAVZ7+vYlknPI/artoa/z4HqMMDniJrq42FqS0FiN0VSGKwDSHbV e+YMSkOAFlpIR6Xm5JVxkR45a6DH6sF0EoPwg+eh5BNRCqJH8MfLA7TS75L5aS+3EzOy Z/6omwKSNIGXVfwA0R3jQqV17mZbFc6RLpcZPbpR1pEUJZo+vMH3bsPymh/E5eXnbUYP 8vgg== ARC-Authentication-Results: i=1; mx.google.com; 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 z32si867981ede.139.2020.08.21.03.15.12; Fri, 21 Aug 2020 03:15:36 -0700 (PDT) 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; 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 S1728587AbgHUKNo convert rfc822-to-8bit (ORCPT + 99 others); Fri, 21 Aug 2020 06:13:44 -0400 Received: from mail.fireflyinternet.com ([77.68.26.236]:58174 "EHLO fireflyinternet.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727791AbgHUKNo (ORCPT ); Fri, 21 Aug 2020 06:13:44 -0400 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: 8BIT 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 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 = addr + size; > + pgtbl_mod_mask mask = 0; > int err = 0; > > if (WARN_ON(addr >= end)) > @@ -2343,11 +2350,14 @@ static int __apply_to_page_range(struct mm_struct *mm, unsigned long addr, > next = pgd_addr_end(addr, end); > if (!create && pgd_none_or_clear_bad(pgd)) > continue; > - err = apply_to_p4d_range(mm, pgd, addr, next, fn, data, create); > + err = apply_to_p4d_range(mm, pgd, addr, next, fn, data, create, &mask); > if (err) > break; > } while (pgd++, addr = next, addr != end); > > + if (mask & ARCH_PAGE_TABLE_SYNC_MASK) > + arch_sync_kernel_mappings(addr, addr + size); We need to store the initial addr, as here addr == end [or earlier on earlier], so range is (start, addr). -Chris