[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <KL1P15301MB0261260E5DD0E3BA4FD80BC092970@KL1P15301MB0261.APCP153.PROD.OUTLOOK.COM>
Date: Fri, 11 Oct 2019 14:53:06 +0000
From: Tianyu Lan <Tianyu.Lan@...rosoft.com>
To: Dave Hansen <dave.hansen@...el.com>,
"lantianyu1986@...il.com" <lantianyu1986@...il.com>,
"dan.j.williams@...el.com" <dan.j.williams@...el.com>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"mingo@...nel.org" <mingo@...nel.org>,
"mpe@...erman.id.au" <mpe@...erman.id.au>,
"pasha.tatashin@...een.com" <pasha.tatashin@...een.com>,
"osalvador@...e.de" <osalvador@...e.de>,
"richardw.yang@...ux.intel.com" <richardw.yang@...ux.intel.com>,
"christophe.leroy@....fr" <christophe.leroy@....fr>,
"bp@...e.de" <bp@...e.de>,
"rdunlap@...radead.org" <rdunlap@...radead.org>,
Michael Kelley <mikelley@...rosoft.com>,
KY Srinivasan <kys@...rosoft.com>,
"sashal@...nel.org" <sashal@...nel.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
vkuznets <vkuznets@...hat.com>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>
Subject: RE: [PATCH] mm/resource: Move child to new resource when release mem
region.
On 10/10/2019 10:29 PM, Dave Hansen wrote:> On 10/10/19 12:28 AM, lantianyu1986@...il.com wrote:
>> When release mem region, old mem region may be splited to
>> two regions. Current allocate new struct resource for high
>> end mem region but not move child resources whose ranges are
>> in the high end range to new resource. When adjust old mem
>> region's range, adjust_resource() detects child region's range
>> is out of new range and return error. Move child resources to
>> high end resource before adjusting old mem range.
>
> From the comment, it appears the old code intended to have the behavior
> that you are changing. Could you explain _why_ this has become a
> problem for you?
Hi Dave:
Thanks for your review. current code assumes that all children remain in
the lower address entry for simplicity. For memory hot-remove, selecting
remove region via scanning system memory may hit case of child in the
higher address entry.
For example, the following output from /proc/iomem shows kernel code,
data and bss locate from 3a000000 to 3b5fffff and these resources are the
system ram resource's children. If the 39800000-39ffffff was selected as
remove range, the resource will be split into two ranges 00100000-397fffff
and 39800000-b87f1fff. Current code move kernel image related resources
under 00100000-397fffff resource. This will cause adjust_resource() return
error because children are not in the parent's range.
00100000-b87f1fff : System RAM
3a000000-3ac00e80 : Kernel code
3ac00e81-3b33883f : Kernel data
3b4d3000-3b5fffff : Kernel bss
Powered by blists - more mailing lists