blk_mq_update_queue_map makes an (invalid?) assumption about cpu ordering

From: Jeff Moyer
Date: Tue Oct 15 2013 - 13:52:58 EST


Hi, Jens,

blk_mq_update_queue_map does this:

for_each_possible_cpu(i) {
if (!cpu_online(i)) {
map[i] = 0;
continue;
}

...
first_sibling = get_first_sibling(i);
if (first_sibling == i) {
map[i] = cpu_to_queue_index(nr_uniq_cpus, nr_queues,
queue);
queue++;
} else
map[i] = map[first_sibling];

This assumes that the first_sibling is listed before any other siblings,
which I don't believe is true. I don't think you get any guaranteed
ordering in that cpu_possible_mask.

... or did I miss something?

Cheers,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/