From 038d86e1920277d5eda2302f5288d57e48205343 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 6 Jan 2015 12:30:10 +0000 Subject: [PATCH] analysemap: don't list _DISCARD functions in hogs.txt We don't actually want to keep seeing discardable boot code all over the hog listing, we want to see the real offenders who stay resident. --- Kernel/tools/analysemap.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Kernel/tools/analysemap.c b/Kernel/tools/analysemap.c index 56ee419f..d299a2ce 100644 --- a/Kernel/tools/analysemap.c +++ b/Kernel/tools/analysemap.c @@ -4,7 +4,14 @@ #include unsigned int code_len, code2_len, data_len, bss_len, init_len, gsfinal, common_addr, - initial; + initial, discard_base, discard_len; + +static int is_discard(int addr) +{ + if (addr < discard_base || addr >= discard_base + discard_len) + return 0; + return 1; +} int main(int argc, char *argv[]) { @@ -41,18 +48,22 @@ int main(int argc, char *argv[]) sscanf(p1, "%x", &bss_len); if (strcmp(p2, "l__INITIALIZED") == 0) sscanf(p1, "%x", &init_len); + if (strcmp(p2, "l__DISCARD") == 0) + sscanf(p1, "%x", &discard_len); if (strcmp(p2, "s__GSFINAL") == 0) sscanf(p1, "%x", &gsfinal); if (strcmp(p2, "s__INITIALIZER") == 0) sscanf(p1, "%x", &initial); if (strcmp(p2, "s__COMMONMEM") == 0) sscanf(p1, "%x", &common_addr); + if (strcmp(p2, "s__DISCARD") == 0) + sscanf(p1, "%x", &discard_base); if (hogs && match == 0) { if (strstr(p2, "_start")) { sscanf(p1, "%x", &naddr); strcpy(nname, p2); - if (addr) { + if (addr && !is_discard(addr)) { name[strlen(name)-6]=0; printf("%d: %s\n", naddr-addr, name); } -- 2.34.1