Compare commits
4 Commits
4abd973336
...
bcbd8b7535
Author | SHA1 | Date |
---|---|---|
Massaki Archambault | bcbd8b7535 | |
Massaki Archambault | 24b10017cb | |
Massaki Archambault | 7fe8780f87 | |
Massaki Archambault | c12bdd4855 |
|
@ -10,7 +10,8 @@
|
|||
- '046d:c539' # Logitech, Inc. USB Receiver
|
||||
- '046d:c08d' # Logitech, Inc. G502 LIGHTSPEED Wireless Gaming Mouse
|
||||
keyboards:
|
||||
- '/dev/input/by-id/usb-0d3d_USBPS2-event-kbd'
|
||||
# - '/dev/input/by-id/usb-0d3d_USBPS2-event-kbd'
|
||||
- '/dev/input/by-path/platform-i8042-serio-0-event-kbd'
|
||||
mice: []
|
||||
roles:
|
||||
- win10
|
||||
|
|
|
@ -7,8 +7,8 @@ prepare() {
|
|||
drop-caches \
|
||||
compact-memory \
|
||||
irq-affinity mask C1-3,5-7 \
|
||||
cpuset-create --cpus C0,4 /host.slice \
|
||||
cpuset-create --cpus C1-3,5-7 -nlb /win10.slice \
|
||||
cpuset-modify --cpus C0,4 /system.slice \
|
||||
cpuset-modify --cpus C0,4 /user.slice \
|
||||
move-tasks / /host.slice \
|
||||
cpu-governor performance C0-7
|
||||
|
||||
|
@ -21,15 +21,8 @@ prepare() {
|
|||
}
|
||||
|
||||
release() {
|
||||
echo "Restore system"
|
||||
|
||||
# restore cgroupv2
|
||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0,1,2,3,4,5,6,7
|
||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0,1,2,3,4,5,6,7
|
||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0,1,2,3,4,5,6,7
|
||||
|
||||
vfio-isolate restore /tmp/win10.undo
|
||||
systemctl stop win10-usb
|
||||
vfio-isolate restore /tmp/win10.undo
|
||||
sysctl -w vm.nr_hugepages=0
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
options kvm_intel nested=1
|
|
@ -7,6 +7,7 @@
|
|||
- virt-manager
|
||||
- python-evdev
|
||||
- python-pyudev
|
||||
# - vendor-reset-dkms-git
|
||||
notify:
|
||||
- restart libvirtd.service
|
||||
- restart virtlogd.socket
|
||||
|
@ -47,9 +48,15 @@
|
|||
line: 'MODULES=(vfio_pci vfio vfio_iommu_type1 vfio_virqfd i915)'
|
||||
notify: regenerate linux initramfs
|
||||
|
||||
- name: configure vfio-pci device ids
|
||||
- name: configure kvm kernel module
|
||||
copy:
|
||||
src: modprobe/kvm.conf
|
||||
dest: /etc/modprobe.d/kvm.conf
|
||||
notify: regenerate linux initramfs
|
||||
|
||||
- name: configure vfio-pci kernel module
|
||||
template:
|
||||
src: vfio.conf.j2
|
||||
src: modprobe/vfio.conf.j2
|
||||
dest: /etc/modprobe.d/vfio.conf
|
||||
notify: regenerate linux initramfs
|
||||
|
||||
|
|
|
@ -42,41 +42,42 @@
|
|||
<vapic state='on'/>
|
||||
<spinlocks state='on' retries='8191'/>
|
||||
<vpindex state='on'/>
|
||||
<runtime state='on'/>
|
||||
<synic state='on'/>
|
||||
<stimer state='on'/>
|
||||
<tlbflush state='on'/>
|
||||
<ipi state='on'/>
|
||||
<stimer state="on">
|
||||
<direct state="on"/>
|
||||
</stimer>
|
||||
<reset state='on'/>
|
||||
<!-- <vendor_id state='on' value='other'/> -->
|
||||
<frequencies state='on'/>
|
||||
<reenlightenment state='on'/>
|
||||
<!-- nvidia code 43 fix -->
|
||||
<vendor_id state='on' value='fNvidia'/>
|
||||
<tlbflush state='on'/>
|
||||
<ipi state='on'/>
|
||||
<evmcs state='off'/>
|
||||
</hyperv>
|
||||
<kvm>
|
||||
<!-- nvidia code 43 fix -->
|
||||
<hidden state='on'/>
|
||||
</kvm>
|
||||
<vmport state='off'/>
|
||||
<ioapic driver='kvm'/>
|
||||
</features>
|
||||
<cpu mode='host-passthrough' check='none'>
|
||||
<cpu mode='host-passthrough' check='partial'>
|
||||
<topology sockets='1' cores='3' threads='2'/>
|
||||
<cache mode='passthrough'/>
|
||||
<feature policy='require' name='invtsc'/>
|
||||
<!-- required for Genshin Impact, come with a performance hit -->
|
||||
<feature policy="disable" name="hypervisor"/>
|
||||
<!-- <feature policy="disable" name="hypervisor"/> -->
|
||||
</cpu>
|
||||
<clock offset='localtime'>
|
||||
<timer name='rtc' present='no' tickpolicy='catchup'/>
|
||||
<timer name='pit' present='no' tickpolicy='delay'/>
|
||||
<timer name='hpet' present='no'/>
|
||||
<timer name='kvmclock' present='no'/>
|
||||
<timer name='hypervclock' present='yes'/>
|
||||
<timer name='tsc' present='yes' mode='native'/>
|
||||
<timer name='hypervclock' present='yes'/>
|
||||
<timer name='rtc' tickpolicy='catchup'/>
|
||||
<timer name='pit' tickpolicy='delay'/>
|
||||
<timer name='hpet' present='no'/>
|
||||
</clock>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<!-- Because of the reset bug, we cannot actually restart without restarting the host -->
|
||||
<on_reboot>destroy</on_reboot>
|
||||
<!-- Because of the AMD reset bug, we cannot actually restart normally -->
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<pm>
|
||||
<suspend-to-mem enabled='no'/>
|
||||
|
@ -173,9 +174,11 @@
|
|||
<address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
|
||||
</interface>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='mouse' bus='virtio'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<graphics type='spice'>
|
||||
<listen type='socket' socket='/tmp/win10-spice.sock'/>
|
||||
<input type='keyboard' bus='virtio'/>
|
||||
<graphics type='spice' listen='127.0.0.1' port='5900' defaultMode='insecure'>
|
||||
<listen type='address' address='127.0.0.1'/>
|
||||
<image compression='off' />
|
||||
<mouse mode='server'/>
|
||||
<filetransfer enable='no'/>
|
||||
|
@ -210,25 +213,24 @@
|
|||
<address type='usb' bus='0' port='3'/>
|
||||
</redirdev>
|
||||
<memballoon model='none'/>
|
||||
<!-- <memballoon model='virtio'>
|
||||
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
|
||||
</memballoon> -->
|
||||
<shmem name='looking-glass'>
|
||||
<model type='ivshmem-plain'/>
|
||||
<size unit='M'>32</size>
|
||||
<address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
|
||||
</shmem>
|
||||
</devices>
|
||||
<qemu:commandline>
|
||||
<!-- keyboard evdev passthrough -->
|
||||
{% for item in keyboards %}
|
||||
<qemu:arg value='-object'/>
|
||||
<qemu:arg value='input-linux,id=kbd1,evdev=/dev/input/by-id/uinput-persist-keyboard{{ loop.index0 }},grab_all=off,repeat=on'/>
|
||||
{% endfor %}
|
||||
<!-- mouse evdev passthrough -->
|
||||
{% for item in mice %}
|
||||
<qemu:arg value='-object'/>
|
||||
<qemu:arg value='input-linux,id=input5,evdev=/dev/input/by-id/uinput-persist-mouse{{ loop.index0 }}'/>
|
||||
<input type='evdev'>
|
||||
<source dev='/dev/input/by-id/uinput-persist-mouse{{ loop.index0 }}'/>
|
||||
</input>
|
||||
{% endfor %}
|
||||
<!-- keyboard evdev passthrough -->
|
||||
{% for item in keyboards %}
|
||||
<input type='evdev'>
|
||||
<source dev='/dev/input/by-id/uinput-persist-keyboard{{ loop.index0 }}' grab='all' repeat='on'/>
|
||||
</input>
|
||||
{% endfor %}
|
||||
</devices>
|
||||
<qemu:commandline>
|
||||
</qemu:commandline>
|
||||
</domain>
|
||||
|
|
Loading…
Reference in New Issue