- Apr 22, 2014
-
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Mitchel Humpherys authored
The parser now requires Python 2.7 so that 2.7-specific features can be leveraged. Update the README to reflect this. Change-Id: I7e1ba9f99f077c7f48ed7b44ab24f56f0f18c3ea
-
Mitchel Humpherys authored
[29d3f2ed: "lrdp-v2: refactor Iommu domain parsing code"] introduced an extra argument for rb_tree `walker' functions, but didn't update the runqueue rb_tree user, so the ramdump parser currently fails to print the runqueue state. Fix this. For certain dumps, before this change we would see the following backtrace: Traceback (most recent call last): File "ramparse.py", line 266, in <module> p.cls(dump).parse() File "parsers/runqueue.py", line 196, in parse self.print_cfs_state(cfs_rq_addr) File "parsers/runqueue.py", line 101, in print_cfs_state rb_walker.walk(tasks_timeline_addr, self.cfs_node_func) File "rb_tree.py", line 54, in walk self._walk(node, func, [], extra) File "rb_tree.py", line 39, in _walk self._walk(left_node, func, seen, extra) File "rb_tree.py", line 39, in _walk self._walk(left_node, func, seen, extra) File "rb_tree.py", line 41, in _walk func(node, extra) TypeError: cfs_node_func() takes exactly 2 arguments (3 given) Change-Id: Ic19ec42d6cfbe87b6e0a0e99c6adf7c41e5b35e9
-
- Apr 21, 2014
-
-
Laura Abbott authored
The number of interrupts is an int which is different from the word size. Switch to it. Change-Id: I06b5186ac0121854870606c78488c26f22d79f2c
-
Laura Abbott authored
The way the vmalloc list is walked has changed to use a different structure. The old structure is now freed at init time. This may not be noticed if init memory isn't freed. Switch to a method that does not rely on not freeing initmem. Change-Id: I9f9b095ac4740ff13c1f54e39c641f286941a63f
-
Laura Abbott authored
Many of the lists are very large and may overflow if traversed recursively. Switch to an iterative method instead. Change-Id: I8bf476eefae7e223a16fdd50bb9b10d7c24cb247
-
Laura Abbott authored
Reading 64 bits of data is needed at times. Add a dedicated function Change-Id: Ibef3777a574fb4ea87af51ab8230af7d4402c4f9
-
Mitchel Humpherys authored
Currently, if the user doesn't specify a vmlinux image or an autodumpdir (like when running ramparse.py with absolutely no arguments) they get a big ugly python stacktrace and no helpful error message. Fix this. Change-Id: I2d5aaaae5c8afd651ef48cfbd8f974227c2032fe
-
Mitchel Humpherys authored
The IOMMU parser currently only supports short-descriptor format page tables but hardware supports long-descriptor format page tables. Add support for the long-descriptor format. Most of the existing LPAE MMU code can be re-used for this, although it must be refactored a bit. Change-Id: I464d7edeb8818c0be9de1e1a8224bc9b478eac37
-
- Apr 17, 2014
-
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
Linux Build Service Account authored
-
- Apr 16, 2014
-
-
Mitchel Humpherys authored
Register objects are `equal' if they have the same fields and the values of all of those fields are equal. Overload Register.__eq__ to reflect this. Change-Id: I680e869470b20d6dc88d4bd78da9f002980aea4f
-
Mitchel Humpherys authored
The Register class supports single-bit field definitions. Add a doctest for example purposes and regression testing. Change-Id: Ib04762aca8cb00256e16c29ac2ab71d47d0c06da
-
Mitchel Humpherys authored
The Register class currently can't handle setting the `value' attribute. Fix this. Also add a `zero' convenience method for zeroing out a register. After adding the following doctest: >>> abc.value = 0 >>> abc.value 0 but before fixing __setattr__, I get: ********************************************************************** File "register.py", line 42, in __main__.Register Failed example: abc.value = 0 Exception raised: Traceback (most recent call last): File "/usr/lib/python2.7/doctest.py", line 1289, in __run compileflags, 1) in test.globs File "<doctest __main__.Register[10]>", line 1, in <module> abc.value = 0 File "register.py", line 106, in __setattr__ raise AttributeError AttributeError ********************************************************************** File "register.py", line 43, in __main__.Register Failed example: abc.value Expected: 0 Got: 49 ********************************************************************** 1 items had failures: 2 of 20 in __main__.Register ***Test Failed*** 2 failures. After the fix in __setattr__, all tests pass successfully. Change-Id: I6d39261b139aae0def58f38a4291baad651b10e3
-
Mitchel Humpherys authored
It can be useful to extract the dmesg from contexts other than the --dmesg parser. Refactor the code into a top-level "library" module and hook the --dmesg parser into that. Change-Id: I935c05a081b1096d67343f5ce8617febb674b2e0
-
Mitchel Humpherys authored
It's useful to be able to dump regions of memory a la `xxd'. Add some machinery to parser_util and RamDump to do this. Example: $ ramparse.py -a . -o parsed --shell >>> dump.hexdump(0, 100, virtual=False) 00000000: fffe ffde 0200 0000 ffff b7bf adf5 a5ff ................ 00000010: e7bf edfe c6fe edf6 fefa fffe befa fefe ................ 00000020: bfbe ffef aebd a5ef ffff 7f7e fefe 5afb ...........~..Z. 00000030: 1b00 2000 3300 4300 1c00 2100 3400 4800 .. .3.C...!.4.H. 00000040: ffff ff7f fafe ffdb effd a5af adf5 a5bf ................ 00000050: 4444 4444 4444 4444 4444 4444 4444 4444 DDDDDDDDDDDDDDDD 00000060: 5fff ffff _... >>> dump.hexdump(0xc0000000, 100, virtual=True) c0000000: fffe ffde 0200 0000 ffff b7bf adf5 a5ff ................ c0000010: e7bf edfe c6fe edf6 fefa fffe befa fefe ................ c0000020: bfbe ffef aebd a5ef ffff 7f7e fefe 5afb ...........~..Z. c0000030: 1b00 2000 3300 4300 1c00 2100 3400 4800 .. .3.C...!.4.H. c0000040: ffff ff7f fafe ffdb effd a5af adf5 a5bf ................ c0000050: 4444 4444 4444 4444 4444 4444 4444 4444 DDDDDDDDDDDDDDDD c0000060: 5fff ffff _... >>> dump.hexdump(dump.addr_lookup('linux_banner'), 144, virtual=True) c0b0006a: 4c69 6e75 7820 7665 7273 696f 6e20 332e Linux version 3. c0b0007a: 3130 2e32 382d 6765 3232 3362 6632 3830 10.28-ge223bf280 c0b0008a: 662d 6469 7274 7920 286d 6974 6368 656c f-dirty (mitchel c0b0009a: 6840 6d69 7463 6865 6c68 2d6c 696e 7578 h@mitchelh-linux c0b000aa: 2920 2867 6363 2076 6572 7369 6f6e 2034 ) (gcc version 4 c0b000ba: 2e37 2028 4743 4329 2029 2023 3720 534d .7 (GCC) ) #7 SM c0b000ca: 5020 5052 4545 4d50 5420 5475 6520 4170 P PREEMPT Tue Ap c0b000da: 7220 3820 3134 3a32 303a 3132 2050 4454 r 8 14:20:12 PDT c0b000ea: 2032 3031 340a 007c 2f2d 5c00 0000 0000 2014..|/-\..... Change-Id: Iecaf80f72845f052085a60eadedd2bb24743224c
-
Mitchel Humpherys authored
The LPAE MMU code can be re-used for other modules that need page table parsing (like the LPAE IOMMU page tables). Refactor the code a bit so that it can be easily re-used later. Change-Id: I0deb80a69f2fca83c3ddcc78867fa2e5f5d18bb2
-