Messages in this thread | | | Date | Thu, 9 Nov 2017 13:33:09 +0900 | From | Joonsoo Kim <> | Subject | Re: [PATCH] mm: page_ext: allocate page extension though first PFN is invalid |
| |
On Wed, Nov 08, 2017 at 10:33:51PM +0900, Jaewon Kim wrote: > 2017-11-08 16:52 GMT+09:00 Joonsoo Kim <iamjoonsoo.kim@lge.com>: > > On Tue, Nov 07, 2017 at 06:44:47PM +0900, Jaewon Kim wrote: > >> online_page_ext and page_ext_init allocate page_ext for each section, but > >> they do not allocate if the first PFN is !pfn_present(pfn) or > >> !pfn_valid(pfn). > >> > >> Though the first page is not valid, page_ext could be useful for other > >> pages in the section. But checking all PFNs in a section may be time > >> consuming job. Let's check each (section count / 16) PFN, then prepare > >> page_ext if any PFN is present or valid. > > > > I guess that this kind of section is not so many. And, this is for > > debugging so completeness would be important. It's better to check > > all pfn in the section. > Thank you for your comment. > > AFAIK physical memory address depends on HW SoC. > Sometimes a SoC remains few GB address region hole between few GB DRAM > and other few GB DRAM > such as 2GB under 4GB address and 2GB beyond 4GB address and holes between them. > If SoC designs so big hole between actual mapping, I thought too much > time will be spent on just checking all the PFNs.
I don't think that it is painful because it is done just once at initialization step. However, if you worry about it, we can use pfn_present() to skip the whole section at once. !pfn_present() guarantees that there is no valid pfn in the section. If pfn_present() returns true, we need to search the whole pages in the section in order to find valid pfn.
And, I think that we don't need to change online_page_ext(). AFAIK, hotplug always adds section aligned memory so pfn_present() check should be enough.
Thanks.
| |