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 1DC7F433B8; Fri, 24 Nov 2023 14:16:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B0999432B6; Fri, 24 Nov 2023 14:16:21 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id B715640283 for ; Fri, 24 Nov 2023 14:16:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700831775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=yCM8fXEIPKi/ZnBWK+pQHoqRiPH5NfpUoHsGhXA3ocI=; b=iJ4vVpYkaLqaYnhISCJO+Qtbaf5ErqdmYFQvYIdIh0/GjD/sq1q7ojzJFweOnIw75d6j51 tfR52P8DNMOwC0MN03c7j4/wov2A0D9vjVW6fIRq0L5VwpIVuxKkFGRveYCAcuALEGUoPD szg1u9DY7AmO2QEqr6PT2K1Lzh/uBQg= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-106-Zt0SdOudOoi31haZpGDUvQ-1; Fri, 24 Nov 2023 08:16:13 -0500 X-MC-Unique: Zt0SdOudOoi31haZpGDUvQ-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 82BFD185A786; Fri, 24 Nov 2023 13:16:13 +0000 (UTC) Received: from [10.39.208.30] (unknown [10.39.208.30]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F7A51C060B0; Fri, 24 Nov 2023 13:16:12 +0000 (UTC) Message-ID: Date: Fri, 24 Nov 2023 14:16:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: net/virtio: duplicated xstats To: Edwin Brossette Cc: Olivier Matz , Ferruh Yigit , dev@dpdk.org References: From: Maxime Coquelin Autocrypt: addr=maxime.coquelin@redhat.com; keydata= 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 Mwqu3GQ= In-Reply-To: X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 On 11/24/23 14:13, Edwin Brossette wrote: > Hello again, > > The flag is already set during the device init, so it should be removed, > not added. > I can confirm removing it fixed my issue. > > I will submit a patch for this bug. g Great, thanks Edwin! Don't forget to add the Fixes: tag and cc stable@dpdk.org. Maxime > Regards, > Edwin Brossette. > > On Fri, Nov 24, 2023 at 11:39 AM Maxime Coquelin > > wrote: > > Hi Edwin, > > Thanks for reporting the issue. > > On 11/24/23 10:26, Olivier Matz wrote: > > Fix Maxime's mail. > > Thanks Olivier. > > > On Fri, Nov 24, 2023 at 10:18:27AM +0100, Edwin Brossette wrote: > >> Hello, > >> > >> I noticed a small inconsistency in the virtio pmd's xstats. > >> The stat "rx_q0_errors" appears twice. > >> I also think the stats "rx_q0_packets", "rx_q0_bytes", > "tx_q0_packets" and > >> "tx_q0_bytes" are duplicates of "rx_q0_good_packets", > "rx_q0_good_bytes", > >> "tx_q0_good_packets" and "tx_q0_good_bytes" > >> > >> I believe this issue probably appeared after this commit: > >> > >> f30e69b41f94: ethdev: add device flag to bypass auto-filled > queue xstats > >> > http://scm.6wind.com/vendor/dpdk.org/dpdk/commit/?id=f30e69b41f949cd4a9afb6ff39de196e661708e2 > > Adding Ferruh as he is the author of this commit. > > >>  From what I understand, the rxq0_error stat was originally > reported by the > >> librte. However, changes were made so it is reported by the pmd > instead. > >> The flag RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS was temporarily set > to keep the > >> old behaviour so that every pmd could have time to adapt the change. > >> But it seems the flag was forgotten in the virtio pmd and as a > result, some > >> stats are fetched at two different times when displaying xstats. > > Have you tried adding this flag to Virtio PMD? Does it fixes the issue? > > >> First in lib_rte_ethdev: > >> https://git.dpdk.org/dpdk/tree/lib/ethdev/rte_ethdev.c#n3266 > > >> (you can see the check on the RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS > flag before > >> the snprintf on eth_dev_rxq_stats_strings[] ) > >> > >> And a second time in the virtio pmd: > >> > https://git.dpdk.org/dpdk/tree/drivers/net/virtio/virtio_ethdev.c#n705 pmd > >> (see the snprintf on rte_virtio_rxq_stat_strings[] ) > >> > >> This problem can be reproduced on testpmd simply by displaying > the xstats > >> on a port with the net_virtio driver: > >> > >> Reproduction: > >> =========== > >> > >>      1) start dpdk-testpmd: > >> > >> modprobe -a uio_pci_generic > >> dpdk-devbind -b uio_pci_generic 03:00.0 > >> dpdk-devbind -b uio_pci_generic 04:00.0 > >> > >> dpdk-devbind -s > >> > >> Network devices using DPDK-compatible driver > >> ============================================ > >> 0000:03:00.0 'Virtio 1.0 network device 1041' drv=uio_pci_generic > >> unused=vfio-pci > >> 0000:04:00.0 'Virtio 1.0 network device 1041' drv=uio_pci_generic > >> unused=vfio-pci > >> [...] > >> > >> dpdk-testpmd -a 0000:03:00.0 -a 0000:04:00.0 -- -i --rxq=1 --txq=1 > >> --coremask=0x4 --total-num-mbufs=250000 > >> EAL: Detected CPU lcores: 3 > >> EAL: Detected NUMA nodes: 1 > >> EAL: Detected static linkage of DPDK > >> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket > >> EAL: Selected IOVA mode 'PA' > >> EAL: VFIO support initialized > >> EAL: Probe PCI driver: net_virtio (1af4:1041) device: > 0000:03:00.0 (socket > >> -1) > >> EAL: Probe PCI driver: net_virtio (1af4:1041) device: > 0000:04:00.0 (socket > >> -1) > >> Interactive-mode selected > >> Warning: NUMA should be configured manually by using > --port-numa-config and > >> --ring-numa-config parameters along with --numa. > >> testpmd: create a new mbuf pool : n=250000, > size=2176, socket=0 > >> testpmd: preferred mempool ops selected: ring_mp_mc > >> Configuring Port 0 (socket 0) > >> Port 0: 52:54:00:B0:8F:88 > >> Configuring Port 1 (socket 0) > >> Port 1: 52:54:00:EF:09:1F > >> Checking link statuses... > >> Done > >> > >>      2) port info: > >> > >> show port info 0 > >> > >> ********************* Infos for port 0  ********************* > >> MAC address: 52:54:00:B0:8F:88 > >> Device name: 0000:03:00.0 > >> Driver name: net_virtio > >> Firmware-version: not available > >> Devargs: > >> Connect to socket: 0 > >> memory allocation on the socket: 0 > >> Link status: up > >> Link speed: Unknown > >> Link duplex: full-duplex > >> Autoneg status: On > >> MTU: 1500 > >> Promiscuous mode: enabled > >> Allmulticast mode: disabled > >> Maximum number of MAC addresses: 64 > >> Maximum number of MAC addresses of hash filtering: 0 > >> VLAN offload: > >>    strip off, filter off, extend off, qinq strip off > >> No RSS offload flow type is supported. > >> Minimum size of RX buffer: 64 > >> Maximum configurable length of RX packet: 9728 > >> Maximum configurable size of LRO aggregated packet: 0 > >> Current number of RX queues: 1 > >> Max possible RX queues: 1 > >> Max possible number of RXDs per queue: 32768 > >> Min possible number of RXDs per queue: 32 > >> RXDs number alignment: 1 > >> Current number of TX queues: 1 > >> Max possible TX queues: 1 > >> Max possible number of TXDs per queue: 32768 > >> Min possible number of TXDs per queue: 32 > >> TXDs number alignment: 1 > >> Max segment number per packet: 65535 > >> Max segment number per MTU/TSO: 65535 > >> Device capabilities: 0x0( ) > >> Device error handling mode: none > >> Device private info: > >> guest_features: 0x110af8020 > >> vtnet_hdr_size: 12 > >> use_vec: rx-0 tx-0 > >> use_inorder: rx-0 tx-0 > >> intr_lsc: 1 > >> max_mtu: 9698 > >> max_rx_pkt_len: 1530 > >> max_queue_pairs: 1 > >> req_guest_features: 0x8000005f10ef8028 > >> > >>      3) show port xstats: > >> > >> show port xstats 0 > >> ###### NIC extended statistics for port 0 > >> rx_good_packets: 0 > >> tx_good_packets: 0 > >> rx_good_bytes: 0 > >> tx_good_bytes: 0 > >> rx_missed_errors: 0 > >> rx_errors: 0 > >> tx_errors: 0 > >> rx_mbuf_allocation_errors: 0 > >> rx_q0_packets: 0 > >> rx_q0_bytes: 0 > >> rx_q0_errors: 0      <================== > >> tx_q0_packets: 0 > >> tx_q0_bytes: 0 > >> rx_q0_good_packets: 0 > >> rx_q0_good_bytes: 0 > >> rx_q0_errors: 0      <================== > >> rx_q0_multicast_packets: 0 > >> rx_q0_broadcast_packets: 0 > >> rx_q0_undersize_packets: 0 > >> rx_q0_size_64_packets: 0 > >> rx_q0_size_65_127_packets: 0 > >> rx_q0_size_128_255_packets: 0 > >> rx_q0_size_256_511_packets: 0 > >> rx_q0_size_512_1023_packets: 0 > >> rx_q0_size_1024_1518_packets: 0 > >> rx_q0_size_1519_max_packets: 0 > >> tx_q0_good_packets: 0 > >> tx_q0_good_bytes: 0 > >> tx_q0_multicast_packets: 0 > >> tx_q0_broadcast_packets: 0 > >> tx_q0_undersize_packets: 0 > >> tx_q0_size_64_packets: 0 > >> tx_q0_size_65_127_packets: 0 > >> tx_q0_size_128_255_packets: 0 > >> tx_q0_size_256_511_packets: 0 > >> tx_q0_size_512_1023_packets: 0 > >> tx_q0_size_1024_1518_packets: 0 > >> tx_q0_size_1519_max_packets: 0 > >> > >> You can see the stat "rx_q0_errors" appeared twice. > > > > If simply adding the flag solves your issue, do you plan to submit a > patch? > > If not, could you please file a Bz in the upstream bug tracker so that > we don't lose track of this bug? > > Best regards, > Maxime >