summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorAndreas Bießmann <andreas.devel@googlemail.com>2012-11-14 13:32:37 +0100
committerAnatolij Gustschin <agust@denx.de>2012-11-14 13:35:14 +0100
commitda1fd96ce4ec58604edfaa7dd1ae4a528ce62a06 (patch)
treefab62ead84a9a21cae813c8acfcd4b1cd6c932a5 /fs
parent624c721f0c6e42368cc1b466dbaa540dd3014295 (diff)
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 <andreas.devel@googlemail.com> [agust: rebased and revised commit log] Signed-off-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'fs')
-rw-r--r--fs/fs.c11
1 files changed, 10 insertions, 1 deletions
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);