> 
> Hi:
> In "dp_packet_get_rss_hash", mbuf.hash.rss is returned directly. But when
> it's DPDK vhost pkt, rss isn't initialized, "dpif_netdev_packet_get_rss_hash"
> gets a indeterminate value.  There is not the same issue for ovs linux vport.
> I confirmed it with gdb.
> 
> *Flow 1:* 6.0.0.1 -> 6.0.0.2
> Breakpoint 3, dpif_netdev_packet_get_rss_hash (packet=0x7f42818ab700,
> mf=0x7f42e8861ec8) at lib/dpif-netdev.c:3040
> 3040        if (OVS_UNLIKELY(!hash)) {
> 
> (gdb) p hash
> $41 = 3543360627
>          ->The value itself is correct, but it's just an uninitialized value 
> of a freed
> mbuf.
> 
> (gdb) p *packet
> $43 = {mbuf = {cacheline0 = 0x7f42818ab700, buf_addr = 0x7f42818ab7c0,
> buf_physaddr = 1099610048,
> 
> (gdb) x /128 0x7f42818ab7c0
> ...
> 0x7f42818ab840:    0x00000000    0x00000200    0x01000000 0x00450008
> 0x7f42818ab850:    0x62a25400    0x01400040    0x0006448c 0x00060100
> 0x7f42818ab860:    0x00080200    0xdc07eb8f    0xbb877700 0x00005577
> *
> **Flow 2:* 6.0.0.1 -> 6.0.0.3
> Breakpoint 3, dpif_netdev_packet_get_rss_hash (packet=0x7f42818ac980,
> mf=0x7f42e8861ec8) at lib/dpif-netdev.c:3040
> 3040        if (OVS_UNLIKELY(!hash)) {
> 
> (gdb) p hash
> $44 = 3543360627
>          ->Actually 2140941696 is correct, the wrong value makes this pkt 
> fall into
> emc miss.
> 
> (gdb) p *packet
> $45 = {mbuf = {cacheline0 = 0x7f42818ac980, buf_addr = 0x7f42818aca40,
> buf_physaddr = 1099614784,
> 
> dump the pkt buf:
> (gdb) x 0x7f42818aca40
> ...
> 0x7f42818acac0:    0x8e290c00    0x0000f65d    0x01000000 0x00450008
> 0x7f42818acad0:    0x1e205400    0x01400040    0x0006880e 0x00060100
> 0x7f42818acae0:    0x00080300    0xdd0792f1    0xbb877000 0x00005577

The vhost port won't generate an RSS hash because it is a virtual NIC.
> 
> It doesn't cause a problem, just make the pkt fall into a slow path, should we
> fix it?
> The flag ol_flags may be useful for OVS or let DPDK fix this in vhost rcv.

How do you propose that this would work? The RSS would still have to be 
generated in software.
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to