The patch titled Subject: bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2 has been added to the -mm tree. Its filename is bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Maninder Singh <maninder1.s@xxxxxxxxxxx> Subject: bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2 v1 -> v2 1) Incorporated missed changes between 4.1 and latest version. 2) Removed extra noise of "#####" after each section print. 3) Removed extra parentheses from if and else caluse. Link: http://lkml.kernel.org/r/1506569402-24787-1-git-send-email-maninder1.s@xxxxxxxxxxx Signed-off-by: Vaneet Narang <v.narang@xxxxxxxxxxx> Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx> Cc: Amit Sahrawat <a.sahrawat@xxxxxxxxxxx> Cc: Andi Kleen <andi@xxxxxxxxxxxxxx> Cc: Michal Marek <mmarek@xxxxxxx> Cc: <pankaj.m@xxxxxxxxxxx> Cc: <a.sahrawat@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/bloat-o-meter | 51 +++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff -puN scripts/bloat-o-meter~bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2 scripts/bloat-o-meter --- a/scripts/bloat-o-meter~bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2 +++ a/scripts/bloat-o-meter @@ -13,7 +13,7 @@ from signal import signal, SIGPIPE, SIG_ signal(SIGPIPE, SIG_DFL) if len(sys.argv) < 3: - sys.stderr.write("usage: %s [option] file1 file2 \n" % sys.argv[0]) + sys.stderr.write("usage: %s [option] file1 file2\n" % sys.argv[0]) sys.stderr.write("The options are:\n") sys.stderr.write("-c cateogrize output based on symbole type\n") sys.stderr.write("-d Show delta of Data Section\n") @@ -22,23 +22,24 @@ if len(sys.argv) < 3: re_NUMBER = re.compile(r'\.[0-9]+') -def getsizes(file, format) : - func_sym = {} - for l in os.popen("nm --size-sort " + file).readlines(): - size, type, name = l[:-1].split() - if type in format: - # strip generated symbols - if name.startswith("__mod_"): continue - if name.startswith("SyS_"): continue - if name.startswith("compat_SyS_"): continue - if name == "linux_banner": continue - # statics and some other optimizations adds random .NUMBER - name = re_NUMBER.sub('', name) - func_sym[name] = func_sym.get(name, 0) + int(size, 16) - return func_sym +def getsizes(file, format): + sym = {} + with os.popen("nm --size-sort " + file) as f: + for line in f: + size, type, name = line.split() + if type in format: + # strip generated symbols + if name.startswith("__mod_"): continue + if name.startswith("SyS_"): continue + if name.startswith("compat_SyS_"): continue + if name == "linux_banner": continue + # statics and some other optimizations adds random .NUMBER + name = re_NUMBER.sub('', name) + sym[name] = sym.get(name, 0) + int(size, 16) + return sym def calc(oldfile, newfile, format): - old = getsizes(oldfile , format) + old = getsizes(oldfile, format) new = getsizes(newfile, format) grow, shrink, add, remove, up, down = 0, 0, 0, 0, 0, 0 delta, common = [], {} @@ -79,27 +80,19 @@ def print_result(symboltype, symbolforma print("add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \ (add, remove, grow, shrink, up, -down, up-down)) print("%-40s %7s %7s %+7s" % (symboltype, "old", "new", "delta")) - for d, n in delta: - if d: print "%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d) + if d: print("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)) print("Total: Before=%d, After=%d, chg %+.2f%%" % \ - (otot, ntot, (ntot - otot)*100.0/otot)) + (otot, ntot, (ntot - otot)*100.0/otot)) -if(sys.argv[1] == "-c"): +if sys.argv[1] == "-c": print_result("Function", "tT", 3) - print("##########################################################") - print_result("Data", "dDbB", 3) - print("##########################################################") - print_result("RO Data", "rR", 3) - -elif(sys.argv[1] == "-d"): +elif sys.argv[1] == "-d": print_result("Data", "dDbBrR", 3) - -elif(sys.argv[1] == "-t"): +elif sys.argv[1] == "-t": print_result("Function", "tT", 3) - else: print_result("Function", "tTdDbBrR", 2) _ Patches currently in -mm which might be from maninder1.s@xxxxxxxxxxx are bloat-o-meter-provide-3-different-arguments-for-data-function-and-all.patch bloat-o-meter-provide-3-different-arguments-for-data-function-and-all-v2.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html