Merge branch 'devel-overhead-cfg' of https://github.com/woju/qubes-doc into woju-devel-overhead-cfg

This commit is contained in:
Andrew David Wong 2018-11-15 20:59:01 -06:00
commit b665a772dd
No known key found for this signature in database
GPG Key ID: 8CE137352A019A17
2 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,42 @@
---
layout: doc
title: GUI Configuration and Troubleshooting
permalink: /doc/gui-configuration/
---
GUI Configuration and Troubleshooting
=====================================
Video RAM adjustment for big displays
-------------------------------------
Symptom: I have 4K external display and I when I connect it, I can't click on
anything but an small area in upper-right corner.
When a qube starts, fixed amount of RAM is allocated for graphics buffer called
Video RAM. This buffer needs to be at least as big as whole desktop, accounting
for all displays that are or will be connected to the machine. So by default it
is as big as needed for current display and an additional Full HD display
(1920×1080 8 bit/channel RGBA). This logic fails when the machine has primary
display in FHD resolution, but after starting the VMs a 4K display is connected.
The buffer is too small and internal desktop resize fails.
Solution: Adjust minimum size of Video RAM buffer.
```sh
qvm-features dom0 gui-videoram-min $(($WIDTH * $HEIGHT * 4 / 1024))
qvm-features dom0 gui-videoram-overhead 0
```
Where `$WIDTH`×`$HEIGHT` is maximum desktop size the user anticipates. For
example, if user needs 1080p and 4k display side-by-side, that is
`(1920 + 3840) × 2160 × 4 / 1024 = 48600`, or slightly above 48 MiB per-qube.
After adjustment, the VMs need to be restarted.
The amount of memory allocated per-qube is the maximum of:
- `gui-videoram-min`
- current display + `gui-videoram-overhead`.
Default overhead is about 8 MiB, which is enough for 1080p display (see above).
So the `gui-videoram-overhead` zeroing is not strictly necessary, it only avoids
allocating memory that will not be used.

View File

@ -90,6 +90,9 @@ to set the policy using current mechanism.
| `admin.vm.feature.List` | vm | - | - | `<feature>\n` |
| `admin.vm.feature.Get` | vm | feature | - | value |
| `admin.vm.feature.CheckWithTemplate` | vm | feature | - | value |
| `admin.vm.feature.CheckWithNetvm` | vm | feature | - | value |
| `admin.vm.feature.CheckWithAdminVM` | vm | feature | - | value |
| `admin.vm.feature.CheckWithTemplateAndAdminVM`| vm | feature | - | value |
| `admin.vm.feature.Remove` | vm | feature | - | - |
| `admin.vm.feature.Set` | vm | feature | value | - |
| `admin.vm.tag.List` | vm | - | - | `<tag>\n` |