Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be available on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
Bug 1344494 - [RFE] SLIT table in KVM differs from Host SLIT table - libvirt
Summary: [RFE] SLIT table in KVM differs from Host SLIT table - libvirt
Keywords:
Status: CLOSED DUPLICATE of bug 1454889
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt
Version: 7.2
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: 7.6
Assignee: Michal Privoznik
QA Contact: Luyao Huang
URL:
Whiteboard:
Depends On: 1344450
Blocks: 1344497
TreeView+ depends on / blocked
 
Reported: 2016-06-09 19:39 UTC by Karen Noel
Modified: 2018-02-27 14:07 UTC (History)
17 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of: 1344450
: 1344497 (view as bug list)
Environment:
Last Closed: 2018-02-27 14:07:15 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Karen Noel 2016-06-09 19:39:54 UTC
+++ This bug was initially created as a clone of Bug #1344450 +++

Description of problem:
Partner uses information in the SLIT table to make NUMA placement decisions in their application.  Without accurate information, performance can be impacted.

Passing the correct SLIT table information from the host to the guest seems to make sense as long as the CPUs are pinned in a 1-to-1 fashion between the host and guest.  If the guest consumes all the numa nodes, then the whole table could be passed.  In the case of a guest using only a subset of nodes, the appropriate section (or sections) of the host SLIT table could be used.

The following example is from an 8-socket SGI system (this is not unique to this system however):

Host> numactl -H
…

node   0   1   2   3   4   5   6   7
  0:  10  16  19  16  50  50  50  50
  1:  16  10  16  19  50  50  50  50
  2:  19  16  10  16  50  50  50  50
  3:  16  19  16  10  50  50  50  50
  4:  50  50  50  50  10  16  19  16
  5:  50  50  50  50  16  10  16  19
  6:  50  50  50  50  19  16  10  16
  7:  50  50  50  50  16  19  16  10
 
-------------------------------------------------


Guest> numactl -H
…

node   0   1   2   3   4   5   6   7
  0:  10  20  20  20  20  20  20  20
  1:  20  10  20  20  20  20  20  20
  2:  20  20  10  20  20  20  20  20
  3:  20  20  20  10  20  20  20  20
  4:  20  20  20  20  10  20  20  20
  5:  20  20  20  20  20  10  20  20
  6:  20  20  20  20  20  20  10  20
  7:  20  20  20  20  20  20  20  10


Version-Release number of selected component (if applicable):
Host and guest - RHEL 7.2
qemu-kvm-rhev  10:2.3.0-31

How reproducible:


Steps to Reproduce:
1. Create a guest, pin host and guest CPUs on a 1-to-1 basis
2. Run numactl -H command on host and guest and compare


Actual results:
SLIT tables are different between host and guest

Expected results:
Whole SLIT table or appropriate section of SLIT table in guest and host are the same

Additional info:

--- Additional comment from Karen Noel on 2016-06-09 15:25:14 EDT ---

The NUMA topology is set up by libvirt, while the slit table lives in the guest firmware. 

Should the slit table change after live migration if the destination host is different? I think so, but guests may not expect a dynamic slit table. Application may have to modified to take migration into account.

Comment 1 Daniel Berrangé 2016-08-18 15:11:36 UTC
Libvirt should provide a mechanism in the XML to let us configure SLIT table distances when  setting up NUMA nodes. Applications can then use that as needed - whether the apps lie or tell the truth wrt host SLIT info is a policy decision for the application.

Comment 7 Michal Privoznik 2017-11-14 14:48:21 UTC
Patches proposed on the upstream list:

https://www.redhat.com/archives/libvir-list/2017-November/msg00502.html

Comment 8 Michal Privoznik 2018-02-27 14:07:15 UTC
This is a duplicate of bug 1454889.

Just to make sure we are on the same page - while it makes some sense to set the NUMA distances at domain startup time, they become obsolete once the domain is migrated to a different host (with possibly different distances table). We can't change the table on migration because it is guest ABI. Having said that, it makes sense to set distances only if domain is not going to be migrated.

*** This bug has been marked as a duplicate of bug 1454889 ***


Note You need to log in before you can comment on or make changes to this bug.