mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 16:14:13 +08:00
dynamic_debug: print ram usage by ddebug tables if verbose
Print ram usage of dynamic-debug tables and verbose section so user knows cost of enabling CONFIG_DYNAMIC_DEBUG. This only counts the size of the _ddebug tables for builtins and the __verbose section that they refer to, not those used in loadable modules. Signed-off-by: Jim Cromie <jim.cromie@gmail.com> Acked-by: Jason Baron <jbaron@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
af442399fc
commit
4107692760
@ -970,7 +970,8 @@ static int __init dynamic_debug_init(void)
|
|||||||
const char *modname = NULL;
|
const char *modname = NULL;
|
||||||
char *cmdline;
|
char *cmdline;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int n = 0;
|
int n = 0, entries = 0, modct = 0;
|
||||||
|
int verbose_bytes = 0;
|
||||||
|
|
||||||
if (__start___verbose == __stop___verbose) {
|
if (__start___verbose == __stop___verbose) {
|
||||||
pr_warn("_ddebug table is empty in a "
|
pr_warn("_ddebug table is empty in a "
|
||||||
@ -981,7 +982,12 @@ static int __init dynamic_debug_init(void)
|
|||||||
modname = iter->modname;
|
modname = iter->modname;
|
||||||
iter_start = iter;
|
iter_start = iter;
|
||||||
for (; iter < __stop___verbose; iter++) {
|
for (; iter < __stop___verbose; iter++) {
|
||||||
|
entries++;
|
||||||
|
verbose_bytes += strlen(iter->modname) + strlen(iter->function)
|
||||||
|
+ strlen(iter->filename) + strlen(iter->format);
|
||||||
|
|
||||||
if (strcmp(modname, iter->modname)) {
|
if (strcmp(modname, iter->modname)) {
|
||||||
|
modct++;
|
||||||
ret = ddebug_add_module(iter_start, n, modname);
|
ret = ddebug_add_module(iter_start, n, modname);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
@ -996,6 +1002,10 @@ static int __init dynamic_debug_init(void)
|
|||||||
goto out_err;
|
goto out_err;
|
||||||
|
|
||||||
ddebug_init_success = 1;
|
ddebug_init_success = 1;
|
||||||
|
vpr_info("%d modules, %d entries and %d bytes in ddebug tables,"
|
||||||
|
" %d bytes in (readonly) verbose section\n",
|
||||||
|
modct, entries, (int)( modct * sizeof(struct ddebug_table)),
|
||||||
|
verbose_bytes + (int)(__stop___verbose - __start___verbose));
|
||||||
|
|
||||||
/* apply ddebug_query boot param, dont unload tables on err */
|
/* apply ddebug_query boot param, dont unload tables on err */
|
||||||
if (ddebug_setup_string[0] != '\0') {
|
if (ddebug_setup_string[0] != '\0') {
|
||||||
|
Loading…
Reference in New Issue
Block a user