Message ID | 1445954063-29943-1-git-send-email-mugunthanvnm@ti.com |
---|---|
State | Rejected |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
Jagan On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: > This patch adds time measurement and throughput calculation for > sf read/write commands. > > The output of sf read changes from > > ---8<--- > SF: 4096 bytes @ 0x0 Read: OK > --->8--- > > to > > ---8<--- > SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) > --->8--- > > Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> A gentle ping Regards Mugunthan V N > --- > common/cmd_sf.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/common/cmd_sf.c b/common/cmd_sf.c > index ac7f5df..8687f3a 100644 > --- a/common/cmd_sf.c > +++ b/common/cmd_sf.c > @@ -15,6 +15,7 @@ > #include <spi_flash.h> > #include <jffs2/jffs2.h> > #include <linux/mtd/mtd.h> > +#include <linux/math64.h> > > #include <asm/io.h> > #include <dm/device-internal.h> > @@ -266,6 +267,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) > int ret = 1; > int dev = 0; > loff_t offset, len, maxsize; > + unsigned long time; > > if (argc < 3) > return -1; > @@ -298,17 +300,27 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) > int read; > > read = strncmp(argv[0], "read", 4) == 0; > + > + time = get_timer(0); > if (read) > ret = spi_flash_read(flash, offset, len, buf); > else > ret = spi_flash_write(flash, offset, len, buf); > + time = get_timer(time); > > printf("SF: %zu bytes @ %#x %s: ", (size_t)len, (u32)offset, > read ? "Read" : "Written"); > - if (ret) > + if (ret) { > printf("ERROR %d\n", ret); > - else > - printf("OK\n"); > + } else { > + printf("OK in %lu ms", time); > + if (time > 0) { > + puts(" ("); > + print_size(div_u64(len, time) * 1000, "/s"); > + puts(")"); > + } > + puts("\n"); > + } > } > > unmap_physmem(buf, len); >
On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> wrote: > Jagan > > On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >> This patch adds time measurement and throughput calculation for >> sf read/write commands. >> >> The output of sf read changes from >> >> ---8<--- >> SF: 4096 bytes @ 0x0 Read: OK >> --->8--- >> >> to >> >> ---8<--- >> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >> --->8--- >> >> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Was it similar to 'sf update' ? please check it once. > > A gentle ping thanks!
On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: > On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> wrote: >> Jagan >> >> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>> This patch adds time measurement and throughput calculation for >>> sf read/write commands. >>> >>> The output of sf read changes from >>> >>> ---8<--- >>> SF: 4096 bytes @ 0x0 Read: OK >>> --->8--- >>> >>> to >>> >>> ---8<--- >>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>> --->8--- >>> >>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> > > Was it similar to 'sf update' ? please check it once. > sf update out similar but also uses progressive output, in read/write case it can't be done. The final throughput measurement is similar on both update and read/write. Regards Mugunthan V N
On 17 December 2015 at 13:26, Mugunthan V N <mugunthanvnm@ti.com> wrote: > On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: >> On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>> Jagan >>> >>> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>>> This patch adds time measurement and throughput calculation for >>>> sf read/write commands. >>>> >>>> The output of sf read changes from >>>> >>>> ---8<--- >>>> SF: 4096 bytes @ 0x0 Read: OK >>>> --->8--- >>>> >>>> to >>>> >>>> ---8<--- >>>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>>> --->8--- >>>> >>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >> >> Was it similar to 'sf update' ? please check it once. >> > > sf update out similar but also uses progressive output, in read/write > case it can't be done. The final throughput measurement is similar on > both update and read/write. True, that's what if we need a progressed throughput just use 'sf update' else normal 'sf read/write' It's look not good to me to add extra code on top of generic commands. What ever we wanted to extend features let's added it on 'sf update' than sf read/write, Sorry. thanks!
On 17.12.2015 17:44, Jagan Teki wrote: > On 17 December 2015 at 13:26, Mugunthan V N <mugunthanvnm@ti.com> wrote: >> On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: >>> On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>>> Jagan >>>> >>>> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>>>> This patch adds time measurement and throughput calculation for >>>>> sf read/write commands. >>>>> >>>>> The output of sf read changes from >>>>> >>>>> ---8<--- >>>>> SF: 4096 bytes @ 0x0 Read: OK >>>>> --->8--- >>>>> >>>>> to >>>>> >>>>> ---8<--- >>>>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>>>> --->8--- >>>>> >>>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>> >>> Was it similar to 'sf update' ? please check it once. >>> >> >> sf update out similar but also uses progressive output, in read/write >> case it can't be done. The final throughput measurement is similar on >> both update and read/write. > > True, that's what if we need a progressed throughput just use 'sf > update' else normal 'sf read/write' It's look not good to me to add > extra code on top of generic commands. What ever we wanted to extend > features let's added it on 'sf update' than sf read/write, Sorry. If I need to measure the time of commands, I use the "time" command ("time sf write ...") by enabling it via CONFIG_CMD_TIME. This provides all the needed information to detect performance changes. Thanks, Stefan
On Friday 18 December 2015 11:37 AM, Stefan Roese wrote: > On 17.12.2015 17:44, Jagan Teki wrote: >> On 17 December 2015 at 13:26, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>> On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: >>>> On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> >>>> wrote: >>>>> Jagan >>>>> >>>>> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>>>>> This patch adds time measurement and throughput calculation for >>>>>> sf read/write commands. >>>>>> >>>>>> The output of sf read changes from >>>>>> >>>>>> ---8<--- >>>>>> SF: 4096 bytes @ 0x0 Read: OK >>>>>> --->8--- >>>>>> >>>>>> to >>>>>> >>>>>> ---8<--- >>>>>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>>>>> --->8--- >>>>>> >>>>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>>> >>>> Was it similar to 'sf update' ? please check it once. >>>> >>> >>> sf update out similar but also uses progressive output, in read/write >>> case it can't be done. The final throughput measurement is similar on >>> both update and read/write. >> >> True, that's what if we need a progressed throughput just use 'sf >> update' else normal 'sf read/write' It's look not good to me to add >> extra code on top of generic commands. What ever we wanted to extend >> features let's added it on 'sf update' than sf read/write, Sorry. > > If I need to measure the time of commands, I use the "time" > command ("time sf write ...") by enabling it via CONFIG_CMD_TIME. > This provides all the needed information to detect performance > changes. > But similar kind of implementations is present for fatload and tftp. So I thought having similar performance log for sf read/write will be good as well. Regards Mugunthan V N
On 21.12.2015 06:37, Mugunthan V N wrote: > On Friday 18 December 2015 11:37 AM, Stefan Roese wrote: >> On 17.12.2015 17:44, Jagan Teki wrote: >>> On 17 December 2015 at 13:26, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>>> On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: >>>>> On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> >>>>> wrote: >>>>>> Jagan >>>>>> >>>>>> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>>>>>> This patch adds time measurement and throughput calculation for >>>>>>> sf read/write commands. >>>>>>> >>>>>>> The output of sf read changes from >>>>>>> >>>>>>> ---8<--- >>>>>>> SF: 4096 bytes @ 0x0 Read: OK >>>>>>> --->8--- >>>>>>> >>>>>>> to >>>>>>> >>>>>>> ---8<--- >>>>>>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>>>>>> --->8--- >>>>>>> >>>>>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>>>> >>>>> Was it similar to 'sf update' ? please check it once. >>>>> >>>> >>>> sf update out similar but also uses progressive output, in read/write >>>> case it can't be done. The final throughput measurement is similar on >>>> both update and read/write. >>> >>> True, that's what if we need a progressed throughput just use 'sf >>> update' else normal 'sf read/write' It's look not good to me to add >>> extra code on top of generic commands. What ever we wanted to extend >>> features let's added it on 'sf update' than sf read/write, Sorry. >> >> If I need to measure the time of commands, I use the "time" >> command ("time sf write ...") by enabling it via CONFIG_CMD_TIME. >> This provides all the needed information to detect performance >> changes. >> > > But similar kind of implementations is present for fatload and tftp. So > I thought having similar performance log for sf read/write will be good > as well. Yes, I understand. I also find this output helpful. But I'm not sure, if we should add this timing code to all these functions. Instead of just using this common time command, if needed. To keep the code size at a minimum. Of course its no big code addition, so I don't really have any bigger reservations against it. Thanks, Stefan
Hi Mugunthan, On 21 December 2015 at 11:30, Stefan Roese <sr@denx.de> wrote: > On 21.12.2015 06:37, Mugunthan V N wrote: >> >> On Friday 18 December 2015 11:37 AM, Stefan Roese wrote: >>> >>> On 17.12.2015 17:44, Jagan Teki wrote: >>>> >>>> On 17 December 2015 at 13:26, Mugunthan V N <mugunthanvnm@ti.com> wrote: >>>>> >>>>> On Thursday 17 December 2015 12:43 PM, Jagan Teki wrote: >>>>>> >>>>>> On 17 December 2015 at 12:33, Mugunthan V N <mugunthanvnm@ti.com> >>>>>> wrote: >>>>>>> >>>>>>> Jagan >>>>>>> >>>>>>> On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote: >>>>>>>> >>>>>>>> This patch adds time measurement and throughput calculation for >>>>>>>> sf read/write commands. >>>>>>>> >>>>>>>> The output of sf read changes from >>>>>>>> >>>>>>>> ---8<--- >>>>>>>> SF: 4096 bytes @ 0x0 Read: OK >>>>>>>> --->8--- >>>>>>>> >>>>>>>> to >>>>>>>> >>>>>>>> ---8<--- >>>>>>>> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) >>>>>>>> --->8--- >>>>>>>> >>>>>>>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> >>>>>> >>>>>> >>>>>> Was it similar to 'sf update' ? please check it once. >>>>>> >>>>> >>>>> sf update out similar but also uses progressive output, in read/write >>>>> case it can't be done. The final throughput measurement is similar on >>>>> both update and read/write. >>>> >>>> >>>> True, that's what if we need a progressed throughput just use 'sf >>>> update' else normal 'sf read/write' It's look not good to me to add >>>> extra code on top of generic commands. What ever we wanted to extend >>>> features let's added it on 'sf update' than sf read/write, Sorry. >>> >>> >>> If I need to measure the time of commands, I use the "time" >>> command ("time sf write ...") by enabling it via CONFIG_CMD_TIME. >>> This provides all the needed information to detect performance >>> changes. >>> >> >> But similar kind of implementations is present for fatload and tftp. So >> I thought having similar performance log for sf read/write will be good >> as well. > > > Yes, I understand. I also find this output helpful. But I'm not sure, > if we should add this timing code to all these functions. Instead > of just using this common time command, if needed. To keep the > code size at a minimum. > > Of course its no big code addition, so I don't really have any bigger > reservations against it. Why can't just use 'sf update' instead of adding again same code in 'sf read/write' since 'sf update' is doing more than just giving timing performance. Please try! thanks!
diff --git a/common/cmd_sf.c b/common/cmd_sf.c index ac7f5df..8687f3a 100644 --- a/common/cmd_sf.c +++ b/common/cmd_sf.c @@ -15,6 +15,7 @@ #include <spi_flash.h> #include <jffs2/jffs2.h> #include <linux/mtd/mtd.h> +#include <linux/math64.h> #include <asm/io.h> #include <dm/device-internal.h> @@ -266,6 +267,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) int ret = 1; int dev = 0; loff_t offset, len, maxsize; + unsigned long time; if (argc < 3) return -1; @@ -298,17 +300,27 @@ static int do_spi_flash_read_write(int argc, char * const argv[]) int read; read = strncmp(argv[0], "read", 4) == 0; + + time = get_timer(0); if (read) ret = spi_flash_read(flash, offset, len, buf); else ret = spi_flash_write(flash, offset, len, buf); + time = get_timer(time); printf("SF: %zu bytes @ %#x %s: ", (size_t)len, (u32)offset, read ? "Read" : "Written"); - if (ret) + if (ret) { printf("ERROR %d\n", ret); - else - printf("OK\n"); + } else { + printf("OK in %lu ms", time); + if (time > 0) { + puts(" ("); + print_size(div_u64(len, time) * 1000, "/s"); + puts(")"); + } + puts("\n"); + } } unmap_physmem(buf, len);
This patch adds time measurement and throughput calculation for sf read/write commands. The output of sf read changes from ---8<--- SF: 4096 bytes @ 0x0 Read: OK --->8--- to ---8<--- SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s) --->8--- Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> --- common/cmd_sf.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-)