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=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 76B31C43461 for ; Fri, 4 Sep 2020 23:36:10 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 14F5D2078E for ; Fri, 4 Sep 2020 23:36:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="b7snsfFo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14F5D2078E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id A4EC86B007B; Fri, 4 Sep 2020 19:36:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A00276B007D; Fri, 4 Sep 2020 19:36:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 93C076B007E; Fri, 4 Sep 2020 19:36:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0053.hostedemail.com [216.40.44.53]) by kanga.kvack.org (Postfix) with ESMTP id 7BA4F6B007B for ; Fri, 4 Sep 2020 19:36:09 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 3CD5633CD for ; Fri, 4 Sep 2020 23:36:09 +0000 (UTC) X-FDA: 77226989658.04.blow30_480103a270b6 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin04.hostedemail.com (Postfix) with ESMTP id 126028008423 for ; Fri, 4 Sep 2020 23:36:09 +0000 (UTC) X-HE-Tag: blow30_480103a270b6 X-Filterd-Recvd-Size: 2765 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf22.hostedemail.com (Postfix) with ESMTP for ; Fri, 4 Sep 2020 23:36:08 +0000 (UTC) Received: from localhost.localdomain (c-71-198-47-131.hsd1.ca.comcast.net [71.198.47.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 97FB42087C; Fri, 4 Sep 2020 23:36:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599262567; bh=XFcbUquuVZKhTfux06RZiOgOdM1c4My4s7e0Hn0J5B0=; h=Date:From:To:Subject:In-Reply-To:From; b=b7snsfFoaWJK1OYU07GjQ2/9oz2fIWzKHdRSevSIG23efeE1iNQt5y9n3yR6rvLhX Fl2+h0xHSE9bz6nhLt13KXjuLPS6Y6X4/mvZEERTECYzq148X9e9kbUxxlVe8Kw6sJ iPG+rhtlJbRy7SJPwWdFwMHAruhhBttWygjW5/iU= Date: Fri, 04 Sep 2020 16:36:07 -0700 From: Andrew Morton To: akpm@linux-foundation.org, apopple@nvidia.com, bharata@linux.ibm.com, hch@lst.de, jgg@nvidia.com, jglisse@redhat.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, rcampbell@nvidia.com, torvalds@linux-foundation.org Subject: [patch 15/19] mm/migrate: preserve soft dirty in remove_migration_pte() Message-ID: <20200904233607.3awgBCtEU%akpm@linux-foundation.org> In-Reply-To: <20200904163454.4db0e6ce0c4584d2653678a3@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Queue-Id: 126028008423 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam04 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: From: Ralph Campbell Subject: mm/migrate: preserve soft dirty in remove_migration_pte() The code to remove a migration PTE and replace it with a device private PTE was not copying the soft dirty bit from the migration entry. This could lead to page contents not being marked dirty when faulting the page back from device private memory. Link: https://lkml.kernel.org/r/20200831212222.22409-3-rcampbell@nvidia.com Signed-off-by: Ralph Campbell Reviewed-by: Christoph Hellwig Cc: Jerome Glisse Cc: Alistair Popple Cc: Christoph Hellwig Cc: Jason Gunthorpe Cc: Bharata B Rao Signed-off-by: Andrew Morton --- mm/migrate.c | 2 ++ 1 file changed, 2 insertions(+) --- a/mm/migrate.c~mm-migrate-preserve-soft-dirty-in-remove_migration_pte +++ a/mm/migrate.c @@ -249,6 +249,8 @@ static bool remove_migration_pte(struct if (unlikely(is_device_private_page(new))) { entry = make_device_private_entry(new, pte_write(pte)); pte = swp_entry_to_pte(entry); + if (pte_swp_soft_dirty(*pvmw.pte)) + pte = pte_swp_mksoft_dirty(pte); if (pte_swp_uffd_wp(*pvmw.pte)) pte = pte_swp_mkuffd_wp(pte); } _