cpu config: map depreacated IceLake-Client CPU type to IceLake-Server

the former CPU type never existed on the market and will be dropped
by QEMU 7.1, so map it to the server variant as they're pretty much
identical anyway FIWCT.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2022-08-30 09:04:41 +02:00
parent b0ab346381
commit 0d6962f935
3 changed files with 62 additions and 2 deletions

View File

@ -29,6 +29,12 @@ sub load_custom_model_conf {
return cfs_read_file($default_filename);
}
my $depreacated_cpu_map = {
# there never was such a client CPU, so map it to the server one for backward compat
'Icelake-Client' => 'Icelake-Server',
'Icelake-Client-noTSX' => 'Icelake-Server-noTSX',
};
my $cpu_vendor_list = {
# Intel CPUs
486 => 'GenuineIntel',
@ -64,8 +70,8 @@ my $cpu_vendor_list = {
'Cascadelake-Server' => 'GenuineIntel',
'Cascadelake-Server-noTSX' => 'GenuineIntel',
KnightsMill => 'GenuineIntel',
'Icelake-Client' => 'GenuineIntel',
'Icelake-Client-noTSX' => 'GenuineIntel',
'Icelake-Client' => 'GenuineIntel', # depreacated, removed with QEMU 7.1
'Icelake-Client-noTSX' => 'GenuineIntel', # depreacated, removed with QEMU 7.1
'Icelake-Server' => 'GenuineIntel',
'Icelake-Server-noTSX' => 'GenuineIntel',
@ -358,6 +364,8 @@ sub print_cpu_device {
my $custom_cpu = get_custom_model($cpu);
$cpu = $custom_cpu->{'reported-model'} // $cpu_fmt->{'reported-model'}->{default};
} elsif (my $replacement_type = $depreacated_cpu_map->{$cpu}) {
$cpu = $replacement_type;
}
}
@ -475,6 +483,10 @@ sub get_cpu_options {
$hv_vendor_id = $custom_cpu->{'hv-vendor-id'};
}
if (my $replacement_type = $depreacated_cpu_map->{$cputype}) {
$cputype = $replacement_type;
}
# VM-specific settings override custom CPU config
$kvm_off = $cpu->{hidden} if defined($cpu->{hidden});
$hv_vendor_id = $cpu->{'hv-vendor-id'} if defined($cpu->{'hv-vendor-id'});

View File

@ -0,0 +1,15 @@
# TEST: test CPU type depreacation for Icelake-Client (never existed in the wild)
# QEMU_VERSION: 7.1
bootdisk: scsi0
cores: 2
cpu: Icelake-Client
ide2: none,media=cdrom
memory: 768
name: simple
net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
ostype: l26
scsi0: local:8006/base-8006-disk-0.qcow2,discard=on,size=104858K
scsihw: virtio-scsi-pci
smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
sockets: 1
vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8

View File

@ -0,0 +1,33 @@
/usr/bin/kvm \
-id 8006 \
-name 'simple,debug-threads=on' \
-no-shutdown \
-chardev 'socket,id=qmp,path=/var/run/qemu-server/8006.qmp,server=on,wait=off' \
-mon 'chardev=qmp,mode=control' \
-chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' \
-mon 'chardev=qmp-event,mode=control' \
-pidfile /var/run/qemu-server/8006.pid \
-daemonize \
-smbios 'type=1,uuid=7b10d7af-b932-4c66-b2c3-3996152ec465' \
-smp '2,sockets=1,cores=2,maxcpus=2' \
-nodefaults \
-boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
-vnc 'unix:/var/run/qemu-server/8006.vnc,password=on' \
-cpu 'Icelake-Server,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,vendor=GenuineIntel' \
-m 768 \
-device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' \
-device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' \
-device 'vmgenid,guid=c773c261-d800-4348-9f5d-167fadd53cf8' \
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
-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/base-8006-disk-0.qcow2,if=none,id=drive-scsi0,discard=on,format=qcow2,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:A0,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
-machine 'type=pc+pve0'