Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/troubleshooting/windows-pv-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,19 @@ See the [XenClean guide](/vms/#fully-removing-xen-pv-drivers-with-xenclean) for
:::note
You will need to reinstall the management agent.
:::

## Windows Server 2025 hangs randomly with 0% CPU

### Cause

This can be due to the Viridian synthetic timer feature being disabled on the guest.

### Solution

First, check that [Viridian extensions are all enabled on your VM](/vms/#enabling-viridian-extensions).
If you've set boot parameters to disable the synthetic timer, they need to be reverted:

```
bcdedit /deletevalue "{current}" useplatformclock
bcdedit /deletevalue "{current}" useplatformtick
```
23 changes: 9 additions & 14 deletions docs/vms/vms.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,20 +340,15 @@ Viridian extensions —referred to as "Viridian enlightenments" by Microsoft—

Viridian enlightenments are enabled by default on Windows VM templates included with XCP-ng.

To enable Viridian enlightenments for other non-Windows VM templates, you need to:

1. **Enable Viridian**. To do this, run `xe vm-param-set uuid=<vm uuid> platform:viridian=true` in your VM.
2. **Enable the extra Viridian parameters** necessary for your template to run optimally with Windows. To do this, run the same `xe` command in your VM, but change the arguments with the following:

```
"device_id": "0002", // ID used by XCP-ng to detect Windows VMs
"viridian": "true",
"viridian_time_ref_count": "true",
"viridian_reference_tsc": "true",
"viridian_apic_assist": "true",
"viridian_crash_ctl": "true",
"viridian_stimer": "true"
```
To enable Viridian enlightenments for other non-Windows VM templates, simply run the following command:

```
xe vm-param-set uuid=<vm-uuid> platform:device_id=0002 platform:viridian=true platform:viridian_time_ref_count=true platform:viridian_reference_tsc=true platform:viridian_apic_assist=true platform:viridian_crash_ctl=true platform:viridian_stimer=true
```

:::warning
Do not set the device ID on VMs with Xen PV drivers installed. Changing the device ID may cause old Xen PV drivers to fail booting.
:::

:::

Expand Down