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 45B8541E06; Tue, 7 Mar 2023 19:52:26 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF11C40ED6; Tue, 7 Mar 2023 19:52:25 +0100 (CET) Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by mails.dpdk.org (Postfix) with ESMTP id 6F9754067B for ; Tue, 7 Mar 2023 19:52:24 +0100 (CET) Received: by mail-pg1-f173.google.com with SMTP id h31so8196300pgl.6 for ; Tue, 07 Mar 2023 10:52:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678215143; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=mtoaOZy0VsorELdmsg/cgS/lkq/H1k510QfwdvL0POM=; b=W+Nzv3+8PB9I7ecaeUHB7tdZoOOI3cAtlIH4QYa+GknMaaccbSmG076L/AvGwnGN9e 02d2TmvWXog36lzAmGJL53aiFcu4G5+jUhKDWrED2eXjelJtfKcdE+o0aD2d3HRxKBak fwW7l88CxC5ZSjX5L3wW/u2S+N2QhrN/3vRvik2/RhT675539cimdJo8gAZVZZjqTrkD zjnKaoGz1351dOUooP1l9Ovb/reA5d01fsFAR+menAW9Tb51Js0CBJ3NoHFJqjZXRmiM tpLTVEFEJZ7wYCBmMW3b1dnJoXwRzG0O929yUHKByt9BaMOPAJtjjQ6h9IUngOGy9r/m c0ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678215143; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mtoaOZy0VsorELdmsg/cgS/lkq/H1k510QfwdvL0POM=; b=QExZthBMt6wPbdCPd2Ne1svG9cd9Ur5VWLxRFuZ+GrSo1F0gpRW4gznyRjDqgtRtvb 2I4JwbYLigQWMMAt62zxbhu+QdGLSj7JGncNVxWgll9ibvRAGYKyRV5MhQRw+WAH3RZk KdftcRZL407Q6IfhUsv3UMo0pTYf5YybbOMnmAijgNl+5MZiVCdr5UgYd9x7m2vjAtST Hkm1wsE6aY7JxOLdGh7CrsHe+0+/ZNg27I0dsQCt1QWLl2npW8m6bSvM+EJANr3Wv+ci 8jvRD5q7NhToWyLK6D/prqxPQeiectIMZkvajQlHi+N/p4rBZ5gjzAwgeFOZd4oZ1yVu iMew== X-Gm-Message-State: AO0yUKWHBS2P+uBySxwQuRRVPOoVc19nZLwolU+VWBArlWRvmaH70kGB lgpPDke7I17HDdLmpBDpyKU+fU/b98ldzl07ilRAZQ3Kr1U= X-Google-Smtp-Source: AK7set/BvwtsWgZkLUfrhfchDlFIwXL16Xp19Z/ub2FiEyorLeZPPAH2we0HsjlE7Ssd/WmSMxhq1ZR0f2H9m8cvuSY= X-Received: by 2002:a62:db86:0:b0:5a8:e8f3:bf8e with SMTP id f128-20020a62db86000000b005a8e8f3bf8emr6647009pfg.2.1678215142841; Tue, 07 Mar 2023 10:52:22 -0800 (PST) MIME-Version: 1.0 From: Rajasekhar Pulluru Date: Wed, 8 Mar 2023 00:22:10 +0530 Message-ID: Subject: ixgbe rxq interrupt not working To: dev@dpdk.org Content-Type: multipart/alternative; boundary="0000000000007228c305f653e953" 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 --0000000000007228c305f653e953 Content-Type: text/plain; charset="UTF-8" Hi Team, Bringing-up dpdk-22.07 on an intel machine with 8 ports, 4 of them driven by igb and the rest of the 4 ports driven by ixgbe. I am following the below sequence to initialize these ports: dev_conf.intr_conf.lsc = 1; //Enable link state change interrupt dev_conf.intr_conf.rxq = 1; //Enable RX Queue Interrupt dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE; dev_conf.rxmode.offloads = 0; dev_conf.txmode.mq_mode = RTE_ETH_MQ_TX_NONE; dev_conf.txmode.offloads = 0; rte_eth_dev_configure rte_eth_rx_queue_setup rte_eth_tx_queue_setup rte_eth_dev_start data = port_id << CHAR_BIT | queue_id; rte_eth_dev_rx_intr_ctl_q(port_id, queue_id, RTE_EPOLL_PER_THREAD, RTE_INTR_EVENT_ADD, (void *)((uintptr_t)data)); rte_eth_dev_rx_intr_enable(port_id, queue_id); And then main loop repeats the below: rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, 1, timeout /* 200micro-sec */); /* ignore return value */ rte_eth_dev_rx_intr_disable(port_id, queue_id); rte_eth_rx_burst(port_id, queue_id, pkts, num_pkts); rte_eth_dev_rx_intr_enable(port_id, queue_id); The code is same for all the ports, igb ports are able to come-up and rx packets, where-as the ixgbe ports are not able to rx packets at all. cat /proc/interrupts dumps vfio-msix counters for ixgbe as 0, where-as it's non-zero for igb. If I don't use/enable rxq interrupt for ixgbe (and remove epoll wait, interrupt enable/disable from while loop) and simply poll for rte_eth_rx_burst in a loop, ixgbe ports are able to rx packets. What could be wrong here? Appreciate any help. I would also like to know if there's an asynchronous rxq interrupt notification to the application instead of rte_epoll_wait (and sleep). Thanks & Regards, Rajasekhar --0000000000007228c305f653e953 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

