All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Jerome Forissier <jerome.forissier@linaro.org>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	u-boot@lists.denx.de, Javier Tia <javier.tia@linaro.org>,
	Maxim Uvarov <muvarov@gmail.com>
Subject: Re: [PATCH v4 00/14] Introduce the lwIP network stack
Date: Wed, 19 Jun 2024 09:07:44 -0600	[thread overview]
Message-ID: <20240619150744.GA68077@bill-the-cat> (raw)
In-Reply-To: <e43d7a84-0348-4655-80d8-f91b9232bdbe@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 4251 bytes --]

On Wed, Jun 19, 2024 at 04:47:08PM +0200, Jerome Forissier wrote:
> 
> 
> On 6/19/24 09:24, Ilias Apalodimas wrote:
> > Hi Tom
> > 
> > On Tue, 18 Jun 2024 at 23:21, Tom Rini <trini@konsulko.com> wrote:
> >>
> >> On Mon, Jun 17, 2024 at 05:32:52PM +0200, Jerome Forissier wrote:
> >>
> >>> This is a rework of a patch series by Maxim Uvarov: "net/lwip: add lwip
> >>> library for the network stack" [1]. The goal is to introduce the lwIP TCP/IP
> >>> stack [2] [3] as an alternative to the current implementation in net/,
> >>> selectable with Kconfig, and ultimately keep only lwIP if possible. Some
> >>> reasons for doing so are:
> >>> - Make the support of HTTPS in the wget command easier. Javier T. (CC'd)
> >>> has some additional lwIP and Mbed TLS patches to do so. With that it
> >>> becomes possible to fetch and launch a distro installer such as Debian
> >>> etc. using a secure, authenticated connection directly from the U-Boot
> >>> shell. Several use cases:
> >>>   * Authentication: prevent MITM attack (third party replacing the
> >>> binary with a different one)
> >>>   * Confidentiality: prevent third parties from grabbing a copy of the
> >>> image as it is being downloaded
> >>>   * Allow connection to servers that do not support plain HTTP anymore
> >>> (this is becoming more and more common on the Internet these days)
> >>> - Possibly benefit from additional features implemented in lwIP
> >>> - Less code to maintain in U-Boot
> >>
> >> So, on a Pi 3 (rpi_3_defconfig) I see this now (and it passes normally):
> >> ========================================== FAILURES ===========================================
> >> ___________________________________ test_efi_helloworld_net ___________________________________
> >> test/py/tests/test_efi_loader.py:163: in test_efi_helloworld_net
> >>     assert expected_text in output
> >> E   AssertionError: assert 'Hello, world' in 'No UEFI binary known at 200000'
> >> ------------------------------------ Captured stdout call -------------------------------------
> >> U-Boot> tftpboot 200000 EFI/arm64/helloworld.efi
> >> Using smsc95xx_eth device
> >> TFTP from server 192.168.1.10; our IP address is 192.168.1.100
> >> Filename 'EFI/arm64/helloworld.efi'.
> >> Load address: 0x200000
> >> Loading:
> >> Bytes transferred = 4528 (11b0 hex)
> >> U-Boot> U-Boot> crc32 200000 $filesize
> >> CRC32 for 00200000 ... 002011af ==> 2b466005
> >> U-Boot> U-Boot> bootefi 200000
> >> No UEFI binary known at 200000
> >> U-Boot>
> >> =================================== short test summary info ===================================
> >> If I disable that test, it moves on to failing the same exact way for
> >> grub. If I disable the grub test too. After that, oh, a bunch of other
> >> tests get skipped because CMD_NET and similar aren't enabled now, and
> >> the tests are wrong. I'll post that as another patch by itself. After
> >> correcting for that, we're seemingly noticeably slower as I need to
> >> increase the timeout for tftp'ing my 83MiB FIT image I use for kernel
> >> testing. We no longer have the estimated speed message, so I can't as
> >> easily say how much slower it is. After increasing the timeout, the
> >> kernel boot test does work.
> >>
> >> I can note that normally it takes ~18ms to get a dhcp reply, but with
> >> lwIP it's now 132ms, and previously the kernel loaded at 2.7MiB/s
> >> (which, not great) but if that has a similar level of slowdown, could
> >> well explain it.
> >>
> > 
> > Thanks for taking the time. We'll run the pytests before v5. That
> > being said, my wget tests were faster with lwIP last time I checked.
> 
> The reason for the slower TFTP is the block size. lwIP supports only the
> default (512 bytes), while the legacy stack supports the 'blksize' option
> and sets CONFIG_TFTP_BLOCKSIZE=1468 by default.

Ouch. Can we ask if upstream is agreeable to making that configurable
some way, and then we utilize that? I'm not looking forward to lots of
performance hit reports.

But please note that my dhcp request/reply is also taking 10x as long,
and in v3 it wasn't working at all? I feel like there's possibly another
issue lurking here.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

  reply	other threads:[~2024-06-19 15:07 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-17 15:32 [PATCH v4 00/14] Introduce the lwIP network stack Jerome Forissier
2024-06-17 15:32 ` [PATCH v4 01/14] flash: prefix error codes with FL_ Jerome Forissier
2024-06-18 16:22   ` Tom Rini
2024-06-19  7:29   ` Ilias Apalodimas
2024-06-17 15:32 ` [PATCH v4 02/14] net: introduce alternative implementation as net-lwip/ Jerome Forissier
2024-06-18 17:59   ` Tom Rini
2024-06-19  9:06     ` Jerome Forissier
2024-06-17 15:32 ` [PATCH v4 03/14] net: split include/net.h into net{, -common, -legacy, -lwip}.h Jerome Forissier
2024-06-17 15:32 ` [PATCH v4 04/14] net-lwip: build lwIP Jerome Forissier
2024-06-17 15:32 ` [PATCH v4 05/14] net-lwip: add DHCP support and dhcp commmand Jerome Forissier
2024-06-17 16:54   ` Heinrich Schuchardt
2024-06-19  9:37     ` Jerome Forissier
2024-06-19 10:07       ` Ilias Apalodimas
2024-06-17 15:32 ` [PATCH v4 06/14] net-lwip: add TFTP support and tftpboot command Jerome Forissier
2024-06-17 15:32 ` [PATCH v4 07/14] net-lwip: add ping command Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 08/14] net-lwip: add dns command Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 09/14] net: split cmd/net.c into cmd/net.c and cmd/net-common.c Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 10/14] net-lwip: add wget command Jerome Forissier
2024-06-24  6:21   ` Jon Humphreys
2024-06-24  6:25     ` Jon Humphreys
2024-06-24  8:50       ` Jerome Forissier
2024-06-24  6:26     ` Jon Humphreys
2024-06-24  8:52       ` Jerome Forissier
2024-06-24  8:49     ` Jerome Forissier
2024-06-25  3:20       ` Jon Humphreys
2024-06-25  7:43         ` Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 11/14] cmd: bdinfo: enable -e when CONFIG_CMD_NET_LWIP=y Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 12/14] configs: add qemu_arm64_lwip_defconfig Jerome Forissier
2024-06-19 12:14   ` Ilias Apalodimas
2024-06-17 15:33 ` [PATCH v4 13/14] MAINTAINERS: net-lwip: add myself as a maintainer Jerome Forissier
2024-06-17 15:33 ` [PATCH v4 14/14] CI: add qemu_arm64_lwip to the test matrix Jerome Forissier
2024-06-18 20:21 ` [PATCH v4 00/14] Introduce the lwIP network stack Tom Rini
2024-06-19  7:24   ` Ilias Apalodimas
2024-06-19 14:47     ` Jerome Forissier
2024-06-19 15:07       ` Tom Rini [this message]
2024-06-19 16:45         ` Jerome Forissier
2024-06-19 17:19       ` Peter Robinson
2024-06-20  8:05         ` Jerome Forissier
2024-06-20 17:10 ` Tim Harvey
2024-06-21 12:59   ` Jerome Forissier
2024-06-21 16:08     ` Tim Harvey
2024-06-21 17:56       ` Jerome Forissier
2024-06-21 18:42       ` Fabio Estevam
2024-06-22  8:08         ` Maxim Uvarov
2024-06-24 22:28           ` Tim Harvey
2024-06-25  8:02             ` Jerome Forissier
2024-06-26 16:00               ` Tim Harvey
2024-06-28  9:50                 ` Jerome Forissier
2024-06-28 15:48                   ` Tim Harvey
2024-07-01  9:58                     ` Jerome Forissier
2024-07-01 16:06                       ` Tim Harvey
2024-06-21 14:57 ` Simon Glass
2024-06-21 17:55   ` Jerome Forissier

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=20240619150744.GA68077@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=javier.tia@linaro.org \
    --cc=jerome.forissier@linaro.org \
    --cc=muvarov@gmail.com \
    --cc=u-boot@lists.denx.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.