The list command by default uses a hash table for loop detection, and thus uses an increasing amount of memory as each list entry is traversed. For larger lists, this can be a significant problem. We have even seen where crash commands run for days iterating lists, mostly due to the fact that the ever-increasing memory causes crash to slow down. There is an option to avoid the overhead of the hash table, "hash off", but then you lose the ability to detect a loop. This patchset adds an alternative algorithm for loop detection while only using a fixed amount of memory. The '-B' option is added to the 'list' command which invokes this new algorithm rather than the hash table. In addition to the low memory usage, the output of the list command is slightly different when a loop is detected. In addition to printing the first duplicate, the length of the loop and the distance to the loops is output. Dave Wysochanski (6): Add do_list_no_hash() function similar to do_list() but without hash. do_list_no_hash: factor out all the debug statements at entry into do_list_debug_entry do_list_no_hash: factor out structure output into static function do_list_no_hash: factor out a small readmem function Implement R. P. Brent's algorithm for loop detection for 'list' command. Add a '-B' flag to the list command to call the brent algorithm. defs.h | 2 + help.c | 6 ++ tools.c | 288 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 292 insertions(+), 4 deletions(-) -- 1.8.3.1 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility