Messages in this thread |  | | | From | Gerrit Huizenga <> | | Subject | Re: [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19 | | Date | Wed, 02 Nov 2005 07:02:23 -0800 |
| |
On Wed, 02 Nov 2005 13:00:48 +0100, Ingo Molnar wrote: > > * Gerrit Huizenga <gh@us.ibm.com> wrote: > > > > > On Wed, 02 Nov 2005 11:41:31 +0100, Ingo Molnar wrote: > > > > > > * Gerrit Huizenga <gh@us.ibm.com> wrote: > > > > > > > > generic unpluggable kernel RAM _will not work_. > > > > > > > > Actually, it will. Well, depending on terminology. > > > > > > 'generic unpluggable kernel RAM' means what it says: any RAM seen by the > > > kernel can be unplugged, always. (as long as the unplug request is > > > reasonable and there is enough free space to migrate in-use pages to). > > > > Okay, I understand your terminology. Yes, I can not point to any > > particular piece of memory and say "I want *that* one" and have that > > request succeed. However, I can say "find me 50 chunks of memory > > of your choosing" and have a very good chance of finding enough > > memory to satisfy my request. > > but that's obviously not 'generic unpluggable kernel RAM'. It's very > special RAM: RAM that is free or easily freeable. I never argued that > such RAM is not returnable to the hypervisor.
Okay - and 'generic unpluggable kernel RAM' has not been a goal for the hypervisor based environments. I believe it is closer to being a goal for those machines which want to hot-remove DIMMs or physical memory, e.g. those with IA64 machines wishing to remove entire nodes.
> > > reliable unmapping of "generic kernel RAM" is not possible even in a > > > virtualized environment. Think of the 'live pointers' problem i outlined > > > in an earlier mail in this thread today. > > > > Yeah - and that isn't what is being proposed here. The goal is to > > ask the kernel to identify some memory which can be legitimately > > freed and hasten the freeing of that memory. > > but that's very easy to identify: check the free list or the clean > list(s). No defragmentation necessary. [unless the unit of RAM mapping > between hypervisor and guest is too coarse (i.e. not 4K pages).]
Ah, but the hypervisor often manages large page sizes, e.g. 64 MB. It doesn't manage page rights for each guest OS at the 4 K granularity. Hypervisors are theoretically light in terms of memory needs and general footprint. Picture the overhead of tracking rights/permissions of each page of memory and its assignment to any of, say, 256 different guest operating systems. For a machine of any size, that would be a huge amount of state for a hypervisor to maintain. Would you really want a hypervisor to keep that much state? Or is it more reasonably for a hypervisor to track, say, 64 MB chunks and the rights of that memory for a number of guest operating systems? Even if the number of guests is small, the data structures for fast memory management would grow quickly.
gerrit - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |