From: Andreas Bießmann Date: Wed, 14 Nov 2012 12:32:37 +0000 (+0100) Subject: fs/fs.c: do_fsload: measure throughput X-Git-Tag: v2013.01-rc2~140^2~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=da1fd96ce4ec58604edfaa7dd1ae4a528ce62a06;p=oweals%2Fu-boot.git fs/fs.c: do_fsload: measure throughput This patch adds time measurement and throughput calculation for all supported load commands. The output of ext2load changes from ---8<--- 1830666 bytes read --->8--- to ---8<--- 1830666 bytes read in 237 ms (7.4 MiB/s) --->8--- Signed-off-by: Andreas Bießmann [agust: rebased and revised commit log] Signed-off-by: Anatolij Gustschin --- diff --git a/fs/fs.c b/fs/fs.c index ff360afd4b..023e7ef16a 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -257,6 +257,7 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], unsigned long pos; int len_read; char buf[12]; + unsigned long time; if (argc < 2) return CMD_RET_USAGE; @@ -293,11 +294,19 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], else pos = 0; + time = get_timer(0); len_read = fs_read(filename, addr, pos, bytes); + time = get_timer(time); if (len_read <= 0) return 1; - printf("%d bytes read\n", len_read); + printf("%d bytes read in %lu ms", len_read, time); + if (time > 0) { + puts(" ("); + print_size(len_read / time * 1000, "/s"); + puts(")"); + } + puts("\n"); sprintf(buf, "0x%x", len_read); setenv("filesize", buf);