Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-72094

Isolated CPUs appear in libvirt python vcpuPinInfo() api

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • rhel-10.0
    • libvirt-python
    • None
    • No
    • None
    • rhel-virt-core-libvirt-1
    • ssg_virtualization
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None

      What were you trying to do that didn't work?

       
      Isolated CPUs appear in libvirt python api vcpus()and vcpuPinInfo()
       

      Please provide the package NVR for which the bug is seen:

      python3-libvirt-10.9.0-1.el10.x86_64

      libvirt-10.10.0-2.el10.x86_64
      qemu-kvm-9.1.0-6.el10.x86_64

      How reproducible is this bug?:

      100%

      Steps to reproduce

      1.Set isolated cpu
      #sudo grubby --update-kernel=ALL --args="isolcpus=1,2";reboot

      2.Check isolated cpu
      #cat /sys/devices/system/cpu/isolated
      1-2
      #grep -i Cpus_allowed_list /proc/`pidof qemu-kvm`/status
      Cpus_allowed_list: 0,3-47

      3. Check vm xml

      #virsh dumpxml vm1 | grep cpu
        <vcpu placement='static'>8</vcpu>
        <cputune>
          <vcpupin vcpu='0' cpuset='2'/>
        </cputune>

      4. Confirm with virsh vcpuinfo  
      #virsh vcpuinfo vm1

      VCPU:           0
      CPU:            2
      State:          running
      CPU time:       13.0s
      CPU Affinity:   {}y{}-------------------------------------------

      VCPU:            1
      CPU: 38
      State: running
      CPU time: 3.3s
      CPU Affinity: y--yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

      VCPU:                 2
      CPU: 9
      State: running
      CPU time: 3.2s
      CPU Affinity: y--yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
      .....
      5. Check libvirt python
      >>> import libvirt
      >>> con = libvirt.open(None)
      >>> dom = con.lookupByName('vm1')

      Expected results

       >>>dom.vcpuPinInfo(1)

      (True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), ......)

      Actual results

       >>>dom.vcpuPinInfo(1)

      [(False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True)]

       

      Note:

      dom.vcpus() works well.

       

       

              mkletzan@redhat.com Martin Kletzander
              nanli@redhat.com Nannan Li
              Martin Kletzander Martin Kletzander
              Liping Cheng Liping Cheng
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: