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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61497C77B75 for ; Mon, 8 May 2023 05:58:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EDB86B0078; Mon, 8 May 2023 01:58:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 89D9C6B007D; Mon, 8 May 2023 01:58:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 73E316B007E; Mon, 8 May 2023 01:58:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 5F0396B0078 for ; Mon, 8 May 2023 01:58:10 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 21CBD16084C for ; Mon, 8 May 2023 05:58:10 +0000 (UTC) X-FDA: 80766032340.19.9ADBABE Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 8309C40003 for ; Mon, 8 May 2023 05:58:06 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="bbDIh6r/"; spf=pass (imf27.hostedemail.com: domain of mpenttil@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mpenttil@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683525486; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gC9s5ZRywHkmOsVozu0TaiLrTE/2gzpB0d9O9rvv8yk=; b=FDL084cwn2yUyHaMJiYaKlvOFIb1FaYvq5N6E7ErJrfcsGDRRkS9bRCrs2qbjI8J+OPw9f Tw171WDm8cR7ShOq/batHhjWlx494uVyBLLnfWC/ZnTikS0IvDh4b2r77tw348mOAtEqOF Au7SwjVu9jhRE4KzO8lUtYirZ4w1GAM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683525486; a=rsa-sha256; cv=none; b=MSBzzlTZbh7T1Ez56OHW7Xc0Mb7RPqXtz6ZYPFVQqGoUSzxLE0YAHdxkz8GFTb9BR+7EfF kPPYptdgnXXB/hJsk5JPqJ/Lr/E/PYgmWGHHWnUa4PU7XkRZzNOYLG2bcPPRLbbEiEO5V/ 80f444j1qUQU5fn+4sPGzp0WgnK8jZM= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="bbDIh6r/"; spf=pass (imf27.hostedemail.com: domain of mpenttil@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mpenttil@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1683525485; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gC9s5ZRywHkmOsVozu0TaiLrTE/2gzpB0d9O9rvv8yk=; b=bbDIh6r/EC6OZQAS5yCAdGJB4RatDvKKryjXT0/Lu2DV3HoCnR4FrpvHzfGhPBBQKOOZwp S3VmOjfipG8Fppix9nzeBppi2Huvi+8CAwVRxe/84OERA+mjEvwLGu2gNcBv6ilycdtVKa GDMej0/POW3IdDnEkQVf8AzKySZ6b14= Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-98-gg0N3ixHOjCxNJs9nzfo3Q-1; Mon, 08 May 2023 01:58:04 -0400 X-MC-Unique: gg0N3ixHOjCxNJs9nzfo3Q-1 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-4ec790b902bso2114132e87.1 for ; Sun, 07 May 2023 22:58:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683525483; x=1686117483; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gC9s5ZRywHkmOsVozu0TaiLrTE/2gzpB0d9O9rvv8yk=; b=e2YSkDgJVUr57U5y1H3ynWoAXfgT7QIJ1jN4Fp0+jH8h1PzmImfcnb9QefE+hSrHud CqVn4aFwnB38VdUGLUevTR0Itgc77oR+4iewY2+eVkLpA2wRM5sC3f7RUgzNzfdy6UcS zI0b2Hyqkx44bT9haLlh4JhjE/pmZPr9zBuADDLcwdCnETpXf+riYUOWUcr8AwHpGZxX /3L0CYpZEyVvKknfDRaTmpqepR0GmSk/s8QdPPXP8xlFdz6JT5mmXvy26xTfqxF/VLL8 JYLnzngLSJDmCtjiwEAjNXlfddH7br3E5cMAf6vNmxxvBWnV6qlR5/PGjCosfJlyf6IW JXgQ== X-Gm-Message-State: AC+VfDwb9/BKM1dQOtauxp9/oPFaHDxhT3XdeaZKhuJpEIPegFEdIQN+ oFizQFGX9KwZBQ7bDDb4c0+Kx+OxeyECFgr7z6A5SsJ1iLXS4SOunUh1OEvujfE/xm2H/XZ0IsD FlZ+WiV0FTA== X-Received: by 2002:ac2:4556:0:b0:4f1:38f3:3769 with SMTP id j22-20020ac24556000000b004f138f33769mr2160558lfm.2.1683525482984; Sun, 07 May 2023 22:58:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7/kOqMxfdOovc+AFvhciNXhZ1+H4MrFFq7DPX+hsFVb1Pw5b9R+Kh1rveUXByRmCBkIofTBg== X-Received: by 2002:ac2:4556:0:b0:4f1:38f3:3769 with SMTP id j22-20020ac24556000000b004f138f33769mr2160525lfm.2.1683525480489; Sun, 07 May 2023 22:58:00 -0700 (PDT) Received: from [192.168.1.121] (85-23-48-202.bb.dnainternet.fi. [85.23.48.202]) by smtp.gmail.com with ESMTPSA id u28-20020ac24c3c000000b004f13cd61ebbsm1184679lfq.175.2023.05.07.22.57.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 07 May 2023 22:57:59 -0700 (PDT) Message-ID: <90bb07c3-6365-8dcf-7d0e-ef2c0163614f@redhat.com> Date: Mon, 8 May 2023 08:57:57 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH] mm/migrate_device: Try to handle swapcache pages. To: "Huang, Ying" Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, apopple@nvidia.com, jhubbard@nvidia.com, rcampbell@nvidia.com References: <20230507061726.13422-1-mpenttil@redhat.com> <87wn1ja793.fsf@yhuang6-desk2.ccr.corp.intel.com> <87sfc79zg8.fsf@yhuang6-desk2.ccr.corp.intel.com> From: =?UTF-8?Q?Mika_Penttil=c3=a4?= In-Reply-To: <87sfc79zg8.fsf@yhuang6-desk2.ccr.corp.intel.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: moefs46jwu5aj7mw8ey49f9nrhzrswm1 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 8309C40003 X-Rspam-User: X-HE-Tag: 1683525486-711952 X-HE-Meta: U2FsdGVkX192Hpw0uxCZ9Tdv+hPGOpmR4u1kTGhTdibtPMnTgNnAoxFPpDoE0mghCWf3rDoPW78nDRIvMwk+ntRLxvJYLOTrQY70ATLb22umgq8UyGDeO5ToGdwRA+4YibnYM7UElKYTCUxqc469EvJpovm7OAlJQxQiCgexFW5P+j78HYonPTR8Q8rIsbT4QMD4PYFc3JoUg3qmE8Wn62VOfXCIe4Z0lzkOrDA5U0ZEo/aNJUyi61z4MDV0oEOYKaEnhHKbAgEOa/gvTRUPsd34lF07YfVs6anvo3gBeJzhj73Sibk8LzNdMWn0Cyrh6XRAy8P6Vzu7dJMmzUlazkElOkb9Mmo4vAt9bJJU3PllvXxJWpDsZrEuAIPjSFqb0WgwxUkUNdNLlJNLTunMLTJ8XxMLYC047CDYHQ3fpAGPrj4JqPq8eJHSEIIkSZ4oRzzNknGerv8i4SoZCb/A6nrexIkYB/xWS97celoLuJXD/WEZ2c7RNXZSvStJ/5FsbBK6F7HaXal6WaOErUwSW2x/9pnm0k/dEYxezBmcao2yilq9DPvRjbNmRVwZ4iZMt36Hq7yzBr7eZpqowLEuqZr5L7J2VneMvgpsliaNFnQQx2O+7AKjxdXp3II+/VqTlqX2ZZjmgReCgbW7COSPS5yt7lcGdFSyoY99fOKLQy9yjkH398wtrTF3H0r1+5PT6xLX6CC82MQRoCQiuTtu8jV5aswHBg2ZOhnlZXcV30ZWfg42yrtRj63dEk6FLcIZr1vjgCoBjhv9E2zZbz3kuAddi/XZgn3hsE8rAzhPsHhXyffF5j/A6jQqamxIZlX0vi4oDGDu0ERVlMCS3Q7JrY4XciGfSX2jl3EIbwT1ZJKiyk1Juag91zS4Oj6j4gC0raMM3bG/9dmFgMj73lnD3KxIgDNrjtYgAR53VRL8K6f/HrLIpQ9b53JAZONyrLL8ZtEmEUOvN4ts0XNq27f 2mIv158I oJqvw4F6drkQfZM2fWAwI1dF8JG4edgEsNR6n6ubrhDXVKEHNfnoNF3X0JWGYtSwHFlhI60HG91YH4dQxVz05/up+W7A+0VXvZ97IPqHRVoKmiz0IaoLNKLdsiwwmC/Zqik1wfKGlhl8Kc/Vij5KOSusrwSJGrJC8A1fOKf0PiJS3ViCVdvLkD234Xx7TOnpiKiorPhXC6V521CXk6cHSk6+HKnGDMebWE/Fg9iiNN+X0mf140Sfuub/MTC8eW0py9qsHi+NV4A5n6AdN4nq8DlHZcpJ628eZAGCLf794WJscFxnw5K7dmm+z2AILQtNHdCCicZ9DTdnlBwadd5QBIET8o7jynXzvCV9uIwxZ6a4qY4N9U/DX5VkE58er3/7nFv1ada0LOTt3tOxZ2qZqJ4Ew5Q/Q6It+2AiBgdtFL88fw4XD6AvR/Qss1TJF2rNRhVsjng7eIVUwR5KqCmlesZgIaK/rgW9SDiNH4wT+4vfylF8IJ4+ecATmf8Fx+o4VLjrh 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: Hi, On 8.5.2023 8.14, Huang, Ying wrote: > Mika Penttilä writes: > >> H, >> >> >> On 8.5.2023 5.26, Huang, Ying wrote: >>> mpenttil@redhat.com writes: >>> >>>> From: Mika Penttil >>>> >>>> Migrating file pages and swapcache pages into device memory is not supported. >>>> The decision is done based on page_mapping(). For now, swapcache pages are not migrated. >>>> >>>> Things can however be improved, for swapcache pages. Try to get rid of the swap cache, >>>> and if successful, go ahead as with other anonymous pages. >>>> >>>> As a detail, do not mess with shmem pages, as they handle swap internally. >>>> >>>> Cc: Alistair Popple >>>> Cc: John Hubbard >>>> Cc: Ralph Campbell >>>> Signed-off-by: Mika Penttil >>>> --- >>>> mm/migrate_device.c | 12 ++++++++++-- >>>> 1 file changed, 10 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/mm/migrate_device.c b/mm/migrate_device.c >>>> index d30c9de60b0d..e8169c58c341 100644 >>>> --- a/mm/migrate_device.c >>>> +++ b/mm/migrate_device.c >>>> @@ -12,6 +12,7 @@ >>>> #include >>>> #include >>>> #include >>>> +#include >>>> #include >>>> #include >>>> #include >>>> @@ -750,10 +751,17 @@ static void __migrate_device_pages(unsigned long *src_pfns, >>>> /* >>>> * For now only support anonymous memory migrating to >>>> * device private or coherent memory. >>>> + * >>>> + * Try to get rid of swap cache if possible. >>>> + * Leave shmem pages alone, they handle swap internally >>>> + * >>>> */ >>>> if (mapping) { >>>> - src_pfns[i] &= ~MIGRATE_PFN_MIGRATE; >>>> - continue; >>>> + if (shmem_mapping(mapping) || >>>> + !folio_free_swap(page_folio(page))) { >>> Should we filter out file pages firstly? >> >> folio_free_swap() checks first and returns false if not swapcache page >> (ie including normal file pages) so think that is enough, > > You are right. folio_free_swap() will call folio_test_swapcache(), and > which will check folio_test_swapbacked(). > > And, IIUC, we don't need to check shmem too. Because folio_free_swap() > will not return true for shmem pages. Ah yes true, for not written out shmem page folio_free_swap() returns false (because !swapcache). And written out (but in swap cache) returns false because folio_swapped() == true > >> but maybe for clarity and not depending on it, could be good >> explicitly check for swapcache before calling folio_free_swap(). > > Yes. That will be more clear. I suggest to use folio_test_anon(), that > will filter out shmem pages too. Agreed. > >>> >>>> + src_pfns[i] &= ~MIGRATE_PFN_MIGRATE; >>>> + continue; >>>> + } >>>> } >>>> } else if (is_zone_device_page(newpage)) { >>>> /* > > Best Regards, > Huang, Ying > Thanks, Mika