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 756A842BE6 for ; Tue, 30 May 2023 17:42:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6472A427F2; Tue, 30 May 2023 17:41:57 +0200 (CEST) Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by mails.dpdk.org (Postfix) with ESMTP id 3DDA0410DD for ; Mon, 29 May 2023 17:02:56 +0200 (CEST) Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-565cd2fc9acso28741277b3.0 for ; Mon, 29 May 2023 08:02:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685372575; x=1687964575; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=G5uGxcUy+I0LKY6uIklkR/UNy8RuPCiZdseqoZw4Lko=; b=DVmh8Nm5+qfoxJYIx+u2H+iMsC+Odt9AYiYv43hj5fRdrngduVdl3YV0DJzYgIzMHY zL0me0MyWk4J+mivkhhjl7j/ZMJIBcoOsWXm6/QOSRo6Mw2NDnuLAKctUgGXogdk2TTG xCmdoj+cAwgsNY3GlTihUHVzrDJXH+4egWab03dHeyibUWd5h5lUqlzza8e4HO6GdyRU cWlML/7ft+lY7eq8Jst7cXDUmAwpSPE6kTsclnzpu88fL3VWmqC3QkgchH91rcJ8Y7vw 828pPs7d66CaIfpoy9htxyRFZFdyJVYp9fS1bYmdkH5zmN+FZEsR1hQOuDY/WbE9TPPy TTYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685372575; x=1687964575; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=G5uGxcUy+I0LKY6uIklkR/UNy8RuPCiZdseqoZw4Lko=; b=HiuGzLqRJGByMZ+Ebv9YRG2+JoubIHXYDofnwoz7cl7besnKs5xyryLWVNaRI3zRIF kJaO8A9mjz7PrSXA57/hqKHsehArn4i1LT0lNi/tai3PNZ9he8xK1rbKsFmQ0YT4JNnr S0rev+pHdvNgNOy1kWFAMEQjzZTKSJzlSAjiHujTjgImhCQ6PUNjUcP5mNRuvuhp56Dd QaGVcgK/W9Ye65TvOTLn8ybSvZqpta5Tx3cz3zJkyZFYGSVAbuvngxsvp1qzLWjFded2 Ej7c8pJuKXmTsBZsd0Sr6Y8pI57gWV17gD4KiD8dvTWgsGXHYdcPBz7MvLBnOXYfCqXe 4mGQ== X-Gm-Message-State: AC+VfDydIfa5mwf42gA4oo0UIsVheMtWZNgvfU+T7CU75LHUyCgaJFmm 3970yRwnYjraNCcdZPRqBsu/5ZKt8yAqbPsqmoRFPnGvup0= X-Google-Smtp-Source: ACHHUZ7aOVqc1zmxUTvCbTj3OMaFPiL29iBiX9lvAzzwg0dsrWLavG3rJ1CBI/EFxD0yuyFAqW0IZiR42yrz7UZHL1k= X-Received: by 2002:a81:9214:0:b0:561:cb45:d7de with SMTP id j20-20020a819214000000b00561cb45d7demr14553467ywg.31.1685372575349; Mon, 29 May 2023 08:02:55 -0700 (PDT) MIME-Version: 1.0 From: Fengkai Sun Date: Mon, 29 May 2023 23:02:45 +0800 Message-ID: Subject: Scheduling of multiple RX/TX queues on a single port To: users@dpdk.org Content-Type: multipart/alternative; boundary="000000000000aaff6f05fcd66167" X-Mailman-Approved-At: Tue, 30 May 2023 17:41:55 +0200 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org --000000000000aaff6f05fcd66167 Content-Type: text/plain; charset="UTF-8" Hi list, I'm curious how DPDK programs the NIC to receive/transmit packets when there are multiple queues on a single port. As for RX, the answer might be clear. The NIC can only receive a packet once at a time, since the cable only outputs one signal (0 or 1) at a time (correct me if I'm wrong). Therefore the NIC can receive a packet, check it's information, and finally put in into the right queue via some policies, e.g. RSS, all sequentially. However, it confuses me when it comes to TX. As there are multiple TX queues on the same port, the NIC must decide which queue to get packets from when it's idle. This is where scheduling lies. How does the NIC select the queue? Round-Robin? Does it have to enforce fairness among the queues? I'm wondering where I can find some documentation on this issue. Thank you! Best Regards, Fengkai --000000000000aaff6f05fcd66167 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi list,

I'm curious how DPDK progr= ams the NIC to receive/transmit packets when there are multiple queues on a= single port.

As for RX, the answer might be clear= .=C2=A0
The NIC can only receive a packet once at a time, since t= he cable only outputs one signal (0 or 1) at a time (correct me if I'm = wrong).
Therefore the NIC can receive a packet, check it's in= formation, and finally put in into the right queue via some policies, e.g. = RSS, all sequentially.

However, it confuses me whe= n it comes to TX.
As there are multiple TX queues on the same por= t, the NIC must decide which queue to get packets from when it's idle.<= /div>
This is where scheduling lies. How does the NIC select the queue?= Round-Robin? Does it have to enforce fairness among the queues?=C2=A0

I'm wondering where I can find some documentation = on this issue. Thank you!


Best Rega= rds,
Fengkai
--000000000000aaff6f05fcd66167--