[PATCH umr 1/2] enable follow_ib by default now

Tom St Denis tom.stdenis at amd.com
Mon Apr 2 15:44:49 UTC 2018


Signed-off-by: Tom St Denis <tom.stdenis at amd.com>
---
 doc/sphinx/source/basic.rst | 66 ++++++++++++++++++++++-----------------------
 doc/sphinx/source/ring.rst  | 17 ------------
 doc/umr.1                   |  4 +--
 src/app/main.c              |  7 ++---
 4 files changed, 39 insertions(+), 55 deletions(-)

diff --git a/doc/sphinx/source/basic.rst b/doc/sphinx/source/basic.rst
index dc63ad0a0277..8d6db65aa88a 100644
--- a/doc/sphinx/source/basic.rst
+++ b/doc/sphinx/source/basic.rst
@@ -104,39 +104,39 @@ comma separator.
 
 The options available are:
 
-+-------------+------------------------------------------------------------------------------+
-| **Option**  | **Description**                                                              |
-+-------------+------------------------------------------------------------------------------+
-| quiet       | Disable various informative outputs that are not required for functionality. |
-+-------------+------------------------------------------------------------------------------+
-| read_smc    | Enable scanning of SMC registers when issuing a --scan command               |
-+-------------+------------------------------------------------------------------------------+
-| bits        | Enables the display of bitfields when registers are presented                |
-+-------------+------------------------------------------------------------------------------+
-| bitsfull    | When printing bits use the full path to the bitfield                         |
-+-------------+------------------------------------------------------------------------------+
-| empty_log   | Empty MMIO tracer after reading it                                           |
-+-------------+------------------------------------------------------------------------------+
-| follow      | Tells --logscan to continually read the MMIO tracer                          |
-+-------------+------------------------------------------------------------------------------+
-| follow_ib   | Instructs the --ring command to follow IBs pointed to by the ring            |
-+-------------+------------------------------------------------------------------------------+
-| named       | Tells --read to print out the register name along with the value             |
-+-------------+------------------------------------------------------------------------------+
-| many        | Allows matching of register names openly.  Used with --read and implies the  |
-|             | *named* option.  For instance: '\*.dce100.CRTC' will match any register that |
-|             | contains the fragment 'CRTC' in it.                                          |
-+-------------+------------------------------------------------------------------------------+
-| use_pci     | Enables direct PCI access bypassing the kernels debugfs entries.             |
-+-------------+------------------------------------------------------------------------------+
-| use_colour  | Enables colourful output in various commands.  Also accepts use_color        |
-+-------------+------------------------------------------------------------------------------+
-| no_kernel   | Attempts to avoid kernel access methods.  Implies *use_pci*.                 |
-+-------------+------------------------------------------------------------------------------+
-| verbose     | Enables verbose output, for instance in VM decoding                          |
-+-------------+------------------------------------------------------------------------------+
-| halt_waves  | Halt active waves while reading wave status data                             |
-+-------------+------------------------------------------------------------------------------+
++--------------+------------------------------------------------------------------------------+
+| **Option**   | **Description**                                                              |
++--------------+------------------------------------------------------------------------------+
+| quiet        | Disable various informative outputs that are not required for functionality. |
++--------------+------------------------------------------------------------------------------+
+| read_smc     | Enable scanning of SMC registers when issuing a --scan command               |
++--------------+------------------------------------------------------------------------------+
+| bits         | Enables the display of bitfields when registers are presented                |
++--------------+------------------------------------------------------------------------------+
+| bitsfull     | When printing bits use the full path to the bitfield                         |
++--------------+------------------------------------------------------------------------------+
+| empty_log    | Empty MMIO tracer after reading it                                           |
++--------------+------------------------------------------------------------------------------+
+| follow       | Tells --logscan to continually read the MMIO tracer                          |
++--------------+------------------------------------------------------------------------------+
+| no_follow_ib | Instructs the --ring command to not follow IBs pointed to by the ring        |
++--------------+------------------------------------------------------------------------------+
+| named        | Tells --read to print out the register name along with the value             |
++--------------+------------------------------------------------------------------------------+
+| many         | Allows matching of register names openly.  Used with --read and implies the  |
+|              | *named* option.  For instance: '\*.dce100.CRTC' will match any register that |
+|              | contains the fragment 'CRTC' in it.                                          |
++--------------+------------------------------------------------------------------------------+
+| use_pci      | Enables direct PCI access bypassing the kernels debugfs entries.             |
++--------------+------------------------------------------------------------------------------+
+| use_colour   | Enables colourful output in various commands.  Also accepts use_color        |
++--------------+------------------------------------------------------------------------------+
+| no_kernel    | Attempts to avoid kernel access methods.  Implies *use_pci*.                 |
++--------------+------------------------------------------------------------------------------+
+| verbose      | Enables verbose output, for instance in VM decoding                          |
++--------------+------------------------------------------------------------------------------+
+| halt_waves   | Halt active waves while reading wave status data                             |
++--------------+------------------------------------------------------------------------------+
 
 ------------------
 Device Information
