From: Antony Pavlov <antonynpavlov@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: barebox <barebox@lists.infradead.org>
Subject: Re: barebox picotcp integration (2015.06.14)
Date: Wed, 24 Jun 2015 09:11:47 +0300 [thread overview]
Message-ID: <20150624091147.c4b5aac4be4a90b23c585cc7@gmail.com> (raw)
In-Reply-To: <20150622060022.GC6325@pengutronix.de>
On Mon, 22 Jun 2015 08:00:22 +0200
Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Sat, Jun 20, 2015 at 02:09:12PM +0300, Antony Pavlov wrote:
> > On Wed, 17 Jun 2015 11:28:57 +0200
> > Sascha Hauer <s.hauer@pengutronix.de> wrote:
> >
> > > On Mon, Jun 15, 2015 at 01:13:43AM +0300, Antony Pavlov wrote:
> > > > Hi!
> > > >
> > > > I have just published latest picotcp-enabled barebox.
> > > > Please see my 20150614.picotcp branch in my github barebox repo
> > > > (https://github.com/frantony/barebox/tree/20150614.picotcp).
> > > >
> > ...
> > >
> > > Why are you using the picotcp tftp implementation? picotcp surely
> > > supports sending/receiving udp packets, right? Wouldn't it be a good
> > > first step to replace the barebox udp API with the one picotcp provides?
> > > I mean I would expect that you replace only the network stack, not the
> > > network stack including the applications. If at some point we decide
> > > that the tftp implementation in picotcp is better than the one in
> > > barebox that would be the time to switch it.
> > >
> >
> > I have reworked tftp support: now barebox tftp implementation is used on top
> > of picotcp udp/ip stack and works 2 times slower than original u-boot stack-based
> > implementation (I have tested it with sandbox arch).
>
> Do you have an idea why this is slower? I had a quick look into it and
> found nothing obvious.
>
I have added nfs-over-picotcp support, please see https://github.com/frantony/barebox/tree/20150624.picotcp
I use very simple benchmarks.
I have sandbox barebox (192.168.1.2) and nfs- and tftp- servers on the same host (192.168.1.1).
I copy 16MiB (16777216 bytes) file from server to sandbox barebox over network several times.
I use time command inside sandox barebox for computing transfer time.
barebox@barebox sandbox:/ eth0.ipaddr=192.168.1.2
barebox@barebox sandbox:/ mount -t tftp 192.168.1.1 /mnt
...
barebox@barebox sandbox:/ time cp /mnt/16M .
time: 546ms
Here is typical transfer time values:
+--------+--------------+--------------+
| | U-boot | picotcp |
| | stack | stack |
+--------+--------------+--------------+
| | | |
| tftp | 546ms | 859ms |
| | | |
+--------+--------------+--------------+
| | | |
| nfs | 1037ms | 1393ms |
| | | |
+--------+--------------+--------------+
There are some rather simple possibilities to slighly improve picotcp-barebox performance:
* drop extra memory copy;
* drop extra pico_tick() calls (is_timeout() calls poller_call(), so there is no need
to call poller_call() explicitly in nfs/tftp code);
* there is an issue with sustained tftp small file copy. E.g.
barebox@barebox sandbox:/ ifconfig eth 192.168.1.2 255.255.255.0
Assigned ipv4 192.168.1.2 to device eth
barebox@barebox sandbox:/ mount -t tftp 192.168.1.1 /mnt
barebox@barebox sandbox:/ while true; do time cp /mnt/1M . ; done
...
Warning: I have 122 timers
Warning: I have 121 timers
time: 48ms
Warning: I have 122 timers
Warning: I have 121 timers
time: 53ms
Warning: I have 122 timers
Warning: I have 121 timers
time: 54ms
Just now picotcp-enabled barebox uses
* ping from picotcp;
* dhcp from picotcp;
* no DNS support.
Sascha! Do you think I should use barebox' own dhcp and ping realisation or keep one from picotcp?
Should I use DNS from barebox (over picotcp) or picotcp DNS realization?
--
Best regards,
Antony Pavlov
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2015-06-24 6:05 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-14 22:13 Antony Pavlov
2015-06-17 9:28 ` Sascha Hauer
2015-06-20 11:09 ` Antony Pavlov
2015-06-22 6:00 ` Sascha Hauer
2015-06-24 6:11 ` Antony Pavlov [this message]
2015-06-26 9:54 ` Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150624091147.c4b5aac4be4a90b23c585cc7@gmail.com \
--to=antonynpavlov@gmail.com \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox