Skip to content

Commit

Permalink
Meta: Automatically enable WHPX when possible
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnarbeutner authored and awesomekling committed Aug 4, 2021
1 parent 5445155 commit 723c89a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
8 changes: 2 additions & 6 deletions Documentation/BuildInstructionsWindows.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,6 @@ following command in an elevated PowerShell session: \

![WHPX Windows Feature](WHPX_Feature.png)

Set the `SERENITY_VIRT_TECH_ARG` environment variable in your WSL2 shell: \
`export SERENITY_VIRT_TECH_ARG="-accel whpx,kernel-irqchip=off"`
You may have to reboot after enabling the WHPX feature.

You might want to add those environment variables to your shell's configuration file, so that you don't have to set them
manually each time you start a new shell.

Start the VM with `Meta/serenity.sh run` as usual.
Afterwards you can start the VM with `Meta/serenity.sh run` as usual.
27 changes: 17 additions & 10 deletions Meta/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,6 @@ fi

[ -z "$SERENITY_RAM_SIZE" ] && SERENITY_RAM_SIZE=512M

if command -v wslpath >/dev/null; then
case "$SERENITY_QEMU_BIN" in
/mnt/?/*)
[ -z "$SERENITY_QEMU_CPU" ] && SERENITY_QEMU_CPU="max,vmx=off"
SERENITY_KERNEL_CMDLINE="$SERENITY_KERNEL_CMDLINE disable_virtio"
esac
fi

[ -z "$SERENITY_QEMU_CPU" ] && SERENITY_QEMU_CPU="max"

[ -z "$SERENITY_DISK_IMAGE" ] && {
if [ "$SERENITY_RUN" = qgrub ]; then
SERENITY_DISK_IMAGE="grub_disk_image"
Expand Down Expand Up @@ -100,6 +90,23 @@ if [ "$installed_major_version" -lt "$SERENITY_QEMU_MIN_REQ_VERSION" ]; then
die
fi

if command -v wslpath >/dev/null; then
case "$SERENITY_QEMU_BIN" in
/mnt/?/*)
if [ -z "$SERENITY_VIRT_TECH_ARG" ]; then
if [ "$installed_major_version" -gt 5 ]; then
SERENITY_VIRT_TECH_ARG="-accel whpx,kernel-irqchip=off -accel tcg"
else
SERENITY_VIRT_TECH_ARG="-accel whpx -accel tcg"
fi
fi
[ -z "$SERENITY_QEMU_CPU" ] && SERENITY_QEMU_CPU="max,vmx=off"
SERENITY_KERNEL_CMDLINE="$SERENITY_KERNEL_CMDLINE disable_virtio"
esac
fi

[ -z "$SERENITY_QEMU_CPU" ] && SERENITY_QEMU_CPU="max"

if [ -z "$SERENITY_SPICE" ] && "${SERENITY_QEMU_BIN}" -chardev help | grep -iq qemu-vdagent; then
SERENITY_SPICE_SERVER_CHARDEV="-chardev qemu-vdagent,clipboard=on,mouse=off,id=vdagent,name=vdagent"
elif "${SERENITY_QEMU_BIN}" -chardev help | grep -iq spicevmc; then
Expand Down

0 comments on commit 723c89a

Please sign in to comment.