diff --git a/doc/sphinx/source/ring.rst b/doc/sphinx/source/ring.rst
index d8e69c678174..e498e9358e6b 100644
--- a/doc/sphinx/source/ring.rst
+++ b/doc/sphinx/source/ring.rst
@@ -120,20 +120,3 @@ Bitfield Decoding
 
 The ring decoders also support decoding bitfields when register
 writes are detected.  This is enabled with the 'bits' option.
-
--------------------
-Following IB chains
--------------------
-
-By default, IB pointers are not followed when detected in packets.
-Typically, this will require some sort of access to system memory
-since often IBs are stored in system memory.  Following IB chains can
-be enabled with the 'follow_ib' option, for instance:
-
-::
-
-	umr -O follow_ib --ring gfx[.]
-
-Note that this is particularly only useful for hung GPUs as the virtual
-addresses will quickly expire on live systems.  
-
diff --git a/doc/umr.1 b/doc/umr.1
index ec4db7b9a12d..c64855ca439f 100644
--- a/doc/umr.1
+++ b/doc/umr.1
@@ -137,8 +137,8 @@ separated strings.  Options should be specified before --update or --force comma
      Causes the --logscan command to repeatedly produce output without
      exiting.
 
-.B follow_ib
-     Instruct the --ring command to attempt to follow IBs pointed to by the packets
+.B no_follow_ib
+     Instruct the --ring command to not attempt to follow IBs pointed to by the packets
      in the ring.
 
 .B named
diff --git a/src/app/main.c b/src/app/main.c
index 222f9de208d7..cea6ac2e1069 100644
--- a/src/app/main.c
+++ b/src/app/main.c
@@ -105,8 +105,8 @@ static void parse_options(char *str)
 			options.read_smc = 1;
 		} else if (!strcmp(option, "quiet")) {
 			options.quiet = 1;
-		} else if (!strcmp(option, "follow_ib")) {
-			options.follow_ib = 1;
+		} else if (!strcmp(option, "no_follow_ib")) {
+			options.follow_ib = 0;
 		} else if (!strcmp(option, "verbose")) {
 			options.verbose = 1;
 		} else if (!strcmp(option, "halt_waves")) {
@@ -136,6 +136,7 @@ int main(int argc, char **argv)
 	options.need_scan = 1;
 	options.forcedid = -1;
 	options.scanblock = "";
+	options.follow_ib = 1;
 
 	for (i = 1; i < argc; i++) {
 		if (!strcmp(argv[i], "--instance") || !strcmp(argv[i], "-i")) {
@@ -539,7 +540,7 @@ int main(int argc, char **argv)
 	"\n\t\tdecodings.\n"
 "\n\t--vm-write, -vw [<vmid>@]<address> <size>"
 	"\n\t\tWrite 'size' bytes (in hex) to a given address (in hex) from stdin.\n"
-"\n\t--option -O <string>[,<string>,...]\n\t\tEnable various flags: bits, bitsfull, empty_log, follow, follow_ib, named, many,"
+"\n\t--option -O <string>[,<string>,...]\n\t\tEnable various flags: bits, bitsfull, empty_log, follow, no_follow_ib, named, many,"
 	"\n\t\tuse_pci, use_colour, read_smc, quiet, no_kernel, verbose, halt_waves.\n"
 "\n\n", UMR_BUILD_VER, UMR_BUILD_REV);
 			exit(EXIT_SUCCESS);
-- 
2.14.3



More information about the amd-gfx mailing list