Improve random distribution for an hmap with a small number of nodes with the expense of the increased cpu cost. It would be a fair trade-off because the situation is rather common for bond, which is currently the only consumer of this API in tree.
Signed-off-by: YAMAMOTO Takashi <yamam...@valinux.co.jp> --- lib/hmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/hmap.c b/lib/hmap.c index ec1de67..542d8b5 100644 --- a/lib/hmap.c +++ b/lib/hmap.c @@ -214,8 +214,8 @@ hmap_random_node(const struct hmap *hmap) size_t n, i; /* Choose a random non-empty bucket. */ - for (i = random_uint32(); ; i++) { - bucket = hmap->buckets[i & hmap->mask]; + for (;;) { + bucket = hmap->buckets[random_uint32() & hmap->mask]; if (bucket) { break; } -- 1.8.3.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev