All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zi Yan" <ziy@nvidia.com>
To: "Usama Arif" <usama.arif@linux.dev>
Cc: "David Hildenbrand" <david@kernel.org>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Muchun Song" <muchun.song@linux.dev>,
	"Lorenzo Stoakes" <ljs@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	"Vlastimil Babka" <vbabka@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Nico Pache" <nico.pache@linux.dev>,
	"Ryan Roberts" <ryan.roberts@arm.com>,
	"Dev Jain" <dev.jain@arm.com>, "Barry Song" <baohua@kernel.org>,
	"Lance Yang" <lance.yang@linux.dev>,
	"Gregory Price" <gourry@gourry.net>,
	"Ying Huang" <ying.huang@linux.alibaba.com>,
	"Alistair Popple" <apopple@nvidia.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Qi Zheng" <qi.zheng@linux.dev>,
	"Shakeel Butt" <shakeel.butt@linux.dev>,
	"Kairui Song" <kasong@tencent.com>, <linux-mm@kvack.org>,
	<linux-kernel@vger.kernel.org>, "Juergen Gross" <jgross@suse.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH RFC 03/14] xen/grant-table: stop setting PG_private on pages for grant mapping
Date: Sat, 01 Aug 2026 21:24:18 -0400	[thread overview]
Message-ID: <DKE2DI3F363X.EBNM12BH5C46@nvidia.com> (raw)
In-Reply-To: <20260801144223.1599317-1-usama.arif@linux.dev>

On Sat Aug 1, 2026 at 10:42 AM EDT, Usama Arif wrote:
> On Fri, 31 Jul 2026 22:13:26 -0400 Zi Yan <ziy@nvidia.com> wrote:
>
>> gnttab_alloc_pages() stores xen_page_foreign in allocated page->private.
>
> in allocated page->private "for 32-bit only".

I will remove "allocated" in the sentence. That should cover both 32-bit
and 64-bit cases.

>
>> On 32-bit, a pointer to xen_page_foreign is stored; on 64-bit,
>> xen_page_foreign is stored inline. Checking page->private != NULL is enough
>> to tell whether a xen_page_foreign needs to be freed on 32-bit and
>> page->private is zeroed unconditionally on 64-bit.
>> 
>> It prepares for a future commit that remove PG_private.
>> 
>> No funtional change intended.
>> 
>> Assisted-by: Claude:claude-opus-4-8
>> Assisted-by: Codex:gpt-5
>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>> To: Juergen Gross <jgross@suse.com>
>> To: Stefano Stabellini <sstabellini@kernel.org>
>> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Cc: xen-devel@lists.xenproject.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>>  drivers/xen/balloon.c     | 5 +++++
>>  drivers/xen/grant-table.c | 7 +++----
>>  2 files changed, 8 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
>> index e7f1d4ca6d753..7f47b0ad05607 100644
>> --- a/drivers/xen/balloon.c
>> +++ b/drivers/xen/balloon.c
>> @@ -182,6 +182,11 @@ static struct page *balloon_retrieve(bool require_lowmem)
>>  
>>  	__ClearPageOffline(page);
>>  	dec_node_page_state(page, NR_BALLOON_PAGES);
>> +	/*
>> +	 * clear page->private before giving it out, since it might be used to
>> +	 * store xen_page_foreign info.
>> +	 */
>> +	set_page_private(page, 0);
>>  
>>  	return page;
>>  }
>> diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
>> index 35f879dc5dfb8..cc348ba2e0786 100644
>> --- a/drivers/xen/grant-table.c
>> +++ b/drivers/xen/grant-table.c
>> @@ -875,7 +875,7 @@ int gnttab_pages_set_private(int nr_pages, struct page **pages)
>>  
>>  		set_page_private(pages[i], (unsigned long)foreign);
>>  #endif
>> -		SetPagePrivate(pages[i]);
>> +		/* Data is stored in page->private on 64-bit */
>
> On 64-bit arch you just iterate an empty for loop. Cleaner to put the
> whole for loop in ifdef?

Sure. Will do that.
>
>>  	}
>>  
>>  	return 0;
>> @@ -1031,12 +1031,11 @@ void gnttab_pages_clear_private(int nr_pages, struct page **pages)
>>  	int i;
>>  
>>  	for (i = 0; i < nr_pages; i++) {
>> -		if (PagePrivate(pages[i])) {
>>  #if BITS_PER_LONG < 64
>> +		if (page_private(pages[i]))
>>  			kfree((void *)page_private(pages[i]));
>>  #endif
>> -			ClearPagePrivate(pages[i]);
>> -		}
>> +		set_page_private(pages[i], 0);
>>  	}
>>  }
>>  EXPORT_SYMBOL_GPL(gnttab_pages_clear_private);
>> 
>> -- 
>> 2.53.0
>> 
>> 




