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 1CD61C4332F for ; Thu, 9 Nov 2023 16:39:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 682128D00EF; Thu, 9 Nov 2023 11:39:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6311F8D001A; Thu, 9 Nov 2023 11:39:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F8988D00EF; Thu, 9 Nov 2023 11:39:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 3F8888D001A for ; Thu, 9 Nov 2023 11:39:04 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0BBCCC04E6 for ; Thu, 9 Nov 2023 16:39:04 +0000 (UTC) X-FDA: 81438975408.29.E19F94A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf02.hostedemail.com (Postfix) with ESMTP id 1DB3280014 for ; Thu, 9 Nov 2023 16:38:59 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=NJ+FVUSN; dmarc=none; spf=none (imf02.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699547941; 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=J7QLDd9OVD4borN5mRbVxHh9xbWC1S+rfDDIxHA2HVc=; b=krbRJqgmTxuepHBenQpY0zo/s6JeowoxvkusTzXoiY4oJAGp+xcT88fTj3Z5W08cIOnJ+/ WDz7FBCSte5OjYrQofj3yr4NhlariH3dqCyNa//CB8WJxjxw86RUVzTah8HS9A7wVKUuF6 Pncp4A7SU1BSw2b+BQa2woCxura8bKc= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=NJ+FVUSN; dmarc=none; spf=none (imf02.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699547941; a=rsa-sha256; cv=none; b=4/5B/7Icu+4e5NLB0WkyZfEv+PvVBrU0E3ZfXjNIydX78et6Qs58NSPKTaE9MhkTnHlpCS RHvKEPeMwah2+lbgZa2QI5ED+oF8DTkcju3XTDcmFC8/aFy/l0/mM5c3jNQc5NjaLZa/Pt AlZbPFtR5SANtFSMDr1iDMT3FB/kFjc= 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=J7QLDd9OVD4borN5mRbVxHh9xbWC1S+rfDDIxHA2HVc=; b=NJ+FVUSNgGAXqK2bnR5QovhKuJ SGAsYgYFG62E9WIIC+Rh0oPxLYQot5hdfUbB2u+Z66KpHStHt6CteqrK+wIqmA1jEuzci0gBuqg1E oqa/JIKqykkKDNrGckF09G49iW0MGmO37jC+GJHyCutxmprEyinQ42jA0jBP5CePH9u/7ziChYJGX zgMrHbD0/QWi9xMl1oYh2fu0ISjCbEFrN94BENwMiBfXV62x26FCVb/wreHfAx0ooEdHT8akQYbya BACBHZyueDEmfkMBBkV6GXDIqMFNY1XQiKZIMQaTlVVcI+ZjuDKI13gHQRRZl36MYsqRQr8aY1WI0 mvzSRpaw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r183F-008Ipm-Te; Thu, 09 Nov 2023 16:38:41 +0000 Date: Thu, 9 Nov 2023 16:38:41 +0000 From: Matthew Wilcox To: jeff.xie@linux.dev Cc: Jeff Xie , 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 Subject: Re: [RFC][PATCH 1/4] mm, page_owner: add folio allocate post callback for struct page_owner to make the owner clearer Message-ID: References: <20231109032521.392217-1-jeff.xie@linux.dev> <20231109032521.392217-2-jeff.xie@linux.dev> <58d4f340549dd69a5d605c1526ceceb035b3cc98@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <58d4f340549dd69a5d605c1526ceceb035b3cc98@linux.dev> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 1DB3280014 X-Stat-Signature: 68mx58rsh7dunyhncgnebbyztpbspt4b X-Rspam-User: X-HE-Tag: 1699547939-326994 X-HE-Meta: U2FsdGVkX19ioDr/gyK7dCMQ79bejm4Efdtuur890xLk3wzHeR0u6y43fkghCQ3mnlFPIBSfQhoq7lmEGjYlewnzp07xI0TDBw5Lmwt7snN0MT/GbYgL/n1gCD6fik6x+/U47wYy0uWSOX3bIXNQ8mB95sdGCVxVdOJtg/m7kw3gBnoS0TNd7YPCue7Qvp5z0zA5S0Nx4Rnz+mluLIRQFaG+vzb6GNj4EIsSnOvUj7bYXBKQGRQolANFBR1P3Z5n30voigGHLUpdpHjQf/jCN/iI2woVbMIwArCaliNXQ7sZGsOfbv47e+QyJJ2pd9OAiZyIXK3kQq42yrwgianGP+btGJqR6lkktecI7WRtNumXYlKGj0G3RoeeZGX2GqIEAV7Z/gEwHUq4usBHFlNddZkRZ3J12linoze4bcpDJDsXxHd6HL2vRiZsy3Aer1w/xhKyrHQ8TmviEBeDXP0phQ+dReTreznzlaj2T/pU1n0yp5y4+DATMksw6/gKhPk0q4bAWLOgtxJ95SNbfxrqz1uI31lY/gcORz2tynMuC3ZKvkPCn0Pm8TZq/y9lCCS2JMtf3bAGUHj4K9+xQLKU69HBOFt+AQt+OdTR+ydV+VKSjq6Z0hsRwI5/G9liGfrRrMFK8qes2cBBolBUUYQfq5cGliZVX4EsKH8ACZOx4R2Bkx9Vv7ODtNOo7TeT5+pEGSXxJZLmrX0MEDOv6aUVSg3v/fw0ufIo1PaQr7i0zxTVhhw44A+4wiaNYYvRA04PXhv75/JOcJntqhUdM4oWqBHM5/DPMWM9XrW08dQbspC7lptT4kt/Tm+h/YUXo8GzJCeGAAjMZsKybrAZQEw2Jqv3yzpetJiLKQX2kQqudlzDEJ7cZvHR0E9kFO2Rh4le+SHWJpc6G1mIkPNfnTVl4cpE4aVb1uIeaPNmrlybfzvzjLMqIriPDO1642fvEQASka2Kz8zFK/7h2kcuP5C O5E2M/Be nVKOmJOutctoBYTwRJAwQB6631/buuA3zayorT6E/vyCuLtKD1b9uWtIEIcM5LKYnaDaxrKcjoHGQAuQM7kId4Zi4apVN1j9WBf/knxopt1Ofz3sgtPAy2rkEmm3LQnpTqV+vQYuL78xcBECIJcaAJ1NLv9Aj01Q11kwEYIEbTGbU0CSHy3CgAwbFWLIhkpNGlanj+9LpJ8e2ErLjMEzcRJf+xNDOzjHLxUiHmrpJDcTx1CIQ6DhbnAf+itndyQpvgh2KDk7mqs7hpd6jRzuMzelASCTajL1hY34ITSCjfnmY6Jgqw+JVcm7KrQ== 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 04:04:39PM +0000, jeff.xie@linux.dev wrote: > November 9, 2023 at 11:36 PM, "Matthew Wilcox" wrote: > > But we want that anyway (or at least I do). You're right that vmalloc > > pages are not marked as being vmalloc pages and don't contain the > > information about which vmalloc area they belong to. I've talked about > > ways we can add that information to folios in the past, but I have a lot > > of other projects I'm working on. Are you interested in doing that? > > > > Certainly, I'm willing to give it a try. If a folio can include vmalloc information > or more information, this is great. I may need to understand the background of why > you proposed this method in the past. I can't find the proposal now, but it's basically this: Turn PG_slab into a PG_kernel. If PG_kernel is set, then other flags change their meaning. Flags that should be reusable: writeback, referenced, uptodate, lru, active, workingset, private, reclaim One of those flags gets reused to be the new slab. So, eg folio_test_slab() becomes: return (folio->flags & (PG_kernel | PG_slab)) == (PG_kernel | PG_slab); Now we have somewhere that we can use for PG_vmalloc (also PG_reserved can become a PG_kernel sub-flag, freeing up a page flag). We'd need to change some helpers. eg folio_mapping() currently does: if (unlikely(folio_test_slab(folio))) return NULL; and that should be: if (unlikely(folio_test_kernel(folio))) return NULL; With that in place, we can reuse the folio->mapping space to point to the struct vm_struct that allocated it. This isn't an easy project and will require a lot of testing. It has some upsides, like freeing up a page flag.