Messages in this thread | | | Date | Wed, 09 Jan 2019 11:28:52 +0530 | From | Arun KS <> | Subject | Re: [PATCH v7] mm/page_alloc.c: memory_hotplug: free pages as higher order |
| |
On 2019-01-08 23:43, Michal Hocko wrote: > On Tue 08-01-19 09:56:09, Alexander Duyck wrote: >> On Fri, 2019-01-04 at 10:31 +0530, Arun KS wrote: > [...] >> > static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages, >> > void *arg) >> > { >> > - unsigned long i; >> > unsigned long onlined_pages = *(unsigned long *)arg; >> > - struct page *page; >> > >> > if (PageReserved(pfn_to_page(start_pfn))) >> > - for (i = 0; i < nr_pages; i++) { >> > - page = pfn_to_page(start_pfn + i); >> > - (*online_page_callback)(page); >> > - onlined_pages++; >> > - } >> > + onlined_pages = online_pages_blocks(start_pfn, nr_pages); >> >> Shouldn't this be a "+=" instead of an "="? It seems like you are >> going >> to lose your count otherwise. > > You are right of course. I should have noticed during the review. > Thanks!
I think we don't need to. The caller function is setting onlined_pages = 0 before calling online_pages_range(). And there are no other reference to online_pages_range other than from online_pages().
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/memory_hotplug.c?h=v5.0-rc1#n845
int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_type) { unsigned long flags; unsigned long onlined_pages = 0;
Regards, Arun
| |