DPDK patches and discussions
 help / color / mirror / Atom feed
From: Yuanhan Liu <yliu@fridaylinux.org>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Yuanhan Liu <liuyuanhan.131@bytedance.com>,
	"libtpa@googlegroups.com" <libtpa@googlegroups.com>,
	dev@dpdk.org, Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Subject: Re: [EXT] Libtpa: a DPDK based userspace TCP stack implementation
Date: Mon, 11 Dec 2023 20:36:40 +0800	[thread overview]
Message-ID: <ZXcCWK-wqk_awma2@yliu-lap.local> (raw)
In-Reply-To: <3376556.iZASKD2KPV@thomas>

On Mon, Dec 11, 2023 at 01:16:52PM +0100, Thomas Monjalon wrote:
> 11/12/2023 12:32, Jerin Jacob Kollanukkaran:
> > From: Yuanhan Liu <yliu@fridaylinux.org>
> > > Hi all,
> > > 
> > > I'd like to share a new DPDK open source project, libtpa(Transport Protocol
> > > Acceleration)[0], which is just another userspace TCP stack implementation so
> > > far, written from scratch.
> > > 
> > > I started this project 3 years ago, while I was searching for a feasible open
> > > source project with no luck. There were indeed quite a few options, but none of
> > > them actually met my needs. I then started writing one. Likely, there are still
> > > other guys out there looking for a high performance and stable userspace TCP
> > > stack. This is what this email and libtpa for.
> > 
> > Great Yuanhan.
> > 
> > If you have time and willing to put effort, I suggest make this part of dpdk code base
> > as new library (tcp or so) and leverage + improve another existing library such ip_frag.
> > 
> > I believe, that is only way.
> > - This code soon won't soon outdated based on new DPDK version
> > - More community review and contributors
> > - More review and features from NIC vendors PoV.
> > - More arch and driver support.
> > - More quality
> 
> As Yuanhan said, there are many TCP stacks running on top of DPDK.
> We should add this one to the list:
> 	https://www.dpdk.org/ecosystem/#projects
> Also a discussion has started recently about integrating one in DPDK.
> As Jerin suggests, libtpa looks like a very good candidate to focus efforts on it.
> 
> Regarding performance, how does it compare with F-Stack? TLDK? Seastar?

I think it should be fair to say (I haven't done the testing though; I
never tried to run those stacks), libtpa is the userspace tcp stack with
the best performance I'm aware of. The redis numbers showed in this email
thread is just one example. Libtpa also ships an performance benchmark,
tperf. With tperf write test (and without jumboframe), libtpa can achieve
200G linerate with only one physical core for write. The read test is not
that good though, because of missing hardware acceleration features like
TSO.

Although performance is very important to an userspace stack, I still
want to point out that, during the design, performance is not my major
goal. I spent most of my effort on shaping the testing system and the
debug-ablity initially. Libtpa has been deployed in bytedance for more
than two years, till now, there is no single TCP protocol bug reported.
(I do get very few bugs reported though, but most of them are related
to the OS environment, such as sigbus due to wrong API used when running
out of tmpfs).

Thanks,
Yuanhan Liu

  reply	other threads:[~2023-12-11 12:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-11  9:56 Yuanhan Liu
2023-12-11 10:57 ` Liang Ma
2023-12-11 11:32 ` [EXT] " Jerin Jacob Kollanukkaran
2023-12-11 12:16   ` Thomas Monjalon
2023-12-11 12:36     ` Yuanhan Liu [this message]
2023-12-11 12:17   ` Yuanhan Liu
2023-12-11 13:40     ` Jerin Jacob

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=ZXcCWK-wqk_awma2@yliu-lap.local \
    --to=yliu@fridaylinux.org \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=libtpa@googlegroups.com \
    --cc=liuyuanhan.131@bytedance.com \
    --cc=thomas@monjalon.net \
    /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;
as well as URLs for NNTP newsgroup(s).