Commit 2ca62b04 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk
Browse files

xen/tmem: Remove the boot options and fold them in the tmem.X parameters.

If tmem is built-in or a module, the user has the option on
the command line to influence it by doing: tmem.<some option>
instead of having a variety of "nocleancache", and
"nofrontswap". The others: "noselfballooning" and "selfballooning";
and "noselfshrink" are in a different driver xen-selfballoon.c
and the patches:

 xen/tmem: Remove the usage of 'noselfshrink' and use 'tmem.selfshrink' bool instead.
 xen/tmem: Remove the usage of 'noselfballoon','selfballoon' and use 'tmem.selfballon' bool instead.

remove them.

Also add documentation.
Signed-off-by: default avatarKonrad Rzeszutek Wilk <>
parent 9fd19653
......@@ -3005,6 +3005,26 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
Force threading of all interrupt handlers except those
marked explicitly IRQF_NO_THREAD.
tmem [KNL,XEN]
Enable the Transcendent memory driver if built-in.
tmem.cleancache=0|1 [KNL, XEN]
Default is on (1). Disable the usage of the cleancache
API to send anonymous pages to the hypervisor.
tmem.frontswap=0|1 [KNL, XEN]
Default is on (1). Disable the usage of the frontswap
API to send swap pages to the hypervisor.
tmem.selfballooning=0|1 [KNL, XEN]
Default is on (1). Disable the driving of swap pages
to the hypervisor.
tmem.selfshrinking=0|1 [KNL, XEN]
Default is on (1). Partial swapoff that immediately
transfers pages from Xen hypervisor back to the
kernel based on different criteria.
topology= [S390]
Format: {off | on}
Specify if the kernel should make use of the cpu
......@@ -33,39 +33,19 @@ __setup("tmem", enable_tmem);
static bool cleancache __read_mostly = true;
static bool selfballooning __read_mostly = true;
module_param(cleancache, bool, S_IRUGO);
static bool selfballooning __read_mostly = true;
module_param(selfballooning, bool, S_IRUGO);
static int __init no_cleancache(char *s)
cleancache = false;
return 1;
__setup("nocleancache", no_cleancache);
static bool frontswap __read_mostly = true;
module_param(frontswap, bool, S_IRUGO);
static int __init no_frontswap(char *s)
frontswap = false;
return 1;
__setup("nofrontswap", no_frontswap);
static bool frontswap_selfshrinking __read_mostly = true;
module_param(frontswap_selfshrinking, bool, S_IRUGO);
static bool selfshrinking __read_mostly = true;
module_param(selfshrinking, bool, S_IRUGO);
#define TMEM_CONTROL 0
......@@ -423,7 +403,7 @@ static int xen_tmem_init(void)
xen_selfballoon_init(selfballooning, frontswap_selfshrinking);
xen_selfballoon_init(selfballooning, selfshrinking);
return 0;
Supports Markdown
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