On Wed, 2015-02-04 at 15:27 +0000, Dario Faggioli wrote: > + my $xlinfo= target_cmd_output_root($ho, "xl info"); > + $xlinfo =~ /nr_cpus\s*:\s([0-9]*)/;
I thought Perl needed a modifier to work in multiline mode? > + $nr_cpus= $1; > + logm("Found $nr_cpus pCPUs"); > + die "Too few pCPUs to test cpupools: $nr_cpus" if $nr_cpus < 2; This will cause a sticky test failure if this ever gets run on a single cpu host (which might just about be plausible on ARM). The proper fix would be a property in the hostdb which was used to constrain which hosts the jobs containing this test could run on. (e.g. we have pcipassthrough-nic). Maybe this way is OK until we find we are commissioning a machine with a single CPU, at which point this failure will seem pretty obvious. Ian? > + > + # We want only 1 cpupool to exist > + my $cppinfo= target_cmd_output_root($ho, "xl cpupool-list"); > + my $nr_cpupools= $cppinfo =~ tr/\n//; > + logm("Found $nr_cpupools cpupools"); > + die "There already is more than one cpu pool!" if $nr_cpupools > 1; > + die "Non-default cpupool configuration detected" if $cppinfo =~ > /^$default_cpupool\b/; Shouldn't the condition on the last one be inverted, i.e. die unless Pool-0 is present? Also: long lines? > + > + $out= target_cmd_output_root($ho, "xl cpupool-list"); logm("$out"); > + $out= target_cmd_output_root($ho, "xl cpupool-list -c"); logm("$out"); Is this just for logging? target_cmd_root will just do that for you I think. You may want to include one or more of these in ts-logs-capture too, which allow us to have some chance of noticing pooling oddities on other jobs. > +} > + > +# List of the odd pCPUs > +sub prep_cpulist () { > + if (! defined @cpulist) { > + foreach my $cpu (0..$nr_cpus) { > + next unless $cpu % 2; > + push @cpulist, $cpu; > + } > + } Seems like this ought to be doable as a one or two liner with grep or map. > +} > + > +sub prep ($) { > + my ($sched)= @_; > + > + # Remove the pCPUs from in $cpulist from the default cpupool > + my $cpustr= "["; > + foreach my $cpu (@cpulist) { > + target_cmd_root($ho,"xl cpupool-cpu-remove $default_cpupool $cpu"); > + $cpustr.= "\"$cpu\", "; > + } > + $cpustr.= "]"; I think you should accumulate $cpu in @cpus and then join it at the end and add the []s (or leave them inline in the here doc. > + > + logm("Creating config file for cpupool-osstest-$sched with cpus=$cpustr"); > + > target_putfilecontents_stash($ho,100,<<"END","/etc/xen/cpupool-osstest-$sched"); > +name = "cpupool-osstest-$sched" > +sched=\"$sched\" One of these two quoting styles must be wrong I think? > +cpus=$cpustr > +END > +} > + > +check(); > +prep_cpulist(); > +foreach my $sched (@schedulers) { > + my $out; > + > + prep("$sched"); > + > + # For each cpupool: > + # * create it > + # * rename it > + # * move a domain in it > + # * move back a domain out of it > + # * add back the pcpus from it to the default pool > + # * destroy it > + target_cmd_root($ho, "xl cpupool-create /etc/xen/cpupool-osstest-$sched"); > + target_cmd_output_root($ho, "xl cpupool-rename cpupool-osstest-$sched > cpupool-test"); Doesn't this throw away the output? I think you want to drop _output here. > + $out= target_cmd_output_root($ho, "xl cpupool-list -c"); logm("$out"); What about libvirt? This either needs to use the toolstack()/Osstest::Toolstack abstraction or it needs to error for toolstacks which aren't xl. > + $out= target_cmd_output_root($ho, "xl cpupool-list"); logm("$out"); > + > + target_cmd_root($ho, "xl cpupool-migrate $gho->{Name} cpupool-test"); > + $out= target_cmd_output_root($ho, "xl cpupool-list"); logm("$out"); > + $out= target_cmd_output_root($ho, "xl vcpu-list"); logm("$out"); > + > + target_cmd_root($ho, "xl cpupool-migrate $gho->{Name} Pool-0"); > + $out= target_cmd_output_root($ho, "xl cpupool-list"); logm("$out"); > + > + foreach my $cpu (@cpulist) { > + target_cmd_root($ho,"xl cpupool-cpu-remove cpupool-test $cpu"); > + target_cmd_root($ho,"xl cpupool-cpu-add $default_cpupool $cpu"); > + } > + $out= target_cmd_output_root($ho, "xl cpupool-list -c"); logm("$out"); > + > + target_cmd_root($ho, "xl cpupool-destroy cpupool-test"); > + $out= target_cmd_output_root($ho, "xl cpupool-list"); logm("$out"); > +} > + > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel