Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-70175

Cannot hotplug CPU from UI when "cpu.threads" is not defined in the VM spec

XMLWordPrintable

    • Quality / Stability / Reliability
    • 0.42
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • Important
    • Customer Reported
    • None

      Description of problem:

      A VM migrated using MTV does not have threads defined in its CPU spec:

       

      # oc get vm test-rhel-9 -o yaml |yq '.spec.template.spec.domain.cpu'
      cores: 1
      sockets: 3
      
      # oc get vmi test-rhel-9 -o yaml |yq '.spec.domain.cpu'
      cores: 1
      maxSockets: 12
      model: host-model
      sockets: 3

      Following is the topology in dumpxml:

      # oc exec virt-launcher-test-rhel-9-pc8xm -- virsh -r dumpxml 1|grep -i topology
          <topology sockets='12' dies='1' clusters='1' cores='1' threads='1'/>

      Hot plugging CPU to this VM is not working, since it also adds "threads" to the VM spec and marks the VM as "RestartRequired".

      # oc get vm test-rhel-9 -o yaml |yq '.spec.template.spec.domain.cpu,.status.conditions[3]'
      cores: 1
      sockets: 4
      threads: 1
      
      lastProbeTime: null
      lastTransitionTime: "2025-10-02T14:46:46Z"
      message: a non-live-updatable field was changed in the template spec
      status: "True"
      type: RestartRequired

      For the same VM, hotplug works if I edit the VM spec directly and only increase the socket value. 

      Version-Release number of selected component (if applicable):

      OpenShift Virtualization   4.19.6 (also reproduced in 4.18)

      How reproducible:

      100%

      Steps to Reproduce:

      1. Either migrate a VM from VMware using MTV or create a new VM from a template and remove the "threads" from the cpu.
      2. Start the VM.
      3. Try to hotplug CPU to the VM from the UI. It will fail and console will show the pending change "a non-live-updatable field was changed in the template spec" 

      Actual results:

      The issue affects all VMs migrated from VMware to OpenShift Virtualization where we cannot hotplug CPU since they don't have "cpu.threads" in the VM spec. 

      Expected results:

      If we are not passing "threads" in the spec, it is by default considering the thread as 1. During hotplug,I think it shouldn't add the thread in the VM spec and should only increment the socket value. 

      Additional info:

       

              upalatuc@redhat.com Ugo Palatucci
              rhn-support-nashok Nijin Ashok
              Pedro Abreu Pedro Abreu
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: