> > 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