]> git.proxmox.com Git - qemu-server.git/commitdiff
cpu hotplug : add print_cpu_device
authorAlexandre Derumier <aderumier@odiso.com>
Mon, 17 Oct 2016 10:18:54 +0000 (12:18 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Mon, 17 Oct 2016 10:51:12 +0000 (12:51 +0200)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/QemuServer.pm

index f4bb4dd41cbef5c1a0ce008bfce6890ab8b18d11..3e069ea574a2b9034684efb01c361baf79fb3d42 100644 (file)
@@ -1674,6 +1674,28 @@ sub print_netdev_full {
     return $netdev;
 }
 
+
+sub print_cpu_device {
+    my ($conf, $id) = @_;
+
+    my $nokvm = defined($conf->{kvm}) && $conf->{kvm} == 0 ? 1 : 0;
+    my $cpu = $nokvm ? "qemu64" : "kvm64";
+    if (my $cputype = $conf->{cpu}) {
+       my $cpuconf = PVE::JSONSchema::parse_property_string($cpu_fmt, $cputype)
+           or die "Cannot parse cpu description: $cputype\n";
+       $cpu = $cpuconf->{cputype};
+    }
+
+    my $sockets = 1;
+    $sockets = $conf->{sockets} if  $conf->{sockets};
+    my $cores = $conf->{cores} || 1;
+
+    my $current_core = ($id - 1) % $cores;
+    my $current_socket = int(($id - $current_core)/$cores);
+
+    return "$cpu-x86_64-cpu,id=cpu$id,socket-id=$current_socket,core-id=$current_core,thread-id=0";
+}
+
 sub drive_is_cdrom {
     my ($drive) = @_;