Comments (3)
Thanks @lyarwood.
Indeed, this is open to interpretation. So far, the general intent was to provide dedicated CPUs to the guest however, the topology assignment was on a best-efforts basis. The only exception was with guestMappingPassthrough
where we are strict about numa nodes assignment.
We can of course follow up and improve the correct behavior by further enhancing the dedicatedCPUs API.
I would start by reporting whether SMP is enabled on the nodes.
from kubevirt.
We can of course follow up and improve the correct behavior by further enhancing the dedicatedCPUs API.
I would start by reporting whether SMP is enabled on the nodes.
ACK thanks for confirming this is a valid thing to fix. It should be easy enough to label a node given the value in /sys/devices/system/cpu/smt/active
and to use that label when scheduling later if threads
is greater than 1. I'll try to find some time to work on this in the coming weeks.
/assign
from kubevirt.
Just for context, guestMappingPassthrough
doesn't check for this case either:
./cluster-up/kubectl.sh apply -f -<<EOF
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
name: dedicated-threads-with-numa
spec:
domain:
cpu:
threads: 2
dedicatedCpuPlacement: true
numa:
guestMappingPassthrough: {}
memory:
guest: 1Gi
hugepages:
pageSize: "2Mi"
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
resources:
requests:
memory: 2Gi
volumes:
- containerDisk:
image: quay.io/containerdisks/fedora:39
name: containerdisk
- cloudInitNoCloud:
userData: |
#!/bin/sh
mkdir -p /home/fedora/.ssh
curl https://github.com/lyarwood.keys > /home/fedora/.ssh/authorized_keys
chown -R fedora: /home/fedora/.ssh
name: cloudinitdisk
EOF
[..]
$ ./cluster-up/kubectl.sh get vmis
NAME AGE PHASE IP NODENAME READY
dedicated-threads-with-numa 12s Running 10.244.196.149 node01 True
from kubevirt.
Related Issues (20)
- Extra wrap of the `exec` commands by `virt-probe` in liveness/readiness probes in vm/vmi, booted from DataVolume. HOT 1
- kubevirt v1.1.1 works in k8s v1.25.16 but kubevirt v1.2.0 does not work and return message "{"component":"virt-launcher-monitor","level":"error","msg":"failed to run virt-launcher","pos":"virt-launcher-monitor.go:181","reason":"fork/exec /usr/bin/virt-launcher: operation not permitted","timestamp":"2024-04-18T12:20:11.433951Z"} HOT 3
- Add Compatibility matrix HOT 5
- Cannot create an AMD64 VM on a hybrid AMD+ARM64 cluster HOT 5
- kubevirtv1.2.0 does not work on k8s v1.28.9, when creating a vm reported error message: {"component":"virt-launcher-monitor","level":"error","msg":"failed to run virt-launcher","pos":"virt-launcher-monitor.go:181","reason":"fork/exec /usr/bin/virt-launcher: operation not permitted","timestamp":"2024-04-24T11:53:56.790431Z"} HOT 36
- VirtualMachineInstance create failed HOT 13
- failed to load Boot0001 "UEFI QEMU HARDDISK QM00001 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0): Not Found
- virtctl console hang all the time HOT 3
- VM metrics should contains the vm and vmi's UUID HOT 6
- hotplugVolume cannot be created??? HOT 2
- Support of running MacroVM on top of a Kubernetes cluster HOT 4
- How to access the virt-launchers libvirt socket for third party applications? HOT 5
- why /usr/bin/virt-launcher-monitor require additional file capability "cap_net_bind_service"? HOT 1
- ArgoCD health state of virt-launcher pod stays 'Progressing' forever HOT 1
- pass through hostdevice by pcie path HOT 11
- sidecar does not build out of tree HOT 2
- sync labels change to pod/vmi when VM label changed
- Live snapshots of previously live updated VM captures the original state of the VM from launch
- kubevirt-update-validator.kubevirt.io: failed to call webhook... context deadline exceeded HOT 3
- Virt-handler heartbeat causes the vm to be restarted when kubelet is restarted. HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kubevirt.