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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 AFBE0C4707F for ; Thu, 27 May 2021 23:11:00 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 506CE613D4 for ; Thu, 27 May 2021 23:11:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 506CE613D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E78176B006C; Thu, 27 May 2021 19:10:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E27AC6B006E; Thu, 27 May 2021 19:10:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D16546B0072; Thu, 27 May 2021 19:10:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0054.hostedemail.com [216.40.44.54]) by kanga.kvack.org (Postfix) with ESMTP id A024D6B006C for ; Thu, 27 May 2021 19:10:59 -0400 (EDT) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 30277A76F for ; Thu, 27 May 2021 23:10:59 +0000 (UTC) X-FDA: 78188558238.24.2AFA080 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) by imf09.hostedemail.com (Postfix) with ESMTP id 0D3B56000ECD for ; Thu, 27 May 2021 23:10:53 +0000 (UTC) Received: by mail-io1-f45.google.com with SMTP id n10so2250749ion.8 for ; Thu, 27 May 2021 16:10:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hyMnVQT3uILhsayUiB51yYlscbJXei219nOcfMZbk0g=; b=ndasi/1WhYCH93Zprui/GY40/sn19ao3HLj2XT2v9EbazWcigmdEugKPhYF0n+yT6/ r90yLFnoxKRv4zHSeUCR6aRAK2G4JXu9lCBMk2OC7M3y5j41ApJyGGWLSEiZvYr+/Iw7 EoWG/0tcEi1Za1aImy3BIlTABk7lIRYgfs1f5Vf5EbQamG8Ga/Z7fqRphGxadI9PWZtZ j9ZmGl+5QTm3SB8QXpLXxAnznbsX8v9BJ8T9BFTvTdbYVGnTZhs6qn32xzJQfOOa6+sj zR36KQWCvD8Tz/MU1YxGj7IYqhLJRSPt7aoffgsDK8WEG5sLd/t4whHwulfZG+3RNdbM ldYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hyMnVQT3uILhsayUiB51yYlscbJXei219nOcfMZbk0g=; b=cJr4fjP4wdX5EY5mwRr/MyhWnn2nnnknLhU25oViX0J+M6Sj0ASw23tQ3OtPlmJHhd UoV44MpuS7Vq7xFzsHlDkM3qlNVa9yv4i+U/P/nxemWv/GB120NW0Duib13B2VOifkc5 WPN7EcMH4q6JlwCmDgBMb5vsyCI++CdoUAkXLOEMNwCz8pHDRgSbfZjVqaQ8pSu3az7h BMhKiV8lYkcDP+RPnjHhrCcJgucLb2MenLFKjAm2GiicfF1/ljgbn2NpFFtJ37MXruGl +JWf15uczSNou09hFTGQ/7uDNq51KOsdU6NozMDYSF8ts7RJXfT8BKHyHTVYoi/YsLXA +JMg== X-Gm-Message-State: AOAM531lbgf/9SUJQ3wHXeGGLl6VhvT14D+h2w5WlCOrWUiTi04IoE0U 1s10/W9/lkVbQ8ZrqzR9X+nnp98D8H4aiDtP X-Google-Smtp-Source: ABdhPJy41x9vuWRCqnDRM6SkBRLwhShGggcTKxx9ubB3k12ssllC99aPqznxBEX133FPxW+i4upInQ== X-Received: by 2002:a05:6602:2ccf:: with SMTP id j15mr4777023iow.56.1622157058325; Thu, 27 May 2021 16:10:58 -0700 (PDT) Received: from Harpoon.amd.com ([165.204.55.251]) by smtp.gmail.com with ESMTPSA id r5sm1860014ilb.1.2021.05.27.16.10.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 May 2021 16:10:40 -0700 (PDT) From: Felix Kuehling X-Google-Original-From: Felix Kuehling To: felix.kuehling@amd.com, akpm@linux-foundation.org, linux-mm@kvack.org Cc: hch@lst.de, jglisse@redhat.com, jgg@nvidia.com, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Alex Sierra Subject: [RFC PATCH 4/5] mm: add generic type support for device zone page migration Date: Thu, 27 May 2021 19:08:08 -0400 Message-Id: <20210527230809.3701-5-Felix.Kuehling@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210527230809.3701-1-Felix.Kuehling@amd.com> References: <20210527230809.3701-1-Felix.Kuehling@amd.com> MIME-Version: 1.0 Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b="ndasi/1W"; spf=pass (imf09.hostedemail.com: domain of felixkuehling@gmail.com designates 209.85.166.45 as permitted sender) smtp.mailfrom=felixkuehling@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 0D3B56000ECD X-Stat-Signature: yzcka5ua4x6phmen8bddx6b78b8x5osm X-HE-Tag: 1622157053-280745 Content-Transfer-Encoding: quoted-printable 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: Alex Sierra This support is only for generic type anonymous memory. Generic type with zone device pages require to take an extra reference, as it's done with device private type. Also, support added to migrate pages meta-data for generic device type. Signed-off-by: Alex Sierra --- mm/migrate.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 20ca887ea769..33e573a992e5 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -380,7 +380,8 @@ static int expected_page_refs(struct address_space *m= apping, struct page *page) * Device private pages have an extra refcount as they are * ZONE_DEVICE pages. */ - expected_count +=3D is_device_private_page(page); + expected_count +=3D + (is_device_private_page(page) || is_device_generic_page(page)); if (mapping) expected_count +=3D thp_nr_pages(page) + page_has_private(page); =20 @@ -2607,7 +2608,7 @@ static bool migrate_vma_check_page(struct page *pag= e) * FIXME proper solution is to rework migration_entry_wait() so * it does not need to take a reference on page. */ - return is_device_private_page(page); + return is_device_private_page(page) | is_device_generic_page(page); } =20 /* For file back page */ @@ -3069,10 +3070,12 @@ void migrate_vma_pages(struct migrate_vma *migrat= e) mapping =3D page_mapping(page); =20 if (is_zone_device_page(newpage)) { - if (is_device_private_page(newpage)) { + if (is_device_private_page(newpage) || + is_device_generic_page(newpage)) { /* - * For now only support private anonymous when - * migrating to un-addressable device memory. + * For now only support private and devdax/generic + * anonymous when migrating to un-addressable + * device memory. */ if (mapping) { migrate->src[i] &=3D ~MIGRATE_PFN_MIGRATE; --=20 2.31.1