Bringing-up dpdk-22.07 on an i= ntel machine with 8 ports, 4 of them driven by igb and the rest of the 4 po= rts driven by ixgbe.

I am following the below sequence to=C2=A0init= ialize these ports:

dev_conf.intr_conf.lsc =3D 1; //Enable link stat= e change interrupt
dev_conf.intr_conf.rxq =3D 1; //Enable RX Queue Inter= rupt
dev_conf.rxmode.mq_mode =3D RTE_ETH_MQ_RX_NONE;
dev_conf.rxmode.= offloads =3D 0;
dev_conf.txmode.mq_mode =3D RTE_ETH_MQ_TX_NONE;
dev_c= onf.txmode.offloads =3D 0;

rte_eth_dev_configure
rte_eth_rx_queue= _setup
rte_eth_tx_queue_setup
rte_eth_dev_start
data =3D port_id &= lt;< CHAR_BIT | queue_id;
rte_eth_dev_rx_intr_ctl_q(port_id, queue_id= , RTE_EPOLL_PER_THREAD, RTE_INTR_EVENT_ADD, (void *)((uintptr_t)data));
= rte_eth_dev_rx_intr_enable(port_id, queue_id);

And then main loop re= peats the below:

rte_epoll_wait(RTE_EPOLL_PER_THREAD, event, 1, time= out /* 200micro-sec */); /* ignore return value */
rte_eth_dev_rx_intr_d= isable(port_id, queue_id);
rte_eth_rx_burst(port_id, queue_id, pkts, num= _pkts);
rte_eth_dev_rx_intr_enable(port_id, queue_id);

The code i= s same for all the ports, igb ports are able to come-up and rx packets, whe= re-as the ixgbe ports are not able to rx packets at all.
cat /proc/inter= rupts dumps vfio-msix counters for ixgbe as 0, where-as it's non-zero f= or igb.

If I don't use/enable rxq interrupt for ixgb= e (and remove epoll wait, interrupt enable/disable from while loop) and sim= ply poll for rte_eth_rx_burst in a loop, ixgbe ports are able to rx packets= .

What could be wrong here? Appreciate any help.

I wou= ld also like to know if there's an asynchronous rxq interrupt notificat= ion to the application instead of rte_epoll_wait (and sleep).

Thanks= & Regards,
Rajasekhar
--0000000000007228c305f653e953--