From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <users-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 825464621D
	for <public@inbox.dpdk.org>; Thu, 13 Feb 2025 22:56:11 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 0AE0E402B9;
	Thu, 13 Feb 2025 22:56:11 +0100 (CET)
Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com
 [209.85.161.48]) by mails.dpdk.org (Postfix) with ESMTP id F037540279
 for <users@dpdk.org>; Thu, 13 Feb 2025 22:56:09 +0100 (CET)
Received: by mail-oo1-f48.google.com with SMTP id
 006d021491bc7-5fcb9f9ef3bso207648eaf.0
 for <users@dpdk.org>; Thu, 13 Feb 2025 13:56:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1739483769; x=1740088569; darn=dpdk.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=QB8l2ms7r0J2vNYK1Xxu3CUe2HA0gAim+16BIDa1Bqs=;
 b=HoWxbe2yqTieMBNgrk8GxIskOOsebUbmKeyrau6Uw59L2orjPiY05N6M8Pu8Xg+NOR
 HxY9/lHI4xn/ytH6MQqp+v3+LlyCX6FCDe3AOT/tLBtISUDmFMDtXlkqHWlN/amY40BC
 yxG928eLBCTRwqULynmG5yD16OyUe1fOCRDcqlfJ24BpTxJn76d/CF/5FcXcjUiXV12i
 A3qA1IiB2xkJDWUPEdk2fKgVdwnyPMZ3v0T6Y95Bu8TgqXvxyXAEFh12/qIdGc3Jcuxs
 7ETAuJLJttfJZDryp6P3G1CBuDnmfKq/NgdWa1+btfRAbvvnJRPUCHWb48qokKPfz0JG
 4CBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1739483769; x=1740088569;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=QB8l2ms7r0J2vNYK1Xxu3CUe2HA0gAim+16BIDa1Bqs=;
 b=Jue6AQo5TEN8L9O69bM5sDM0t3qKgvKcWAKmeIsao3YagAXiuBCne1jdfSRegq8dNm
 1Mj5kmUrIen6Dq0TvOgyGIcv/EXXOGBVRSLRXW71TqIdGV6Q3M/4UNdBl+WopohU/B8F
 ZbJyJ28nGTShTXisGQXPNlPRxfH7v16KLYcv85wVaN4pYmPZMsTCNNFdkxbDpF1QjrzK
 +1BrJYhIW4KflswrNnqQDzdyifTvWkpfHjNBJV3Nk0fV0aywZriwcDLJWtm3vRgxaNwJ
 b+VjfR94a0ByCDfoUQvMNLZB6mP0eoisgLynjtvzHlM8ot/jT90yC9/APtTWCdHrUocY
 qC/Q==
X-Gm-Message-State: AOJu0YwKfz5lrNIsFKsogEnDaV4l71YukuRiJSbyqh5kXxN2rKlnkYdS
 E08nQbBFKhKMfS/gckHCLW9mx5xZ6CU9rHy4LgHkubH0anMh4EcsG2MQxSL2hATvT0wNB5TUY6V
 bbKLqp5iqoqug25SS7ZcXOuvL7lYZ0PKC
X-Gm-Gg: ASbGncuOxuiWJjJUj+5Sn3M1qM6uMlCCiUuX3DqQRuMxL0q2AktJywkp4hw85E8DfEi
 qFVWcm6lMWOyHJaunrDuPvEAw/sSRubB+LWcWIoEvNKCmEA6LhIbH8rBudGTT4ei75nhxJ8Q=
X-Google-Smtp-Source: AGHT+IFbmbrG0OMhwxeh8/nHfWLWJQKKJUh6odQ34coiR6oqDVv11t4QYia5ZBLXMR2+obkWRElTKXXuTM7YB1/A7RM=
X-Received: by 2002:a05:6870:5490:b0:29f:b1d4:7710 with SMTP id
 586e51a60fabf-2b8d67b8c03mr5431058fac.24.1739483768697; Thu, 13 Feb 2025
 13:56:08 -0800 (PST)
MIME-Version: 1.0
From: Alan Beadle <ab.beadle@gmail.com>
Date: Thu, 13 Feb 2025 16:55:57 -0500
X-Gm-Features: AWEUYZmFrpKSQ58MHhQ8PhfoFShMEolxYikmcPFb_AF1WQCGFZTiPeQ52I6MSPo
Message-ID: <CANTAOdzuSS0zdSW5L_+8obbaG-nh7nXy=qXFR3YsaxaxDA5YdA@mail.gmail.com>
Subject: Questions about interrupts
To: users@dpdk.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: users@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK usage discussions <users.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/users>,
 <mailto:users-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/users/>
List-Post: <mailto:users@dpdk.org>
List-Help: <mailto:users-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/users>,
 <mailto:users-request@dpdk.org?subject=subscribe>
Errors-To: users-bounces@dpdk.org

Hello,

I am trying to use rte_epoll_wait() to avoid rx polling and reduce CPU
utilization while preserving low latency. I am using the Intel X550-T2
NIC with DPDK 23.11 and the ixgbe driver.

I was able to make interrupts work and my process is getting
interrupts when a packet arrives. I followed the example here:
https://stackoverflow.com/questions/69792978/using-interrupts-with-dpdk

Before calling rte_epoll_wait(), I must first arm the interrupt by
calling rte_eth_dev_rx_intr_enable() every time my thread is about to
wait. However, if a packet arrives between these calls, the interrupt
will not work and my process will only resume once the timeout is
reached. This causes huge latency spikes unless my timeout is very
short, and the minimum time of 1ms is still too long to tolerate this
problem, since my goal is to keep latency low.

Here are my questions:
1) Is there a way to prevent the thread from suspending at all if the
interrupt is not "armed" anymore?
2) Is it possible to set a timeout shorter than 1 ms? It looks like
this is not supported by rte_epoll_wait().

Thank you,
-Alan Beadle