[Hotplug_sig] Hotplug Testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> We're planning to test hotplug capability on PowerPC platforms we have
> in house.  Following this text is a description of the systems. 
> Basically we have two systems and an HMC.
> 
> Also following is a brief conversation I had with Dave Hansen about
> possible testing we can do, but I'd like this discussion to move to a
> wider forum.  What suggestions does this group have for our testing
> hotplug given the equipment we have?
> 

Tom, good to run into you again.

I suggest regression testing cpu hotplug/dlpar on regular builds.  I 
would be happy to work with whoever is doing this on the osdl end to 
explain how everything works and develop some tests.  I've attached some 
tests I had handy.  Most of the other approx dozen I have are pretty 
hardcoded to our test environment and need to be cleaned up to be useful 
in other environments.  Not that these are cleaned up either, but they 
should work.  The tests as written require 4 virtual cpus.  They are 
also designed to be run in pairs.  They should run on other 
architectures fine.

As for memory hotplug on ppc64 even compile and boot testing would be a 
good start until things restabalize.  The current -mhp tree needs a hack 
from Mike to even boot properly.  We can then add on incremental tests 
as they would be useful.
-------------- next part --------------
#!/usr/bin/perl

# ignore the next two lines :)
# to make this generic get values from /proc/device-tree/cpus/Power.../linux-logical-name
# %logical_to_physical = ("0" => 0 , "1" => 3, "2" => 4, "3" => 5);



#bring the boot cpu back up
for($i = 0; $i <= 0; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online";
    # check that the file is there
    if(! -e $file_path){
	die "The file " . $file_path . " doesn't exist!\n";
    }
    
    #check it has the correct value
    open(CPU, "<" . $file_path);
    while(<CPU>){
	if($_ != "0"){
	    die "Was looking for a 0 in " . $file_path . " got a " . $_ . "\n";
	}
    }
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

    #put the new value in it
    open(CPU, ">" . $file_path);
    print CPU "1";
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

}

#check the value at least flipped
for($i = 0; $i <= 0; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online\n";
    open(CPU, ">" . $file_path);
    while(<CPU>){
	if($_ != "1"){
	    die "The cpu at " . $file_path . " should be 1 but instead is " . $_ . "\n";
	}
    }

    close(CPU) or die "couldn't close the file\n" . $file_path;
}


print "Test Scenerio 3.4 for CPU DLPAR successful\n";
-------------- next part --------------
#!/usr/bin/perl

# ignore the next two lines :)
# to make this generic get values from /proc/device-tree/cpus/Power.../linux-logical-name
# %logical_to_physical = ("0" => 0 , "1" => 3, "2" => 4, "3" => 5);



#bring the cpus down, except the boot cpu
for($i = 1; $i <= 3; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online";
    # check that the file is there
    if(! -e $file_path){
	die "The file " . $file_path . " doesn't exist!\n";
    }
    
    #check it has the correct value
    open(CPU, "<" . $file_path);
    while(<CPU>){
	if($_ != "1"){
	    die "Was looking for a 1 in " . $file_path . " got a " . $_ . "\n";
	}
    }
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

    #put the new value in it
    open(CPU, ">" . $file_path);
    print CPU "0";
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

}

#check the value at least flipped
for($i = 1; $i <= 3; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online\n";
    open(CPU, ">" . $file_path);
    while(<CPU>){
	if($_ != "0"){
	    die "The cpu at " . $file_path . " should be 0 but instead is " . $_ . "\n";
	}
    }

    close(CPU) or die "couldn't close the file\n" . $file_path;
}


print "Test Scenerio 3.1 for CPU DLPAR successful\n";
-------------- next part --------------
#!/usr/bin/perl

# ignore the next two lines :)
# to make this generic get values from /proc/device-tree/cpus/Power.../linux-logical-name
# %logical_to_physical = ("0" => 0 , "1" => 3, "2" => 4, "3" => 5);



#bring the cpus up, except the boot cpu which is already up
for($i = 1; $i <= 3; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online";
    # check that the file is there
    if(! -e $file_path){
	die "The file " . $file_path . " doesn't exist!\n";
    }
    
    #check it has the correct value
    open(CPU, "<" . $file_path);
    while(<CPU>){
	if($_ != "0"){
	    die "Was looking for a 0 in " . $file_path . " got a " . $_ . "\n";
	}
    }
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

    #put the new value in it
    open(CPU, ">" . $file_path);
    print CPU "1";
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

}

#check the value at least flipped
for($i = 1; $i <= 3; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online\n";
    open(CPU, ">" . $file_path);
    while(<CPU>){
	if($_ != "1"){
	    die "The cpu at " . $file_path . " should be 1 but instead is " . $_ . "\n";
	}
    }

    close(CPU) or die "couldn't close the file\n" . $file_path;
}


print "Test Scenerio 3.2 for CPU DLPAR successful\n";
-------------- next part --------------
#!/usr/bin/perl

# ignore the next two lines :)
# to make this generic get values from /proc/device-tree/cpus/Power.../linux-logical-name
# %logical_to_physical = ("0" => 0 , "1" => 3, "2" => 4, "3" => 5);



#bring the boot cpu down
for($i = 0; $i <= 0; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online";
    # check that the file is there
    if(! -e $file_path){
	die "The file " . $file_path . " doesn't exist!\n";
    }
    
    #check it has the correct value
    open(CPU, "<" . $file_path);
    while(<CPU>){
	if($_ != "1"){
	    die "Was looking for a 1 in " . $file_path . " got a " . $_ . "\n";
	}
    }
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

    #put the new value in it
    open(CPU, ">" . $file_path);
    print CPU "0";
    close(CPU) or die "couldn't close the file " . $file_path . "\n";

}

#check the value at least flipped
for($i = 0; $i <= 0; $i++){
    $file_path = "/sys/devices/system/cpu/cpu" . $i ."/online\n";
    open(CPU, ">" . $file_path);
    while(<CPU>){
	if($_ != "0"){
	    die "The cpu at " . $file_path . " should be 0 but instead is " . $_ . "\n";
	}
    }

    close(CPU) or die "couldn't close the file\n" . $file_path;
}


print "Test Scenerio 3.3 for CPU DLPAR successful\n";

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux