[ovs-dev] [PATCH v2 2/3] ofproto-dpif: Improve dp_hash selection method for select groups
Jan Scheurich
jan.scheurich at ericsson.com
Wed Apr 18 07:12:49 UTC 2018
> How about this approach, which should cleanly eliminate the warning?
>
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index e1a5c097f3aa..362339a4abb4 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -4780,22 +4780,17 @@ group_setup_dp_hash_table(struct group_dpif *group, size_t max_hash)
>
> /* Use Webster method to distribute hash values over buckets. */
> for (int hash = 0; hash < n_hash; hash++) {
> - double max_val = 0.0;
> - struct webster *winner;
> - for (i = 0; i < n_buckets; i++) {
> - if (webster[i].value > max_val) {
> - max_val = webster[i].value;
> + struct webster *winner = &webster[0];
> + for (i = 1; i < n_buckets; i++) {
> + if (webster[i].value > winner->value) {
> winner = &webster[i];
> }
> }
> -#pragma GCC diagnostic push
> -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
> /* winner is a reference to a webster[] element initialized above. */
> winner->divisor += 2;
> winner->value = (double) winner->bucket->weight / winner->divisor;
> group->hash_map[hash] = winner->bucket;
> winner->bucket->aux++;
> -#pragma GCC diagnostic pop
> }
Thank you, Ben, for your thorough checks. Yes, your approach is better and compiles w/o warnings.
Regards, Jan
More information about the dev
mailing list