Re: [PATCH 2 of 4] hotplug-memory: adding non-section-aligned memoryis bad

From: Jeremy Fitzhardinge
Date: Fri Mar 28 2008 - 00:20:58 EST


KAMEZAWA Hiroyuki wrote:
On Thu, 27 Mar 2008 19:51:26 -0700
Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

(I wrote online_page() in above, but online_pages() is maybe better.
It does all what you want.)
No, for my use-case the pages must be onlined one by one as they get some physical memory assigned to them. At the time I do add_memory(), I'm just allocating page structures, but there's no memory backing that range.

yes, I see.

That's why I need to disable the sysfs onlining interface, because it bulk onlines the pages before there's anything behind them.


My point is. online_pages() does following things.

- call notifier
- update information , total_pages etc...
- re-configure zonelist if necessary...

But online_page() not. Hmm...

How about capturing online_page() by balloon ?

You're saying that using online_page() on each page on its own is not sufficient?

ex.)
==
call add_memory() to create mem_map
call online_pages() against the whole section. <=== call this without sysfs.
online_pages() do misc. jobs
call online_page() one by one (arch dependent) called by walk_memory_resource.
online_page() will finally call free_page(page).
<=========== Xen capture here.
Don't free onlined page and swallow them into baloon driver.
==

I'm not sure what you mean by "capture" here. Do you mean a hook? I'd rather not have to put some Xen-specific hook in here.

What would happen if I did online_pages(pfn, 1) on each page as I populate it?

J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/