From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9736EA04C5 for ; Sat, 5 Sep 2020 23:21:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 01D811B9B7; Sat, 5 Sep 2020 23:21:09 +0200 (CEST) Received: from kazi.fit.vutbr.cz (kazi.fit.vutbr.cz [147.229.8.12]) by dpdk.org (Postfix) with ESMTP id A79F62BF1 for ; Sat, 5 Sep 2020 23:21:07 +0200 (CEST) Received: from roundcube.fit.vutbr.cz (spytihnev.fit.vutbr.cz [147.229.9.226]) (authenticated bits=0) by kazi.fit.vutbr.cz (8.16.1/8.16.1) with ESMTPSA id 085LL6Aa071288 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 5 Sep 2020 23:21:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fit.vutbr.cz; s=mx1; t=1599340867; bh=dwr71CevVEtDCiOFvof6aj7JbnsZSYsJwagDXLlycII=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=B26z785/fsOhDxtYNhMEsbBMyuGexjM3bBuMTxsE0DurwI3I8remq+WK8XVWIYg/7 g2pMPJcZIoWFiL2PJezVxR9JdV0ZD4jkkda06xOOuWkLZcLWe8zwxdGEkl4kzjTxMR XfknfAWwpXJIPvZd+7l4BkOjzKNc7eM0hfcOmgVk= MIME-Version: 1.0 Date: Sat, 05 Sep 2020 23:21:06 +0200 From: =?UTF-8?Q?Budisk=C3=BD_Jakub?= To: Stephen Hemminger Cc: users@dpdk.org In-Reply-To: <20200904091827.59056b16@hermes.lan> References: <2569f654685f31fe9595391f9d46e6cf@fit.vutbr.cz> <20200904091827.59056b16@hermes.lan> User-Agent: Roundcube Webmail Message-ID: X-Sender: ibudisky@fit.vutbr.cz Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-users] Interrupt mode, queues, own event loop X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org Sender: "users" On 2020-09-04 18:18, Stephen Hemminger wrote: > The per-queue interrupt functionality for PCI devices is built > on top of MSI-X interrupts. The uio_pci_generic driver you are using > does not support MSI-X. > > The way UIO driver works is to use the legacy INTx functionality, > and when an interrupt occurs the device driver in the kernel is called. > For the uio_pci_generic driver this is mapped to the device file > descriptor. > > For VFIO, you can have one interrupt per queue and it uses eventfd's > to create a per-queue channel. Hi, thanks for the valuable info! I've now switched to the `vfio` module even for testing and I can confirm I get a set of separate eventfd file descriptors. I've encountered a new issue though that appears like a bug to me. Either one of the file descriptors (`--vfio-intr msix`, always the one associated with the last queue, regardless of the initialization order) or all of them (`--vfio-intr msi`) are available for reading just once per application run. I cannot get any followup interrupts and I can confirm by polling that there are new packets that have arrived. With `--vfio-intr legacy` I get a same file descriptor for all my workers but it is also only triggered once. As far as I understand there is no clear flag for the MSI(-X) interrupts and so I'm not sure what else to try. There is nothing of interest in the application output (not even with `--log-level lib.eal:debug`). Thanks again. Best regards, Jakub Budisky