From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 482BD45F69; Sun, 29 Dec 2024 11:45:21 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CD32440289; Sun, 29 Dec 2024 11:45:20 +0100 (CET) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 9D87F40280 for ; Sun, 29 Dec 2024 11:45:19 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 2699A2027D; Sun, 29 Dec 2024 11:45:19 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: RFC - Tap io_uring PMD Date: Sun, 29 Dec 2024 11:45:17 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F97B@smartserver.smartshare.dk> In-Reply-To: <20241111212116.28090881@hermes.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: RFC - Tap io_uring PMD Thread-Index: Ads0wrcP70ZTXtZkQR6pa+U4+Xx3UAlFqT5g References: <20241030145644.0b97f23c@hermes.local> <20241111212116.28090881@hermes.local> From: =?iso-8859-1?Q?Morten_Br=F8rup?= To: "Stephen Hemminger" , "Maxime Coquelin" Cc: X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > Sent: Tuesday, 12 November 2024 06.21 >=20 > On Wed, 6 Nov 2024 08:46:55 +0100 > Maxime Coquelin wrote: > > > > Why not just use Virtio-user PMD with Vhost-kernel backend [0]? > > Are there any missing features that io_uring can address? > > > > Regards, > > Maxime > > > > [0]: > http://doc.dpdk.org/guides/howto/virtio_user_as_exception_path.html > > >=20 > Yes, I looked at that but: > - virtio user ends up with a busy kernel thread which is not > acceptable > in SOC environment where all resources are locked down. In the SOC > I was working > on DPDK was limited to 4 polling isolated CPU's and 1 sleeping = main > thread. > The rest of the CPU resources were hard constrained by cgroups. = The > virtio user > thread was a problem. I suppose the Kernel needs to schedule CPU resources to process the = packets at some point anyway. So how does the ioring driver improve the situation with the virtio-user = thread? I.e. what's the difference in the way the Kernel handles these = two types of drivers? And a slightly related question: Are there any differences in = throughput, latency or other performance metrics? (At very high = bandwidth, scheduling latency matters; the "latency" parameter of the = BDP becomes dominant.) Overall, I'm trying to figure out when to use the virtio-user PMD, and = when to use the ioring PMD. Eventually, this should be described in the driver documentation or a = user guide. >=20 > - virtio user device is not persistent. If DPDK is being used a > dataplane, need to > be able to quickly restart and not disturb applications and = routing > in the kernel > while the tap device is unavailable. I.e having device present = but > in no carrier > state is better than having to teach applications about hot plug = or > play around > with multiple addresses on loopback device (which is what Cisco > routers do). virtio-user device persistence can probably be achieved in some other = way. (E.g. a persistent user space daemon could be used as a middle man for = allocation. Just an idea; probably better solutions are available, if = given more brain cycles.)