diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man4/man4.x86/balloon.4 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man4/man4.x86/balloon.4')
| -rw-r--r-- | static/netbsd/man4/man4.x86/balloon.4 | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/static/netbsd/man4/man4.x86/balloon.4 b/static/netbsd/man4/man4.x86/balloon.4 new file mode 100644 index 00000000..9ad6521a --- /dev/null +++ b/static/netbsd/man4/man4.x86/balloon.4 @@ -0,0 +1,209 @@ +.\" $NetBSD: balloon.4,v 1.11 2014/03/18 18:20:40 riastradh Exp $ +.\" +.\" Copyright (c) 2011 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Jean-Yves Migeon <jym@NetBSD.org>. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd July 30, 2011 +.Dt BALLOON 4 xen +.Os +.Sh NAME +.Nm balloon +.Nd Xen memory balloon driver +.Sh SYNOPSIS +.Cd "balloon* at xenbus?" +.Sh DESCRIPTION +The +.Nm +driver supports the memory ballooning operations offered in +.Tn Xen +environments. +It allows shrinking or extending a domain's available memory by passing +pages between different domains. +At any time, the total memory available to a domain is called the +``reservation''. +.Pp +Pages are moved via the use of the balloon, a reserved quantity +of memory available to all domains that can be freely deflated (or inflated) +at a domain's will. +Deflating balloon means that pages are moved out from it, and bound to +domain's virtual memory. +Respectively, inflating balloon indicates that pages are moved out of +domain's memory and pushed inside balloon. +This is similar to a dynamic allocation of wired physical memory, except +that the pages are not available to domain anymore. +.Pp +Any domain is free to request memory from +.Nm +up to the maximum value set by the host's administrator through the +.Ic mem-max +command of +.Xr xm 1 . +Alternatively, the host's administrator is free to request to a particular +domain to give some memory back. +This command requires the targeted domain's cooperation and requires +.Nm balloon +support within it. +This can be done through the +.Ic mem-set +command of +.Xr xm 1 . +Alternatively, one can control the ballooning directly by writing +under the +.Dq memory/target +node inside Xenstore. +This entry controls the target memory reservation +of a given domain, indicated in kilobytes (KiB). +.Pp +An interface to control +.Nm +is also available through +.Xr sysctl 8 +under +.Dq machdep.xen.balloon +(all values being in kilobytes): +.Bl -tag -width xxxxxxx +.It current +(read-only) The current memory reservation of the domain. +.It min +(read-write) The minimum reservation value acceptable by the domain's +.Nm balloon +driver. +Any request that would require domain to reduce its reservation below +this threshold will be refused by the driver. +This can be used by a domain's administrator to control the number of memory +pages that will be kept available to domain. +.It max +(read-only) The maximum reservation accessible to a domain. +Its value can only be changed by the dom0's administrator, through the +.Ic mem-max +command of +.Xr xm 1 . +.It target +(read-write) The target reservation of the domain. +This entry serves the same purpose as the +.Dq memory/target +entry in Xenstore. +This controls the targeted number of pages that the domain should have. +Note that this is only a target, and may not be achieved for a variety of +reasons. +.El +.Sh DIAGNOSTICS +.Bl -diag +.It "WARNING: balloon could not reach target %zu (current %zu)" +.Nm +failed to reach the target reservation. +This is typically due to a target set too low; the kernel prevented +memory exhaustion by refusing further allocation. +.It "increase reservation incomplete: was %zu, returned %d" +The hypervisor only gave a partial set of memory pages to domain. +This happens when host's memory consumption is high, and hypervisor +is unable to give enough free pages back to domain. +.It "memory 'hot-plug' unsupported - clipping reservation %zu => %zu pages." +An attempt was made by domain to get more memory than initially obtained +during boot. +As physical memory pages cannot be added to memory management sub-system +dynamically, +.Nm +will limit reservation up to the maximum value it can handle. +.El +.Sh ERRORS +When setting the minimum threshold or target reservation entries through +.Dq machdep.xen.balloon , +the following errors can be returned: +.Bl -tag -width Er +.It Bq Er EPERM +The value passed is beyond limits. +The new value is either too low +.Po Dq min +is below driver's safeguard value, or +.Dq target +is below minimum value +.Pc , +or too high +.Po Dq target +is above maximum value +.Pc . +.El +.Sh SEE ALSO +.Xr xm 1 , +.Xr xenbus 4 , +.Xr uvm 9 +.Rs +.%A Carl A. Waldspurger +.%T "Memory Resource Management in VMware ESX Server" +.%I USENIX Association +.%B Proceedings of the 5th Symposium on \ +Operating Systems Design and Implementation +.%D December 9-11, 2002 +.%U http://www.usenix.org/events/osdi02/tech/full_papers/waldspurger/waldspurger.pdf +.Re +.\" +.Sh HISTORY +The +.Nm +driver first appeared in +.Nx 6.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Cherry G. Mathew Aq Mt cherry@NetBSD.org +and +.An Jean-Yves Migeon Aq Mt jym@NetBSD.org . +.Sh BUGS +There are a number of reasons why a domain may not attain the targeted +memory reservation: +.Nm +can be empty and cannot be collapsed further, domain +may not have enough free memory pages (due to memory fragmentation, +memory exhaustion, ...) so it cannot give enough back to +.Nm . +.Pp +Currently, the virtual memory sub-system of +.Nx +is not capable of ``hot-plugging'' new memory pages into place. +This means that increasing a domain's memory reservation above +its initial maximum value is pointless, as new memory pages +cannot be consumed by the memory management sub-system. +.Pp +Over expanding +.Nm +generates high kernel memory pressure. +While the driver tries to stay as conservative as possible to avoid +crashes, a very low memory reservation will lead to unwanted swap or even +.Fn panic . +.Sh SECURITY CONSIDERATIONS +Ballooning involves moving pages between different domains. +This includes their content, which can lead to information leak. +If you are running domains of different sensitivities on the same host, +consider disabling the use of ballooning altogether. +The +.Nx +kernel zeroes all pages before relinquishing them to +.Nm +but this may not be the case for other operating systems. |
