Commit 136d9ebf authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk

Merge branch 'xen-tmem-selfballoon-v8' of...

Merge branch 'xen-tmem-selfballoon-v8' of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem into stable/drivers

* 'xen-tmem-selfballoon-v8' of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:
  xen: tmem: self-ballooning and frontswap-selfshrinking
parents 149bb2fa a50777c7
...@@ -9,6 +9,23 @@ config XEN_BALLOON ...@@ -9,6 +9,23 @@ config XEN_BALLOON
the system to expand the domain's memory allocation, or alternatively the system to expand the domain's memory allocation, or alternatively
return unneeded memory to the system. return unneeded memory to the system.
config XEN_SELFBALLOONING
bool "Dynamically self-balloon kernel memory to target"
depends on XEN && XEN_BALLOON && CLEANCACHE && SWAP
default n
help
Self-ballooning dynamically balloons available kernel memory driven
by the current usage of anonymous memory ("committed AS") and
controlled by various sysfs-settable parameters. Configuring
FRONTSWAP is highly recommended; if it is not configured, self-
ballooning is disabled by default but can be enabled with the
'selfballooning' kernel boot parameter. If FRONTSWAP is configured,
frontswap-selfshrinking is enabled by default but can be disabled
with the 'noselfshrink' kernel boot parameter; and self-ballooning
is enabled by default but can be disabled with the 'noselfballooning'
kernel boot parameter. Note that systems without a sufficiently
large swap device should not enable self-ballooning.
config XEN_SCRUB_PAGES config XEN_SCRUB_PAGES
bool "Scrub pages before returning them to system" bool "Scrub pages before returning them to system"
depends on XEN_BALLOON depends on XEN_BALLOON
......
...@@ -8,6 +8,7 @@ obj-$(CONFIG_BLOCK) += biomerge.o ...@@ -8,6 +8,7 @@ obj-$(CONFIG_BLOCK) += biomerge.o
obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
obj-$(CONFIG_XEN_XENCOMM) += xencomm.o obj-$(CONFIG_XEN_XENCOMM) += xencomm.o
obj-$(CONFIG_XEN_BALLOON) += xen-balloon.o obj-$(CONFIG_XEN_BALLOON) += xen-balloon.o
obj-$(CONFIG_XEN_SELFBALLOONING) += xen-selfballoon.o
obj-$(CONFIG_XEN_DEV_EVTCHN) += xen-evtchn.o obj-$(CONFIG_XEN_DEV_EVTCHN) += xen-evtchn.o
obj-$(CONFIG_XEN_GNTDEV) += xen-gntdev.o obj-$(CONFIG_XEN_GNTDEV) += xen-gntdev.o
obj-$(CONFIG_XEN_GRANT_DEV_ALLOC) += xen-gntalloc.o obj-$(CONFIG_XEN_GRANT_DEV_ALLOC) += xen-gntalloc.o
......
...@@ -98,6 +98,8 @@ static int __init balloon_init(void) ...@@ -98,6 +98,8 @@ static int __init balloon_init(void)
register_balloon(&balloon_sysdev); register_balloon(&balloon_sysdev);
register_xen_selfballooning(&balloon_sysdev);
target_watch.callback = watch_target; target_watch.callback = watch_target;
xenstore_notifier.notifier_call = balloon_init_watcher; xenstore_notifier.notifier_call = balloon_init_watcher;
......
This diff is collapsed.
...@@ -23,3 +23,13 @@ void balloon_set_new_target(unsigned long target); ...@@ -23,3 +23,13 @@ void balloon_set_new_target(unsigned long target);
int alloc_xenballooned_pages(int nr_pages, struct page** pages); int alloc_xenballooned_pages(int nr_pages, struct page** pages);
void free_xenballooned_pages(int nr_pages, struct page** pages); void free_xenballooned_pages(int nr_pages, struct page** pages);
struct sys_device;
#ifdef CONFIG_XEN_SELFBALLOONING
extern int register_xen_selfballooning(struct sys_device *sysdev);
#else
static inline int register_xen_selfballooning(struct sys_device *sysdev)
{
return -ENOSYS;
}
#endif
#ifndef _XEN_TMEM_H
#define _XEN_TMEM_H
/* defined in drivers/xen/tmem.c */
extern int tmem_enabled;
#endif /* _XEN_TMEM_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment