From xen-devel mailing list, an introduction and proposal from Daniel Kiper on his project (see email and community responses to proposal at http://lists.xensource.com/archives/html/xen-devel/2010-07/msg00410.html):
This year I put an proposal regarding migration from memory ballooning to memory hotplug in Xen to Google Summer of Code 2010 (it was one of my two proposals). It was accepted and now I happy GSoC 2010 student.
My mentor is Jeremy Fitzhardinge. I would like to thank him for his patience and supporting hand.
OK, let’s go to details. When I was playing with Xen I saw that ballooning does not give possibility to extend memory over boundary declared at the start of system. Yes, I know that is by desing however I thought that it is a limitation which could by very annoing in some enviroments (I think especially about servers). That is why I decided to develop some code which remove that one. At the beggining I thought that it should be replaced by memory hotplyg however after some test and discussion with Jeremy we decided to link balooning (for memory
removal) with memory hotplug (for extending memory above boundary declared at the startup of system). Additionaly, we decided to implement this solution for Linux Xen gustes in all forms (PV/i386,x86_64 and HVM/i386,x86_64).
Now, I have done most of the planned tests and wrote a PoC.
Short description of current algorithm (it was prepared for PoC and it will be changed to implement convenient mechanism for user):
– find free (not claimed by another memory region or device)
memory region of PAGES_PER_SECTION << PAGE_SHIFT
size in iomem_resource,
– find all PFNs for choosen memory region
(addr >> PAGE_SHIFT),
– allocate memory from hypervisor by
HYPERVISOR_memory_op(XENMEM_populate_physmap, &memory_region),
– inform system about new memory region and reserve it by
mm/memory_hotplug.c:add_memory(memory_add_physaddr_to_nid(start_addr),
start_addr, PAGES_PER_SECTION << PAGE_SHIFT),
– online memory region by
mm/memory_hotplug.c:online_pages(start_addr >> PAGE_SHIFT,
PAGES_PER_SECTION << PAGE_SHIFT).
Currently, memory is added and onlined in 128MiB blocks (section size for x86), however I am going to do that in smaller chunks.
Additionally, some things are done manually however it will be changed in final implementation.
I would like to mention that this solution does not require any change in Xen hypervisor.
I am going to send you first version of patch (fully working) next week.
Read more
New release marks significant enhancements in performance, security, and versatility across various architectures. SAN FRANCISCO – July 31st, 2024 – The Xen Project, an open source project under the Linux Foundation, is proud to announce the release of Xen Project 4.19. This release marks a significant milestone in enhancing performance, security,
Dear Xen Community, We regret to inform you that the Xen Project is currently experiencing unexpected changes due to the sudden shutdown of our colocated (colo) data center facility by Synoptek. This incident is beyond our control and will impact the continuity of OSSTest (the gating Xen Project CI loop)
Hello Xen Community! We have some thrilling news to share with you all. The highly anticipated talks from this year’s Xen Summit are now live on YouTube! Whether you attended the summit in person or couldn’t make it this time, you can now access all the insightful presentations
With less than 2 weeks to go, are you ready? The Xen Project is gearing up for a summit full of discussions, collaboration and innovation. If you haven’t already done so – get involved by submitting a design session topic. Don’t worry if you can’t attend in person,