summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-01-20 14:54:34 +0100
committerLudovic Courtès <ludo@gnu.org>2024-02-10 22:59:52 +0100
commitb0a5c0742f7e5cf0df4c0f20dbbb720df1311a70 (patch)
tree1de240307dfa762f3878573d5a4a4bcaf746c5a0 /gnu
parent7a4f585ae1875b1bee29e1f106c7af5ca0cd057d (diff)
vm: Add ‘cpu-count’ field to <virtual-machine>.
* gnu/system/vm.scm (<virtual-machine>)[cpu-count]: New field. (virtual-machine-compiler): Honor it. Change-Id: I907a89365f32ac7a9981c4ae5f59cf6eb199c3cc
Diffstat (limited to 'gnu')
-rw-r--r--gnu/system/vm.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index a95f615e6b..ef4c180058 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -75,6 +75,7 @@
virtual-machine?
virtual-machine-operating-system
virtual-machine-qemu
+ virtual-machine-cpu-count
virtual-machine-volatile?
virtual-machine-graphic?
virtual-machine-memory-size
@@ -326,6 +327,8 @@ useful when FULL-BOOT? is true."
(operating-system virtual-machine-operating-system) ;<operating-system>
(qemu virtual-machine-qemu ;<package>
(default qemu-minimal))
+ (cpu-count virtual-machine-cpu-count ;integer
+ (default 1))
(volatile? virtual-machine-volatile? ;Boolean
(default #t))
(graphic? virtual-machine-graphic? ;Boolean
@@ -363,7 +366,7 @@ FORWARDINGS is a list of host-port/guest-port pairs."
(define-gexp-compiler (virtual-machine-compiler (vm <virtual-machine>)
system target)
(match vm
- (($ <virtual-machine> os qemu volatile? graphic? memory-size
+ (($ <virtual-machine> os qemu cpus volatile? graphic? memory-size
disk-image-size forwardings date)
(let ((options
(append (if (null? forwardings)
@@ -372,6 +375,10 @@ FORWARDINGS is a list of host-port/guest-port pairs."
"user,model=virtio-net-pci,"
(port-forwardings->qemu-options
forwardings))))
+ (if (> cpus 1)
+ `("-smp" ,(string-append "cpus="
+ (number->string cpus)))
+ '())
(if date
`("-rtc"
,(string-append