mbligh | 34d0117 | 2008-06-05 16:26:31 +0000 | [diff] [blame] | 1 | import signal, os |
| 2 | from autotest_lib.client.bin import autotest_utils, test |
| 3 | from autotest_lib.client.common_lib import utils |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 4 | |
| 5 | class bash_shared_mapping(test.test): |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 6 | version = 3 |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 7 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 8 | # http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz |
| 9 | def setup(self, tarball = 'ext3-tools.tar.gz'): |
| 10 | self.tarball = utils.unmap_url(self.bindir, tarball, |
| 11 | self.tmpdir) |
| 12 | autotest_utils.extract_tarball_to_dir(self.tarball, self.srcdir) |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 13 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 14 | os.chdir(self.srcdir) |
| 15 | utils.system('make bash-shared-mapping usemem') |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 16 | |
| 17 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 18 | def execute(self, testdir = None, iterations = 10000): |
| 19 | if not testdir: |
| 20 | testdir = self.tmpdir |
| 21 | os.chdir(testdir) |
| 22 | file = os.path.join(testdir, 'foo') |
| 23 | # Want to use 3/4 of all memory for each of |
| 24 | # bash-shared-mapping and usemem |
| 25 | kilobytes = (3 * autotest_utils.memtotal()) / 4 |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 26 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 27 | # Want two usemem -m megabytes in parallel in background. |
| 28 | pid = [None, None] |
| 29 | usemem = os.path.join(self.srcdir, 'usemem') |
| 30 | args = ('usemem', '-N', '-m', '%d' % (kilobytes / 1024)) |
| 31 | # print_to_tty ('2 x ' + ' '.join(args)) |
| 32 | for i in (0,1): |
| 33 | pid[i] = os.spawnv(os.P_NOWAIT, usemem, args) |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 34 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 35 | cmd = "%s/bash-shared-mapping %s %d -t %d -n %d" % \ |
| 36 | (self.srcdir, file, kilobytes, |
| 37 | count_cpus(), iterations) |
| 38 | os.system(cmd) |
mbligh | e7a170f | 2006-12-05 07:48:18 +0000 | [diff] [blame] | 39 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame^] | 40 | for i in (0,1): |
| 41 | os.kill(pid[i], signal.SIGKILL) |