This patch adds the per profile AVX512 opt hashing to autovalidator for validating the hash values against the scalar hash.
Signed-off-by: Kumar Amber <[email protected]> --- lib/dpif-netdev-private-extract.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/dpif-netdev-private-extract.c b/lib/dpif-netdev-private-extract.c index c11309def..193dab398 100644 --- a/lib/dpif-netdev-private-extract.c +++ b/lib/dpif-netdev-private-extract.c @@ -301,6 +301,9 @@ dpif_miniflow_extract_autovalidator(struct dp_packet_batch *packets, DP_PACKET_BATCH_FOR_EACH (i, packet, packets) { pkt_metadata_init(&packet->md, in_port); miniflow_extract(packet, &keys[i].mf); + keys[i].len = netdev_flow_key_size(miniflow_n_values(&keys[i].mf)); + keys[i].hash = dpif_netdev_packet_get_rss_hash_orig_pkt(packet, + &keys[i].mf); /* Store known good metadata to compare with optimized metadata. */ good_l2_5_ofs[i] = packet->l2_5_ofs; @@ -384,6 +387,15 @@ dpif_miniflow_extract_autovalidator(struct dp_packet_batch *packets, failed = 1; } + /* Check hashes are equal. */ + if ((keys[i].hash != test_keys[i].hash) || + (keys[i].len != test_keys[i].len)) { + ds_put_format(&log_msg, "Good hash: %d len: %d\tTest hash:%d" + " len:%d\n", keys[i].hash, keys[i].len, + test_keys[i].hash, test_keys[i].len); + failed = 1; + } + if (failed) { VLOG_ERR("Autovalidation for %s failed in pkt %d," " disabling.", mfex_impls[j].name, i); -- 2.25.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
