[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <825d87a7-8e9a-44f8-90f0-01cf3f1b8e52@amd.com>
Date: Thu, 22 May 2025 10:09:32 +0530
From: Bharata B Rao <bharata@....com>
To: Donet Tom <donettom@...ux.ibm.com>, linux-kernel@...r.kernel.org,
linux-mm@...ck.org
Cc: Jonathan.Cameron@...wei.com, dave.hansen@...el.com, gourry@...rry.net,
hannes@...xchg.org, mgorman@...hsingularity.net, mingo@...hat.com,
peterz@...radead.org, raghavendra.kt@....com, riel@...riel.com,
rientjes@...gle.com, sj@...nel.org, weixugc@...gle.com, willy@...radead.org,
ying.huang@...ux.alibaba.com, ziy@...dia.com, dave@...olabs.net,
nifan.cxl@...il.com, joshua.hahnjy@...il.com, xuezhengchu@...wei.com,
yiannis@...corp.com, akpm@...ux-foundation.org, david@...hat.com
Subject: Re: [RFC PATCH v0 2/2] mm: sched: Batch-migrate misplaced pages
Hi Donet,
On 21-May-25 11:55 PM, Donet Tom wrote:
>
>> +static void migrate_queued_pages(struct list_head *migrate_list)
>> +{
>> + int cur_nid, nid;
>> + struct folio *folio, *tmp;
>> + LIST_HEAD(nid_list);
>> +
>> + folio = list_entry(migrate_list, struct folio, lru);
>> + cur_nid = folio_last_cpupid(folio);
>
> Hi Bharatha,
>
> This is target node ID right?
Correct.
>
>
>> +
>> + list_for_each_entry_safe(folio, tmp, migrate_list, lru) {
>> + nid = folio_xchg_last_cpupid(folio, -1);
>
> Just one doubt: to get the last CPU ID (target node ID) here,
> folio_xchg_last_cpupid()
>
> is used, whereas earlier folio_last_cpupid() was used. Is there a
> specific reason for
>
> using different functions?
This function iterates over the isolated folios looking for the same
target_nid so that all of them can be migrated at once to the given
target_nid. Hence the first call just reads the target_nid from
last_cpupid field to note which nid is of interest in the current
iteration and the next call actually reads target_nid and resets the
last_cpupid field.
Regards,
Bharata.
Powered by blists - more mailing lists