OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # -*- coding: utf-8 -*- | 2 # -*- coding: utf-8 -*- |
3 """ | 3 """ |
4 Auxiliary script used to allocate memory on guests. | 4 Auxiliary script used to allocate memory on guests. |
5 | 5 |
6 @copyright: 2008-2009 Red Hat Inc. | 6 @copyright: 2008-2009 Red Hat Inc. |
7 @author: Jiri Zupka (jzupka@redhat.com) | 7 @author: Jiri Zupka (jzupka@redhat.com) |
8 """ | 8 """ |
9 | 9 |
10 | 10 |
11 import os, array, sys, struct, random, copy, inspect, tempfile, datetime, math | 11 import os, array, sys, random, copy, tempfile, datetime, math |
12 | 12 |
13 PAGE_SIZE = 4096 # machine page size | 13 PAGE_SIZE = 4096 # machine page size |
14 | 14 |
15 TMPFS_OVERHEAD = 0.0022 # overhead on 1MB of write data | 15 TMPFS_OVERHEAD = 0.0022 # overhead on 1MB of write data |
16 | 16 |
17 | 17 |
18 class MemFill(object): | 18 class MemFill(object): |
19 """ | 19 """ |
20 Fills guest memory according to certain patterns. | 20 Fills guest memory according to certain patterns. |
21 """ | 21 """ |
22 def __init__(self, mem, static_value, random_key): | 22 def __init__(self, mem, static_value, random_key): |
23 """ | 23 """ |
24 Constructor of MemFill class. | 24 Constructor of MemFill class. |
25 | 25 |
26 @param mem: Amount of test memory in MB. | 26 @param mem: Amount of test memory in MB. |
27 @param random_key: Seed of random series used for fill up memory. | 27 @param random_key: Seed of random series used for fill up memory. |
28 @param static_value: Value used to fill all memory. | 28 @param static_value: Value used to fill all memory. |
29 """ | 29 """ |
30 if (static_value < 0 or static_value > 255): | 30 if (static_value < 0 or static_value > 255): |
31 print ("FAIL: Initialization static value" | 31 print ("FAIL: Initialization static value" |
32 "can be only in range (0..255)") | 32 "can be only in range (0..255)") |
33 return | 33 return |
34 | 34 |
35 self.tmpdp = tempfile.mkdtemp() | 35 self.tmpdp = tempfile.mkdtemp() |
36 ret_code = os.system("mount -o size=%dM tmpfs %s -t tmpfs" % | 36 ret_code = os.system("mount -o size=%dM tmpfs %s -t tmpfs" % |
37 ((mem+math.ceil(mem*TMPFS_OVERHEAD)), | 37 ((mem+math.ceil(mem*TMPFS_OVERHEAD)), |
38 self.tmpdp)) | 38 self.tmpdp)) |
39 if ret_code != 0: | 39 if ret_code != 0: |
40 if os.getuid() != 0: | 40 if os.getuid() != 0: |
41 print ("FAIL: Unable to mount tmpfs " | 41 print ("FAIL: Unable to mount tmpfs " |
42 "(likely cause: you are not root)") | 42 "(likely cause: you are not root)") |
43 else: | 43 else: |
44 print "FAIL: Unable to mount tmpfs" | 44 print "FAIL: Unable to mount tmpfs" |
45 else: | 45 else: |
46 self.f = tempfile.TemporaryFile(prefix='mem', dir=self.tmpdp) | 46 self.f = tempfile.TemporaryFile(prefix='mem', dir=self.tmpdp) |
47 self.allocate_by = 'L' | 47 self.allocate_by = 'L' |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 """ | 228 """ |
229 print "PASS: Start" | 229 print "PASS: Start" |
230 end = False | 230 end = False |
231 while not end: | 231 while not end: |
232 str = raw_input() | 232 str = raw_input() |
233 exec str | 233 exec str |
234 | 234 |
235 | 235 |
236 if __name__ == "__main__": | 236 if __name__ == "__main__": |
237 main() | 237 main() |
OLD | NEW |