Oleg Nesterov <o...@redhat.com> writes: > On 01/17, Rasmus Villemoes wrote: >> >> Using kasprintf to get the function name makes us look up the name >> twice, along with all the vsnprintf overhead of parsing the format >> string etc. It also means there is an allocation failure case to deal >> with. Since symbol_string in vsprintf.c would anyway allocate an array >> of size KSYM_SYMBOL_LEN on the stack, that might as well be done up >> here. >> >> Signed-off-by: Rasmus Villemoes <li...@rasmusvillemoes.dk> >> --- >> >> Notes: >> I don't know how expensive it is to do the symbol lookup for each >> initcall. It might be worthwhile adding an >> >> if (list_empty(&blacklisted_initcalls)) >> return false; >> >> at the very beginning of initcall_blacklisted(), since this is a debug >> feature and the blacklist is indeed usually empty. > > If we want to optimize this... I am wondering if we can change > initcall_blacklist() > > - entry->buf = alloc_bootmem(strlen(str_entry) + 1); > + ebtry->fn = kallsyms_lookup_name(str_entry); > > and then change initcall_blacklisted() to just compare the pointers.
That would make far, far more sense. It would fail for modules of course, but that might be OK. Prarit, this was your code; does it matter? Cheers, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/