Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp5101634rwp; Sun, 16 Jul 2023 19:45:41 -0700 (PDT) X-Google-Smtp-Source: APBJJlHF/KFjvUl11Y0XwmTB3s10thY7CgVCdUeTCI0RTuOUcQLVpUhGdxMoffS30Kx3gr+gGXBs X-Received: by 2002:aa7:c245:0:b0:51d:d295:6741 with SMTP id y5-20020aa7c245000000b0051dd2956741mr8596588edo.6.1689561941207; Sun, 16 Jul 2023 19:45:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689561941; cv=none; d=google.com; s=arc-20160816; b=LErR8++jTDkc/ouvweaZAMKXLNhg4pNbHR0gcinJ2fFIi6jxR5s2vWLAehL3gfcH10 4ow96iplgb2jVnreO84U601m4N8Id7p/WXFcliEgthm/TKmqSNptr1TevBL9SMdD11qP g4hXBo0QpVHX2TprwcNsWiyYsZr23/DuZQ5znd34af3bkAjjpQG6tyTXr7WAF6EIO9kO JIgGB4BoawW2nfmVEZeRppVj0L7E1XQf7j5K4KuGIyS5Om75648ej7VCzQcPkQhDHNod xCvusmMbBZVEBC98ovuBbYCm/g3XduoJsr0cFpBapgJYk04erTvLmU9UD/nc+GFS1zWo /QYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=FkesCoF2r9e1tR5TSpE1eE0Ei4zDE1SS8SMTa4WGT8I=; fh=mMeKflIPHB+AFeAXL8pcJoXdnFwkn5BtmHhkjTlLrao=; b=o67vsfRIQ5nkKfVpBOgQ65yylOLyXkZrFC8wxo/Omx1ALMKzTmL0SuvRah3U0dFGZe Cslu/8/y7SeqeJS3xMXubULmRFa6b10co1smPJt/CMK3eLcIEwxmS4hXc3zy9lhOZn9V wwiQMRw9yWgY0bnDPUKga3BL4kDiRsMw2RKhZ7VUVvQqlKQcLPeU0A5WOgrcp2NH5Qdb asJlVJGqlXnoMdwpYSWMSgfLazWUa1OeiFc0UkC5WUNIt22bc0qdoUZvE6osZANytdS0 nycaQMd4L3DlMqF3b3Y1FAfcVT5yrMhGWNf6e3PK6wWz3M4F3WCQocw8SFMTaMMI7p2m skhw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k7-20020aa7d8c7000000b0051dd4dea646si12134652eds.533.2023.07.16.19.45.15; Sun, 16 Jul 2023 19:45:41 -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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230465AbjGQC24 (ORCPT + 99 others); Sun, 16 Jul 2023 22:28:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229461AbjGQC2z (ORCPT ); Sun, 16 Jul 2023 22:28:55 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3787F12B; Sun, 16 Jul 2023 19:28:54 -0700 (PDT) Received: from canpemm500002.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4R45XX5VW8zNmPN; Mon, 17 Jul 2023 10:25:32 +0800 (CST) Received: from [10.174.151.185] (10.174.151.185) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 17 Jul 2023 10:28:51 +0800 Subject: Re: [PATCH] mm/memcg: use get_page() for device private pages in mc_handle_swap_pte() To: Matthew Wilcox CC: , , , , , , , , References: <20230715032802.2508163-1-linmiaohe@huawei.com> From: Miaohe Lin Message-ID: <73b5d7c2-783d-3d75-2c1b-4b91a039df94@huawei.com> Date: Mon, 17 Jul 2023 10:28:50 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.151.185] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To canpemm500002.china.huawei.com (7.192.104.244) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, 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 2023/7/15 11:56, Matthew Wilcox wrote: > On Sat, Jul 15, 2023 at 11:28:02AM +0800, Miaohe Lin wrote: >> When page table locked is held, the page can't be freed from under us. > > But the page isn't mapped into the page table ... there's a swap entry > in the page table, so I don't think your logic holds. > IIUC, device_private_entry will hold one page refcnt when it's set to page table. And there's similar code in do_swap_page(): vm_fault_t do_swap_page(struct vm_fault *vmf) if (unlikely(non_swap_entry(entry))) { if (is_device_private_entry(entry)) /* * Get a page reference while we know the page can't be * freed. */ get_page(vmf->page); pte_unmap_unlock(vmf->pte, vmf->ptl); ret = vmf->page->pgmap->ops->migrate_to_ram(vmf); put_page(vmf->page); ... If my logic doesn't hold, do_swap_page() will need to fix the code. Or am I miss something? Thanks Matthew.