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 A5518C4332F for ; Thu, 9 Nov 2023 14:09:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C8418D00EA; Thu, 9 Nov 2023 09:09:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 377688D0073; Thu, 9 Nov 2023 09:09:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 218658D00EA; Thu, 9 Nov 2023 09:09:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 125DF8D0073 for ; Thu, 9 Nov 2023 09:09:18 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E0BA4B5E91 for ; Thu, 9 Nov 2023 14:09:17 +0000 (UTC) X-FDA: 81438597954.05.62A25B9 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf08.hostedemail.com (Postfix) with ESMTP id 348C5160027 for ; Thu, 9 Nov 2023 14:09:15 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=lf4Z5alu; spf=none (imf08.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699538956; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=g+lNrllJ5lzRMSerkLwsHNxMh6MnqQQj+IsmmSA/ncQ=; b=P/IYc5QPEkPFUGvKJlGQHkkRbRssZ7htfR6y7JSWQLndwnHHsgoNZC6XDR+SYqYbouTDb2 mJDVxwCFRsFXJ1DErckeNRo8uT/+mG5AfATWdFMTWUPdnjIdVp/KOsbrWS6h+VvzOZzkmF fPNSa/KH/HEVIaVHZW5wqI0Z6WeOFBY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699538956; a=rsa-sha256; cv=none; b=WD2WONMJNgKL8NbGw4BAI4Lml3KAlGyWhpyoRkrNGWNQ2zCy1XbQh29qAvyO4JcJKzbraJ pv3i7otCnjGS0YzJC05dSApNg48x1K39/o95d/QVzuDDGtmNG5BXpFgTOwBkOCeQVOSsrz f9mCLThRd3cMYaulI8qgFTn2+FA9+qA= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=lf4Z5alu; spf=none (imf08.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=g+lNrllJ5lzRMSerkLwsHNxMh6MnqQQj+IsmmSA/ncQ=; b=lf4Z5aluBgo1Dcb3dCZuAvwpHD Zky+SybZXcNQwcfBvlSrIX8hIew/jeklvfnsoi51Ervq+JUA9Al1Jg+2zVFIFSG20M97UmJES7Iag 3kPHWcxKK77aRIZb6BQYzu7eY/eRDZ6aFQR7+ZYcDmSe462ML5dvUIWr16uibYEfZs0O/M7q3qn+T 0ZBEP7JRmzDPg5Jn4MzWav4Sfxvwhd3w3VZPm/hdX/48EzdMdmHiayPWZ14U0fSGuxcbVk5Xx3VaV nsx/4jFYORHA30GIkiCTM9y3ueItzKAHSdyho5OBu/XCUFr9Ovz8PXe/qfvNANSrX8Z6XZIZV+TJ0 URuaFNUQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r15iU-007et8-8S; Thu, 09 Nov 2023 14:09:06 +0000 Date: Thu, 9 Nov 2023 14:09:06 +0000 From: Matthew Wilcox To: Jeff Xie Cc: akpm@linux-foundation.org, iamjoonsoo.kim@lge.com, vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, chensong_2000@189.cn, xiehuan09@gmail.com Subject: Re: [RFC][PATCH 3/4] filemap: implement filemap allocate post callback for page_owner Message-ID: References: <20231109032521.392217-1-jeff.xie@linux.dev> <20231109032521.392217-4-jeff.xie@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231109032521.392217-4-jeff.xie@linux.dev> X-Stat-Signature: khq5hz3mfa86d6xs91yns4xtkryohyq4 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 348C5160027 X-Rspam-User: X-HE-Tag: 1699538955-150777 X-HE-Meta: U2FsdGVkX1+FuT1xDFl47uHhonWWcW7eu1u1HK48fFeM4bbUQl9kyewBFJud6Nk4dQQzkZ0VtSCgVZtqCnrwfhd4xhX6nvYBbnWKADNYZUzYz3XGC3xPf8ylAsYkl0Oh2p7Cq6Eh0MlP0uKT9TV+3HbOF4ydHgre/l9R4Y0HwoBNOdh1HXIauNL+zasf/w5N7hVrngHvf2AarsBufjHx6I54oCl32PV8f50vqaHcobp4rgKer6o4YGbvP52ZQAmoBudaQXoJrTmAOrid+z7yL1SJiD3PpO82Fblja2EBEb+fNFcBEdtk4WDc79aZCN7YQyr24HG7en7WQFFLf8R06dJGMfhhEjMybMu4jzYC9y69n+gy7c3JhT4L3q42ZtG86NUB7lMk7J4NsQQxuKYl40hLk0ykDt9flJDNLiCsEx1B2Qy2d7j2VI2706HwPbCAjfNscqCejWHxWqTbRU8Gvf/kg8n58Zfu0xGUCOPWuQ8TeY0Iv3T+t36DHkM2z45NIyFtLbOLV8GoOoHr+aF+NWnzvX88ZdJdsCKZdYnlnsfk8Ne3t+fqtEKwTlRSd2R/5vp4Pqtlq36COLurDVeIhADzGGpg/wZfnIHv9oUSTd7eW3OLXij0O4dszjqvIxcz52QUwYAMS1FQZGTqPQHLlpMc3K7iu1SZYfymzdBiYRUmZ3VMQB2j/9UM5oDBRsj2rKjICqSZT7hPuaeA2Yjh0Md7RO+gr+BIcgJj1k6LQx1kXaSuIi4i/QqT1HETHVFLuOAHxV6y8NVYMzNeGBs3rRhxGETmWO5F8KKd75JJbaxO0zwFip647XZSEJ10eVy5tbk9VyEATEzQ/W+a7WfQaLQnM67DfWpClXg+l8kKzFvGWwBXhrhHtmghGd1l6FFdWz5Zrk9WFropkuVR9YBVPtoLoyIAuSlyHhKmzA+c+kY9tmp8nBsog3Rx4MPC/zYvTg4eVNICaSbKRr6D4Cv FMHSiM4n 19L9gX3vIkdN/UIa9Y82c8MtgInKQm7+rGXM12Te1BBPHuilZEnOi7zlO4ELuyvGjp+t8bVGKTh8BApUzCWuBDVaTsLHtZ9gnyWgf45QGb87uybbf2kZz+HrozWTEL+VUimKGqyvoFsrmucOxdOk124GI2DqEro5a0DrFiogIQZpqRzeLrUzh8y3Tvgy6h+LUU3D0Q1R3spyyIGsRAp+hrEbGGFe3DBuDa0LGFmNrrM+zZSXMYCZkDE7PciL1ZmHtWI2/ 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: List-Subscribe: List-Unsubscribe: On Thu, Nov 09, 2023 at 11:25:20AM +0800, Jeff Xie wrote: > +static int filemap_alloc_post_page_owner(struct folio *folio, struct task_struct *tsk, > + void *data, char *kbuf, size_t count) > +{ > + int ret; > + int mapcount; > + dev_t s_dev; > + struct inode *inode; > + struct vm_area_struct *vma; > + struct mm_struct *mm; > + unsigned long virtual_start = 0x0; > + unsigned long virtual_end = 0x0; > + struct address_space *mapping = data; This is just folio->mapping. > + mapcount = folio_mapcount(folio); > + if (mapcount && tsk && tsk->mm) { > + mm = tsk->mm; > + VMA_ITERATOR(vmi, mm, 0); > + mmap_read_lock(mm); > + for_each_vma(vmi, vma) { > + if (page_mapped_in_vma(&folio->page, vma)) { > + virtual_start = vma_address(&folio->page, vma); > + virtual_end = virtual_start + folio_nr_pages(folio) * PAGE_SIZE; > + break; > + } > + } > + mmap_read_unlock(mm); > + } Why not just walk the rmap directly to find out where it's mapped in any process instead of the one which allocated it?