Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp3386407rwb; Tue, 16 Aug 2022 01:54:25 -0700 (PDT) X-Google-Smtp-Source: AA6agR78WmNUzgkXZ8MnQJvPhy/DilrzEZQnjWTQtjHome9dN54pgME1C1JE82sW7NfEtNgubONh X-Received: by 2002:a17:902:9b8a:b0:16f:1153:c523 with SMTP id y10-20020a1709029b8a00b0016f1153c523mr20833167plp.120.1660640064992; Tue, 16 Aug 2022 01:54:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660640064; cv=none; d=google.com; s=arc-20160816; b=AdSmPCKEkIYSd/1qJpmSP6hLhKD4h47JXqf5NELfoAqEKDakK1uIfSn1raiYeE9GIb +KFxIHuzuTlNdMKyfEhLT2c6dWt7yoTt4mBGQtT/R6uiUYCQ1YD4/S1hTkuLlRCqs7Cc ARRyQeE1K7Rd+IGQKWxM8L4jFl4Q9HLF2B2xcdIKQctRADHt4VkM9x+L56VWxVhT3Io0 qvSjMdkxe60XB6/pkbu6CD6ts/RkUG+RjFCF1M0sRDt24g6r0UMZ0w4zezF2zjtXuPXn wKJUQ8DyVLpGOjhgjju4v4pHXRHrn9Rpl/9mVslM486VaJKvG6uhbYjO7ERC7GvIyeNa sjIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=1yicZUCBmbFEVGigqV5LTF45IjTIyj4GqkBuHOHX0Mk=; b=VRSs52HI1wdFt2IYvEB82SqW3TM0u9dwaWnqb0WgDG/lTTb5mwLMZRVEXIQMg1J2ND MWh36kmU8hXP8N34sZjR9U8NPNfnhKN7A7BYkx3d1hxeX23bA0dQjNTvwzmEU19QfWMF u8NBToD41GXQ3lMXmELM4tEJS0Pi+5LaOMyiLfoZ/tHolR6tmhse9vC8lKEghBZ5WTd/ PFuTFX+HS5WPSftilDY118yVNS9miFQ6FH+XrLQ8SgOMpw75Duq0WELWPy/NSb51Wl1z cJWo9jK9h0Z8pkhedUX4Vb8Q3DwjC2MVY6kDOxfo4zRq104SuB7kfQ6hFQs83yuASRLj bsXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=VOIn675S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 11-20020a63000b000000b00419cb1b88fcsi12482578pga.859.2022.08.16.01.54.14; Tue, 16 Aug 2022 01:54:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=VOIn675S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232915AbiHPIf6 (ORCPT + 99 others); Tue, 16 Aug 2022 04:35:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233376AbiHPIfZ (ORCPT ); Tue, 16 Aug 2022 04:35:25 -0400 Received: from mail-vs1-xe34.google.com (mail-vs1-xe34.google.com [IPv6:2607:f8b0:4864:20::e34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 577835C35C for ; Mon, 15 Aug 2022 23:37:25 -0700 (PDT) Received: by mail-vs1-xe34.google.com with SMTP id k2so9238231vsk.8 for ; Mon, 15 Aug 2022 23:37:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=1yicZUCBmbFEVGigqV5LTF45IjTIyj4GqkBuHOHX0Mk=; b=VOIn675SBgW64Opt8anvR1hqciGXGOG56uHHdbFT8iNLi6aJg7kHNNA1GwwEjJ8fn1 pp7V/B1TiTqnokcmXLlutO9Z52E8LDcLjqXsD8ByLfjRB97ieoOsNCINYMEJ1axwFg2E b40ImzY+QYphFolCB0U5CIL/3IwXeISUA+CmfHp9mzgZeMzN6VctA2UIIzleh0naVKos vrqDUC70UE9ZPFxMLHzbJrDjc9M19oceVKBkI7FPebz2g7i7gol6U/oGk70tvc7DGrLa psRKCx0eYJHD3EceFnp12yFBFE9+SzQqcEn5B6mQI27yPbb1YCR4oF9UYxxjAHgX0qrW GJvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=1yicZUCBmbFEVGigqV5LTF45IjTIyj4GqkBuHOHX0Mk=; b=HV2ehX8VtYUMsW3fvF0BYuQgjVnHHOr1YsdrSPx3RZRffABD2DpVGEJiaSttW7mblm 6VinN8mHtGYCjHTBSudSkWc+N5Iqlnkp5QHJUnTS4paLFy9pdNhfW5N3xOiaIjKdrI0C QVo95i6V91Igy+cvw9an7lvhXM4AWD3iXQK8Tp3FOPhkOTDjPNcqcXjUz2s1ckZpWAml xX2V/rCIHeFF8D6UAYOSqxytKHt9f9fHNPjAk8ifHrlMFEmQDjeZZhVNlY+tH45CeMQz s7XetUT5CYyKmY8R5HJXp83r8+G724eLbO0L68Z3a0oxjaC74BQ2Jver+Oup9COEJg0P X67w== X-Gm-Message-State: ACgBeo2IAOj75TTIHTb60+HP7liqqkpSHkAaKCPEdKUzDSQYTv12MMKa 3SzKFzuftnFC9asYe66oY6/bxU7AwwA4+A1YHdolwMeaamI= X-Received: by 2002:a67:cb93:0:b0:388:494d:4419 with SMTP id h19-20020a67cb93000000b00388494d4419mr7709168vsl.28.1660631844358; Mon, 15 Aug 2022 23:37:24 -0700 (PDT) MIME-Version: 1.0 References: <87r11gvrx6.fsf@nvdebian.thelocal> In-Reply-To: <87r11gvrx6.fsf@nvdebian.thelocal> From: huang ying Date: Tue, 16 Aug 2022 14:37:12 +0800 Message-ID: Subject: Re: [PATCH 1/2] mm/migrate_device.c: Copy pte dirty bit to page To: Alistair Popple Cc: linux-mm@kvack.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, "Sierra Guiza, Alejandro (Alex)" , Felix Kuehling , Jason Gunthorpe , John Hubbard , David Hildenbrand , Ralph Campbell , Matthew Wilcox , Karol Herbst , Lyude Paul , Ben Skeggs , Logan Gunthorpe , linuxram@us.ibm.com, paulus@ozlabs.org, Peter Xu Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 16, 2022 at 10:33 AM Alistair Popple wrote: > > > huang ying writes: > > > Hi, Alistair, > > > > On Fri, Aug 12, 2022 at 1:23 PM Alistair Popple wrote: [snip] > > > And I don't know why we use ptep_get_and_clear() to clear PTE if > > (!anon_exclusive). Why don't we need to flush the TLB? > > We do the TLB flush at the end if anything was modified: > > /* Only flush the TLB if we actually modified any entries */ > if (unmapped) > flush_tlb_range(walk->vma, start, end); > > Obviously I don't think that will work correctly now given we have to > read the dirty bits and clear the PTE atomically. I assume it was > originally written this way for some sort of performance reason. Thanks for pointing this out. If there were parallel page table operations such as mprotect() or munmap(), the delayed TLB flushing mechanism here may have some problem. Please take a look at the comments of flush_tlb_batched_pending() and TLB flush batching implementation in try_to_unmap_one(). We may need to flush TLB with page table lock held or use a mechanism similar to that in try_to_unmap_one(). Best Regards, Huang, Ying