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

Missing or inconsistent resctrl info for memory bandwidth allocation

    • libvirt-10.8.0-1.el10
    • No
    • Moderate
    • sst_virtualization
    • ssg_virtualization
    • 10
    • 2
    • Dev ack
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • 10.8.0
    • None

      Description of problem:

      Missing or inconsistent resctrl info for memory bandwidth allocation

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

      libvirt-10.5.0-5.el9.x86_64
      qemu-kvm-9.0.0-7.el9.x86_64

      How reproducible:

      100%

      Steps to Reproduce:

      1.  On a system with CPU as below:

      # lscpu 
      Architecture:             x86_64
        CPU op-mode(s):         32-bit, 64-bit
        Address sizes:          52 bits physical, 57 bits virtual
        Byte Order:             Little Endian
      CPU(s):                   96
        On-line CPU(s) list:    0-95
      Vendor ID:                AuthenticAMD
        BIOS Vendor ID:         AMD
        Model name:             AMD EPYC 9254 24-Core Processor
          BIOS Model name:      AMD EPYC 9254 24-Core Processor                
          CPU family:           25
          Model:                17
      

      2. configure the rdt related preparation:

      # # grubby --args=rdt=cmt,mbmtotal,mbmlocal,l3cat,l3cdp,mba  --update-kernel=ALL
      # reboot
      

      After reboot, mount the resctrl file system# mount -t resctrl resctrl /sys/fs/resctrl# systemctl restart virtqemud

      3. check capabilities:

      # # virsh capabilities  --xpath //memory_bandwidth
      <memory_bandwidth>
        <node id="0" cpus="0-5,48-53">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="1" cpus="6-11,54-59">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="2" cpus="12-17,60-65">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="3" cpus="18-23,66-71">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="4" cpus="24-29,72-77">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="5" cpus="30-35,78-83">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="6" cpus="36-41,84-89">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <node id="7" cpus="42-47,90-95">
          <control granularity="1" min="0" maxAllocs="16"/>
        </node>
        <monitor maxMonitors="256">
          <feature name="mbm_total_bytes"/>
          <feature name="mbm_total_bytes_config"/>
          <feature name="mbm_local_bytes"/>
          <feature name="mbm_local_bytes_config"/>
        </monitor>
      </memory_bandwidth>
      # cat /sys/fs/resctrl/info/MB/min_bandwidth
      0
      

      4. Try to start vm with memorytune, there is error:

      # virsh dumpxml rhel
      ...  
      <vcpu placement='static' current='2'>6</vcpu>
        <cputune>
          <memorytune vcpus='2-3,5'>
            <node id='0' bandwidth='30'/>
            <node id='1' bandwidth='10'/>
          </memorytune>
        </cputune>
      ...
      # virsh start rhel 
      error: Failed to start domain 'rhel'
      error: internal error: Missing or inconsistent resctrl info for memory bandwidth allocation
      

      Actual results:

      Once the host has min_bandwidth as 0, there will be error like "Missing or inconsistent resctrl info for memory bandwidth allocation" when try to start vm

      Expected results:

      There should not be error

      Additional info:

      check  src/util/virresctrl.c

      1465     if (!resctrl || !resctrl->membw_info ||
      1466         !resctrl->membw_info->min_bandwidth ||
      1467         !resctrl->membw_info->bandwidth_granularity) {
      1468         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
      1469                        _("Missing or inconsistent resctrl info for memory bandwidth allocation"));
      1470         return -1;
      1471     }
      

            mkletzan@redhat.com Martin Kletzander
            yalzhang@redhat.com Yalan Zhang
            virt-maint virt-maint
            Han Han Han Han
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated: