mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-10-04 17:01:46 +00:00
cfg2cmd: make io_uring default
The 'aio' setting is not visible to the guest, and so can be changed during migrations or snapshots without issue. It is thus only dependendent on the actual QEMU version being >= 6.0, not machine version. Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
parent
59e5934270
commit
6d5673c3b6
@ -1523,7 +1523,7 @@ sub get_initiator_name {
|
||||
}
|
||||
|
||||
sub print_drive_commandline_full {
|
||||
my ($storecfg, $vmid, $drive, $pbs_name) = @_;
|
||||
my ($storecfg, $vmid, $drive, $pbs_name, $io_uring) = @_;
|
||||
|
||||
my $path;
|
||||
my $volid = $drive->{file};
|
||||
@ -1599,12 +1599,17 @@ sub print_drive_commandline_full {
|
||||
$cache_direct = 1;
|
||||
}
|
||||
|
||||
# aio native works only with O_DIRECT
|
||||
if (!$drive->{aio}) {
|
||||
if($cache_direct) {
|
||||
$opts .= ",aio=native";
|
||||
if ($io_uring) {
|
||||
# io_uring supports all cache modes
|
||||
$opts .= ",aio=io_uring";
|
||||
} else {
|
||||
$opts .= ",aio=threads";
|
||||
# aio native works only with O_DIRECT
|
||||
if($cache_direct) {
|
||||
$opts .= ",aio=native";
|
||||
} else {
|
||||
$opts .= ",aio=threads";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3667,7 +3672,8 @@ sub config_to_command {
|
||||
push @$devices, '-blockdev', print_pbs_blockdev($pbs_conf, $pbs_name);
|
||||
}
|
||||
|
||||
my $drive_cmd = print_drive_commandline_full($storecfg, $vmid, $drive, $pbs_name);
|
||||
my $drive_cmd = print_drive_commandline_full(
|
||||
$storecfg, $vmid, $drive, $pbs_name, min_version($kvmver, 6, 0));
|
||||
|
||||
# extra protection for templates, but SATA and IDE don't support it..
|
||||
my $read_only = PVE::QemuConfig->is_template($conf)
|
||||
@ -4081,7 +4087,9 @@ sub qemu_objectdel {
|
||||
sub qemu_driveadd {
|
||||
my ($storecfg, $vmid, $device) = @_;
|
||||
|
||||
my $drive = print_drive_commandline_full($storecfg, $vmid, $device);
|
||||
my $kvmver = get_running_qemu_version($vmid);
|
||||
my $io_uring = min_version($kvmver, 6, 0);
|
||||
my $drive = print_drive_commandline_full($storecfg, $vmid, $device, undef, $io_uring);
|
||||
$drive =~ s/\\/\\\\/g;
|
||||
my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_add auto \"$drive\"");
|
||||
|
||||
|
@ -23,10 +23,10 @@
|
||||
-device 'virtio-rng-pci,rng=rng0,max-bytes=1024,period=1000,bus=pci.1,addr=0x1d' \
|
||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=threads' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
|
||||
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \
|
||||
-device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=native,detect-zeroes=unmap' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=io_uring,detect-zeroes=unmap' \
|
||||
-device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' \
|
||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||
-device 'virtio-net-pci,mac=A2:C0:43:77:08:A1,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300,romfile=pxe-virtio.rom' \
|
||||
|
@ -21,10 +21,10 @@
|
||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=threads' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
|
||||
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \
|
||||
-device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=native,detect-zeroes=unmap' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=io_uring,detect-zeroes=unmap' \
|
||||
-device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' \
|
||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||
-device 'virtio-net-pci,mac=A2:C0:43:77:08:A1,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300,romfile=pxe-virtio.rom' \
|
||||
|
@ -21,10 +21,10 @@
|
||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=threads' \
|
||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
|
||||
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \
|
||||
-device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=native,detect-zeroes=unmap' \
|
||||
-drive 'file=/var/lib/vz/images/8006/vm-8006-disk-0.raw,if=none,id=drive-scsi0,discard=on,format=raw,cache=none,aio=io_uring,detect-zeroes=unmap' \
|
||||
-device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' \
|
||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||
-device 'virtio-net-pci,mac=A2:C0:43:77:08:A1,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||
|
Loading…
Reference in New Issue
Block a user