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