<html>
    <head>
      <base href="https://bugs.dpdk.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8" class="bz_new_table">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_UNCONFIRMED "
   title="UNCONFIRMED - [dpdk-22.11.4] vhost_virtio_user_interrupt_with_power_monitor/perf_wake_up_split_ring_vhost_user_core_with_l3fwd_power_sample:virtio-user can't receive packet"
   href="https://bugs.dpdk.org/show_bug.cgi?id=1338">1338</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[dpdk-22.11.4] vhost_virtio_user_interrupt_with_power_monitor/perf_wake_up_split_ring_vhost_user_core_with_l3fwd_power_sample:virtio-user can't receive packet
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>DPDK
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>22.11
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>UNCONFIRMED
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>vhost/virtio
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>dev@dpdk.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>linglix.chen@intel.com
          </td>
        </tr>

        <tr>
          <th>Target Milestone</th>
          <td>---
          </td>
        </tr></table>
      <p>
        <div class="bz_comment_block">
          <pre class="bz_comment_text">[Environment]
DPDK version: dpdk 22.11.4-rc3: 4307659a90
OS: Ubuntu 22.04.3 LTS/5.15.0-87-generic
Compiler: gcc version 11.4.0
Hardware platform: SPR(Intel(R) Xeon(R) Platinum 8490H)
NIC hardware: Ethernet Controller E810-C for QSFP 1592
NIC firmware: 4.40 0x8001c2f1 1.3492.0
NIC kdriver: ice-1.13.3_dirty

[Test Setup]
Steps to reproduce
1. ssh root@dpdk-yingya-spr2  
Compile DPDK::
meson  -Dexamples=l3fwd-power x86_64-native-linuxapp-gcc
ninja -C x86_64-native-linuxapp-gcc

2.bind NIC port to vfio-pci,  
./usertools/dpdk-devbind.py -b vfio-pci 45:00.0

3. Launch virtio-user with server mode:: 
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -l 3-4 -n 8 -a 0000:45:00.0
--vdev net_virtio_user0,path=./vhost-net,server=1,queues=1 -- -i --rxq=1
--txq=1

4. Launch vhost with l3fwd-power::      
 ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power  -l 5-6 -n 8  
--file-prefix=l3fwd-pwd_216146_20231228175051 --no-pci --vdev
net_vhost0,iface=./vhost-net,queues=1,client=1    --log-level='user1,7' -- -p 1
 --config='(0,0,5)' --parse-ptype --pmd-mgmt=monitor

5. Start virtio-user::
      testpmd>start

6. Sent imix packets from TG

[Show the output from the previous commands]
pktgen: ixia packet generator: run traffic 5s to warm up ...
                        pktgen: begin traffic ......
                        tester: scp -v ixiaConfig.tcl root@dpdk-yingya-spr2:~/
                        pktgen: source ixiaConfig.tcl
                        pktgen: ixStopTransmit portList
                        pktgen: traffic completed.
                        pktgen: begin traffic ......
                        tester: scp -v ixiaConfig.tcl root@dpdk-yingya-spr2:~/
                        pktgen: source ixiaConfig.tcl
                        pktgen: begin get port statistic ...
                        pktgen: stat getRate statAllStats 1 3 4
                        pktgen: stat cget -framesReceived
                        pktgen: stat cget -bitsReceived
                        pktgen: stat cget -oversize
                        pktgen: throughput: pps_rx 0.000000, bps_rx 0.000000

[Expected Result]
 check packets can fwd back with correct payload.

Regression
Is this issue a regression: (Y/N) Y
test on SPR only
The commit a07736eb68 will build failed
8c291d8778 tested failed (vhost: fix checking virtqueue access in stats API)    
a07736eb68 build failed (vhost: fix missing lock protection in power monitor
API) (/lib/vhost/vhost.c:2171:13: error: unused variable ‘ret’
[-Werror=unused-variable])
adae353b36 tested passed (vhost: fix check on virtqueue access in in-flight
getter)     

bad commit  8c291d87783d2e22e6234cddc23bee27d0f14dae (HEAD -> 22.11)
Author: Maxime Coquelin <<a href="mailto:maxime.coquelin@redhat.com">maxime.coquelin@redhat.com</a>>
Date:   Fri Oct 20 10:48:04 2023 +0200

    vhost: fix checking virtqueue access in stats API

    [ upstream commit a004501a147889d608008ab6f18355e9b0ceff65 ]

    Acquiring the access lock is not enough to ensure
    virtqueue's metadata such as vring pointers are valid.

    The access status must also be checked.

    Fixes: be75dc99ea1f ("vhost: support per-virtqueue statistics")

    Signed-off-by: Maxime Coquelin <<a href="mailto:maxime.coquelin@redhat.com">maxime.coquelin@redhat.com</a>>
    Acked-by: David Marchand <<a href="mailto:david.marchand@redhat.com">david.marchand@redhat.com</a>>
          </pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
      <div itemscope itemtype="http://schema.org/EmailMessage">
        <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
          
          <link itemprop="url" href="https://bugs.dpdk.org/show_bug.cgi?id=1338">
          <meta itemprop="name" content="View bug">
        </div>
        <meta itemprop="description" content="Bugzilla bug update notification">
      </div>
    </body>
</html>