Bug 872656

Summary: virNodeGetMemoryParameters is broken on older kernels
Product: Red Hat Enterprise Linux 6 Reporter: Daniel Berrangé <berrange>
Component: libvirtAssignee: Osier Yang <jyang>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.4CC: acathrow, dallan, dyasny, dyuan, mzhan, rwu, zhpeng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-0.10.2-11.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 07:11:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 886216    

Description Daniel Berrangé 2012-11-02 16:43:26 UTC
Description of problem:

The following commit is broken on most kernels which lack the 'merge_across_nodes' sysfs parameter

commit f81f0f2f1d703a84d94018b99f38500ad7b63085
Author: Osier Yang <jyang>
Date:   Fri Oct 12 16:25:42 2012 +0800

    node_memory: Add new parameter field to tune the new sysfs knob
    
    Upstream kernel introduced new sysfs knob "merge_across_nodes" to
    specify if pages from different numa nodes can be merged. When set
    to 0, only pages which physically reside in the memory area of
    same NUMA node can be merged. When set to 1, pages from all nodes
    can be merged.
    
    This patch supports the tuning by adding new param field
    "shm_merge_across_nodes".

# uname -r
2.6.32-330.el6.x86_64
# virsh  node-memory-tune
error: Unable to get memory parameters
error: Failed to open file '/sys/kernel/mm/ksm/merge_across_nodes': No such file or directory


Version-Release number of selected component (if applicable):
libvirt-0.10.2-4.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1. virsh node-memory-tune
2.
3.
  
Actual results:
error: Failed to open file '/sys/kernel/mm/ksm/merge_across_nodes': No such file or directory

Expected results:
List of memory parameters

Additional info:

Comment 2 Eric Blake 2012-11-02 16:54:41 UTC
Design wise, I think it would be better to hard-code the parameter to the appropriate value when the file is missing (and reject attempts to change it away from that value); but another alternative would be to omit the parameter altogether if we can detect that it is not supported by the kernel.  Either way, though, I agree that getting parameters shouldn't fail just because the kernel didn't support changing the parameter.

Comment 3 Osier Yang 2012-12-03 13:19:05 UTC
http://post-office.corp.redhat.com/archives/rhvirt-patches/2012-December/msg00006.html

Patches posted internally.

Comment 5 zhpeng 2012-12-06 08:16:45 UTC
pkgs:
libvirt-0.10.2-11.el6.x86_64
kernel-2.6.32-343.el6.x86_64

steps same as comment 0

Verified.

Comment 6 errata-xmlrpc 2013-02-21 07:11:26 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0276.html