view TOOLS/perlbench.pl @ 8575:1d15ca298dda

Fix DVD authentication on Solaris 9. Solaris 9 does not allow USCSICMD ioctls for non-root users on vold devices any more; they are failing with an EPERM "permission denied" error. Now, only root is allowed to run USCSICMD ioctls on vold devices. Fortunatelly there's a new subroutine exported from libsmedia.so (smedia_uscsi_cmd) which allows non-root users to perform user mode SCSI commands on a vold device. (This works with a help of a daemon running as user root, /usr/lib/smedia/rpc.smserverd) This change detects the presence of function "smedia_uscsi_cmd" in library libsmedia.so at runtime, and uses this function if it's found (i.e. on solaris 9 smedia_uscsi_cmd() is used to execture user mode scsi commands). On solaris 8 or older, "smedia_uscsi_cmd" is not available and the code falls back to the old ioctl(.. USCSICMD ..) method.
author jkeil
date Fri, 27 Dec 2002 16:29:11 +0000
parents 5cbbf47cae1e
children
line wrap: on
line source

#!/usr/bin/perl -w
use strict;
use constant CMD => "./fastmem2-k7";

sub dobench {
	my $i;
	my ($runs, $sleep, $command) = @_;
	for($i = 0; $i < $runs; $i++) {
		sleep $sleep;
		system $command;
	}
}

print "Single run of sse bench with 1sec sleep:\n";
&dobench(1,1,CMD);
print "Sleeping 10seconds before starting next bench!\n";
sleep 10;		
print "10 runs of sse bench with 0sec sleep:\n";
&dobench(10,0,CMD);
print "Sleeping 10seconds before starting next bench!\n";
sleep 10;		
print "10 runs of sse bench with 1sec sleep:\n";
&dobench(10,1,CMD);
print "Sleeping 10seconds before starting next bench!\n";
sleep 10;		
print "10 runs of sse bench with 2sec sleep:\n";
&dobench(10,2,CMD);
print "Sleeping 10seconds before starting next bench!\n";
sleep 10;		
print "10 runs of sse bench with 3sec sleep:\n";
&dobench(10,3,CMD);
print "Bench finished!\n";