Description of problem: set_node_memory_parameters can not work and failed with error libvirt error code: 8, message: invalid argument: parameter 'shm_pages_shared' not supported when I want to set shm-sleep-millisecs and shm-pages-to-scan Version-Release number of selected component (if applicable): perl-Sys-Virt-0.10.2-1.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. # cat perl-test.pl #!/usr/bin/perl use warnings; use strict; use Sys::Virt; my $uri = "qemu:///system"; my $con = Sys::Virt->new(address => $uri); my %param = (Sys::Virt::NODE_MEMORY_SHARED_PAGES_TO_SCAN => 200, Sys::Virt::NODE_MEMORY_SHARED_SLEEP_MILLISECS => 100); $con->set_node_memory_parameters(\%param); 2. perl perl-test.pl Actual results: libvirt error code: 8, message: invalid argument: parameter 'shm_pages_shared' not supported Expected results: set can succeed Additional info: virsh command succeed # virsh node-memory-tune --shm-pages-to-scan 200 --shm-sleep-millisecs 100 # virsh node-memory-tune Shared memory: shm_pages_to_scan 200 shm_sleep_millisecs 100 shm_pages_shared 0 shm_pages_sharing 0 shm_pages_unshared 0 shm_pages_volatile 0 shm_full_scans 0
This is an issue with the way libvirt-perl does updates. It fetches all memory parameters, updates the changed ones, and sends the whole lot back. It should only send the changed ones.
commit b067d9beac1d65892e41aa81e1b52af70ac1012d Author: Daniel P. Berrange <berrange> Date: Fri Nov 16 14:10:48 2012 +0000 Don't set all typed parameters at once It must not be assumed that all typed parameters which are read, can also be written. Thus when setting typed parameters, the list must be filtered down to only include the parameters that the application has requested to change.
Verify pass on perl-Sys-Virt-0.10.2-4.el6.x86_64 libvirt-0.10.2-3.el6.x86_64 There is no error after execute perl script showed in description. And check the value of shm_pages_to_scan and shm_sleep_millisecs change according to the setting. So verify pass
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/RHBA-2013-0377.html