In order to get nice, human-readable output, we are going to use MiB/KiB, etc... in numa_maps. Introduce a helper to do the conversion from a raw integer over to a string. I thought about doing this as a new printk() format specifier. That would be interesting, but it's hard to argue with this since it's so short and sweet. Signed-off-by: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx> --- linux-2.6.git-dave/fs/seq_file.c | 15 +++++++++++++++ linux-2.6.git-dave/include/linux/seq_file.h | 3 +++ 2 files changed, 18 insertions(+) diff -puN fs/seq_file.c~add-seq_print_size fs/seq_file.c --- linux-2.6.git/fs/seq_file.c~add-seq_print_size 2011-09-30 10:52:22.302140723 -0700 +++ linux-2.6.git-dave/fs/seq_file.c 2011-09-30 10:52:22.322140685 -0700 @@ -386,6 +386,21 @@ int seq_printf(struct seq_file *m, const } EXPORT_SYMBOL(seq_printf); +/* + * Prints output with MiB/MB/KB/etc... suffixes + */ +int seq_print_size(struct seq_file *seq, u64 size, + const enum string_size_units units) +{ + int ret; + u64 remainder; + char *size_str; + remainder = find_size_units(&size, units, &size_str); + ret += seq_printf(seq, "%llu", size); + ret += seq_puts(seq, size_str); + return ret; +} + /** * mangle_path - mangle and copy path to buffer beginning * @s: buffer start diff -puN include/linux/seq_file.h~add-seq_print_size include/linux/seq_file.h --- linux-2.6.git/include/linux/seq_file.h~add-seq_print_size 2011-09-30 10:52:22.314140700 -0700 +++ linux-2.6.git-dave/include/linux/seq_file.h 2011-09-30 10:52:22.322140685 -0700 @@ -3,6 +3,7 @@ #include <linux/types.h> #include <linux/string.h> +#include <linux/string_helpers.h> #include <linux/mutex.h> #include <linux/cpumask.h> #include <linux/nodemask.h> @@ -83,6 +84,8 @@ int seq_escape(struct seq_file *, const int seq_putc(struct seq_file *m, char c); int seq_puts(struct seq_file *m, const char *s); int seq_write(struct seq_file *seq, const void *data, size_t len); +int seq_print_size(struct seq_file *seq, u64 size, + const enum string_size_units units); int seq_printf(struct seq_file *, const char *, ...) __attribute__ ((format (printf,2,3))); _ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>