-- 
Best Regards,
Yan, Zi


  reply	other threads:[~2026-08-02  1:24 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-01  2:13 [PATCH RFC 00/14] Remove PG_private by using page/folio->private checks instead Zi Yan
2026-08-01  2:13 ` [f2fs-dev] " Zi Yan via Linux-f2fs-devel
2026-08-01  2:13 ` Zi Yan
2026-08-01  2:13 ` [PATCH RFC 01/14] mm/zsmalloc: replace PG_private with pointer comparison Zi Yan
2026-08-01 14:12   ` Usama Arif
2026-08-01 23:49     ` Zi Yan
2026-08-02 12:05       ` Usama Arif
2026-08-02 18:38         ` Zi Yan
2026-08-03 15:04   ` Johannes Weiner
2026-08-03 15:34     ` Zi Yan
2026-08-03 16:53       ` Johannes Weiner
2026-08-03 21:05         ` Zi Yan
2026-08-04  0:51           ` Johannes Weiner
2026-08-04  6:37           ` Sergey Senozhatsky
2026-08-04 15:28             ` Zi Yan
2026-08-01  2:13 ` [PATCH RFC 02/14] perf/ring_buffer: stop using PG_private as AUX page high-order marker Zi Yan
2026-08-01 14:32   ` Usama Arif
2026-08-02  1:20     ` Zi Yan
2026-08-01  2:13 ` [PATCH RFC 03/14] xen/grant-table: stop setting PG_private on pages for grant mapping Zi Yan
2026-08-01 14:42   ` Usama Arif
2026-08-02  1:24     ` Zi Yan [this message]
2026-08-01  2:13 ` [PATCH RFC 04/14] fs/crypto: stop setting PG_private on bounce page Zi Yan
2026-08-01 14:52   ` Usama Arif
2026-08-02  1:29     ` Zi Yan
2026-08-03 18:40   ` Eric Biggers
2026-08-01  2:13 ` [PATCH RFC 05/14] mm/hugetlb: use direct assignment instead of folio_change_private() Zi Yan
2026-08-02 12:16   ` Usama Arif
2026-08-02 18:38     ` Zi Yan
2026-08-01  2:13 ` [PATCH RFC 06/14] fs/f2fs: stop using PG_private Zi Yan
2026-08-01  2:13   ` [f2fs-dev] " Zi Yan via Linux-f2fs-devel
2026-08-03 11:17   ` Chao Yu via Linux-f2fs-devel
2026-08-03 11:17     ` Chao Yu
2026-08-03 15:48   ` [f2fs-dev] " Usama Arif
2026-08-03 15:48     ` Usama Arif
2026-08-01  2:13 ` [PATCH RFC 07/14] fs/erofs: mm/pagemap: add readahead_folio_reverse() to avoid folio->private Zi Yan
2026-08-03  9:54   ` Jan Kara
2026-08-03 16:56     ` Zi Yan
2026-08-04  9:32       ` Jan Kara
2026-08-04 15:54         ` Zi Yan
2026-08-04 17:04           ` Jan Kara
2026-08-04 17:09             ` Zi Yan
2026-08-05  2:37               ` Zi Yan
2026-08-05  9:25               ` Jan Kara
2026-08-05 11:42                 ` Zi Yan
2026-08-05 13:51                   ` Zi Yan
2026-08-05 16:10                   ` Jan Kara
2026-08-03 23:55   ` Gao Xiang
2026-08-01  2:13 ` [PATCH RFC 08/14] fs/erofs: use folio_attach/detach_private() instead of direct assignment Zi Yan
2026-08-03 23:40   ` Gao Xiang
2026-08-05  2:41     ` Zi Yan
2026-08-05  4:17       ` Gao Xiang
2026-08-01  2:13 ` [PATCH RFC 09/14] mm/page-flags: check page/folio->private instead of PG_private Zi Yan
2026-08-01  2:13 ` [PATCH RFC 10/14] mm/page-flags: introduce folio_test_fs_private() Zi Yan
2026-08-01  2:13 ` [PATCH RFC 11/14] treewide: remove folio_set/clear_private() Zi Yan
2026-08-01  2:13 ` [PATCH RFC 12/14] treewide: replace PagePrivate() with page_private() Zi Yan
2026-08-01  2:13 ` [PATCH RFC 13/14] treewide: adjust comments on PagePrivate and PG_private Zi Yan
2026-08-01  2:13   ` Zi Yan
2026-08-01  2:13 ` [PATCH RFC 14/14] mm/page-flags: remove PG_private Zi Yan
2026-08-03  9:07 ` [PATCH RFC 00/14] Remove PG_private by using page/folio->private checks instead Jürgen Groß
2026-08-03  9:07   ` Jürgen Groß
2026-08-03 18:13   ` Zi Yan
2026-08-03 18:13     ` [f2fs-dev] " Zi Yan via Linux-f2fs-devel
2026-08-03 18:13     ` Zi Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DKE2DI3F363X.EBNM12BH5C46@nvidia.com \
    --to=ziy@nvidia.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=gourry@gourry.net \
    --cc=hannes@cmpxchg.org \
    --cc=jgross@suse.com \
    --cc=kasong@tencent.com \
    --cc=lance.yang@linux.dev \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@suse.com \
    --cc=muchun.song@linux.dev \
    --cc=nico.pache@linux.dev \
    --cc=oleksandr_tyshchenko@epam.com \
    --cc=qi.zheng@linux.dev \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=shakeel.butt@linux.dev \
    --cc=sstabellini@kernel.org \
    --cc=surenb@google.com \
    --cc=usama.arif@linux.dev \
    --cc=vbabka@kernel.org \
    --cc=willy@infradead.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=ying.huang@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.