On 24 Mar 2023, at 11:17, Michal Koutný wrote: > Hello. > > On Mon, Mar 20, 2023 at 08:48:26PM -0400, Zi Yan wrote: >> @@ -5746,8 +5746,8 @@ static void *make_alloc_exact(unsigned long addr, unsigned int order, >> struct page *page = virt_to_page((void *)addr); >> struct page *last = page + nr; >> >> - split_page_owner(page, 1 << order); >> - split_page_memcg(page, 1 << order); >> + split_page_owner(page, 1 << order, 1); >> + split_page_memcg(page, 1 << order, 1); > > I think here should be > >> + split_page_owner(page, order, 0); >> + split_page_memcg(page, 1 << order, 1); > > because I was wondering why split_page_memcg() doesn't use orders too? > (E.g. it wouldn't work well if nr % new_new != 0). Thanks. Good point. I will make both use orders instead in next version. -- Best Regards, Yan, Zi