mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-07-08 18:13:59 +02:00
cd1a8952ff
commit c04e989484 upstream.
When a grant entry is still in use by the remote domain, Linux must put
it on a deferred list. Normally, this list is very short, because
the PV network and block protocols expect the backend to unmap the grant
first. However, Qubes OS's GUI protocol is subject to the constraints
of the X Window System, and as such winds up with the frontend unmapping
the window first. As a result, the list can grow very large, resulting
in a massive memory leak and eventual VM freeze.
To partially solve this problem, make the number of entries that the VM
will attempt to free at each iteration tunable. The default is still
10, but it can be overridden via a module parameter.
This is Cc: stable because (when combined with appropriate userspace
changes) it fixes a severe performance and stability problem for Qubes
OS users.
Cc: stable@vger.kernel.org
Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20230726165354.1252-1-demi@invisiblethingslab.com
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
What: /sys/module/pch_phub/drivers/.../pch_mac
|
|
Date: August 2010
|
|
KernelVersion: 2.6.35
|
|
Contact: masa-korg@dsn.okisemi.com
|
|
Description: Write/read GbE MAC address.
|
|
|
|
What: /sys/module/pch_phub/drivers/.../pch_firmware
|
|
Date: August 2010
|
|
KernelVersion: 2.6.35
|
|
Contact: masa-korg@dsn.okisemi.com
|
|
Description: Write/read Option ROM data.
|
|
|
|
|
|
What: /sys/module/ehci_hcd/drivers/.../uframe_periodic_max
|
|
Date: July 2011
|
|
KernelVersion: 3.1
|
|
Contact: Kirill Smelkov <kirr@mns.spb.ru>
|
|
Description: Maximum time allowed for periodic transfers per microframe (μs)
|
|
|
|
Note:
|
|
USB 2.0 sets maximum allowed time for periodic transfers per
|
|
microframe to be 80%, that is 100 microseconds out of 125
|
|
microseconds (full microframe).
|
|
|
|
However there are cases, when 80% max isochronous bandwidth is
|
|
too limiting. For example two video streams could require 110
|
|
microseconds of isochronous bandwidth per microframe to work
|
|
together.
|
|
|
|
Through this setting it is possible to raise the limit so that
|
|
the host controller would allow allocating more than 100
|
|
microseconds of periodic bandwidth per microframe.
|
|
|
|
Beware, non-standard modes are usually not thoroughly tested by
|
|
hardware designers, and the hardware can malfunction when this
|
|
setting differ from default 100.
|
|
|
|
What: /sys/module/*/{coresize,initsize}
|
|
Date: Jan 2012
|
|
KernelVersion: 3.3
|
|
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
|
Description: Module size in bytes.
|
|
|
|
What: /sys/module/*/initstate
|
|
Date: Nov 2006
|
|
KernelVersion: 2.6.19
|
|
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
|
Description: Show the initialization state(live, coming, going) of
|
|
the module.
|
|
|
|
What: /sys/module/*/taint
|
|
Date: Jan 2012
|
|
KernelVersion: 3.3
|
|
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
|
Description: Module taint flags:
|
|
== =====================
|
|
P proprietary module
|
|
O out-of-tree module
|
|
F force-loaded module
|
|
C staging driver module
|
|
E unsigned module
|
|
== =====================
|
|
|
|
What: /sys/module/grant_table/parameters/free_per_iteration
|
|
Date: July 2023
|
|
KernelVersion: 6.5 but backported to all supported stable branches
|
|
Contact: Xen developer discussion <xen-devel@lists.xenproject.org>
|
|
Description: Read and write number of grant entries to attempt to free per iteration.
|
|
|
|
Note: Future versions of Xen and Linux may provide a better
|
|
interface for controlling the rate of deferred grant reclaim
|
|
or may not need it at all.
|
|
Users: Qubes OS (https://www.qubes-os.org)
|