[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [mini-os master] mini-os: get maximum memory size from hypervisor
commit e8e4f37156b847cb79e81fcec2622e183a4e20e6 Author: Juergen Gross <jgross@xxxxxxxx> AuthorDate: Tue Jul 19 07:23:02 2016 +0200 Commit: Juergen Gross <jgross@xxxxxxxx> CommitDate: Thu Aug 11 13:03:57 2016 +0200 mini-os: get maximum memory size from hypervisor Add support for obtaining the maximum memory size from the hypervisor. This will make it possible to support ballooning. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Acked-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> --- balloon.c | 22 ++++++++++++++++++++++ include/balloon.h | 6 ++++++ mm.c | 2 ++ 3 files changed, 30 insertions(+) diff --git a/balloon.c b/balloon.c index f9cf23b..1ec113d 100644 --- a/balloon.c +++ b/balloon.c @@ -21,4 +21,26 @@ * DEALINGS IN THE SOFTWARE. */ +#include <mini-os/os.h> #include <mini-os/balloon.h> +#include <mini-os/lib.h> +#include <xen/xen.h> +#include <xen/memory.h> + +unsigned long nr_max_pages; + +void get_max_pages(void) +{ + long ret; + domid_t domid = DOMID_SELF; + + ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid); + if ( ret < 0 ) + { + printk("Could not get maximum pfn\n"); + return; + } + + nr_max_pages = ret; + printk("Maximum memory size: %ld pages\n", nr_max_pages); +} diff --git a/include/balloon.h b/include/balloon.h index 9756a3f..cd79017 100644 --- a/include/balloon.h +++ b/include/balloon.h @@ -26,7 +26,13 @@ #ifdef CONFIG_BALLOON +extern unsigned long nr_max_pages; + +void get_max_pages(void); + #else /* CONFIG_BALLOON */ +static inline void get_max_pages(void) { } + #endif /* CONFIG_BALLOON */ #endif /* _BALLOON_H_ */ diff --git a/mm.c b/mm.c index 8cf3210..6d82f2a 100644 --- a/mm.c +++ b/mm.c @@ -38,6 +38,7 @@ #include <mini-os/hypervisor.h> #include <xen/memory.h> #include <mini-os/mm.h> +#include <mini-os/balloon.h> #include <mini-os/types.h> #include <mini-os/lib.h> #include <mini-os/xmalloc.h> @@ -361,6 +362,7 @@ void init_mm(void) printk("MM: Init\n"); + get_max_pages(); arch_init_mm(&start_pfn, &max_pfn); /* * now we can initialise the page allocator -- generated by git-patchbot for /home/xen/git/mini-os.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |