This patch introduces mod_symname_hash search to symbol_exists
to improve its performance. And code refactoring for
kernel_symbol_exists.

Signed-off-by: Tao Liu <[email protected]>
Reviewed-by: Philipp Rudo <[email protected]>
---
 symbols.c | 35 ++++-------------------------------
 1 file changed, 4 insertions(+), 31 deletions(-)

diff --git a/symbols.c b/symbols.c
index 9373291..0a8e614 100644
--- a/symbols.c
+++ b/symbols.c
@@ -5489,33 +5489,11 @@ value_symbol(ulong value)
 int
 symbol_exists(char *symbol)
 {
-       int i;
-        struct syment *sp, *sp_end;
-       struct load_module *lm;
-
-       if ((sp = symname_hash_search(st->symname_hash, symbol)))
+       if (symname_hash_search(st->symname_hash, symbol))
                return TRUE;
 
-        for (i = 0; i < st->mods_installed; i++) {
-                lm = &st->load_modules[i];
-               sp = lm->mod_symtable;
-                sp_end = lm->mod_symend;
-
-                for ( ; sp < sp_end; sp++) {
-                       if (STREQ(symbol, sp->name))
-                               return(TRUE);
-                }
-
-               if (lm->mod_init_symtable) {
-                       sp = lm->mod_init_symtable;
-                       sp_end = lm->mod_init_symend;
-       
-                       for ( ; sp < sp_end; sp++) {
-                               if (STREQ(symbol, sp->name))
-                                       return(TRUE);
-                       }
-               }
-       }
+       if (symname_hash_search(st->mod_symname_hash, symbol))
+               return TRUE;
 
         return(FALSE);
 }
@@ -5570,12 +5548,7 @@ per_cpu_symbol_search(char *symbol)
 int
 kernel_symbol_exists(char *symbol)
 {
-       struct syment *sp;
-
-       if ((sp = symname_hash_search(st->symname_hash, symbol)))
-                return TRUE;
-       else
-               return FALSE;
+       return !!symname_hash_search(st->symname_hash, symbol);
 }
 
 /*
-- 
2.29.2

--
Crash-utility mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/crash-utility

Reply via email to