Hi Jens,
On Fri, Apr 17, 2015 at 08:26:11AM -0600, Jens Axboe wrote:
Assuming that nr_ctx reflects the number of (online) CPUs, my guess is thatAs additional information:
+ * Set the map size to the number of mapped software queues.
+ * This is more accurate and more efficient than looping
+ * over all possibly mapped software queues.
+ */
+ map->map_size = hctx->nr_ctx / map->bits_per_word;
On my system, hctx->nr_ctx is 1, and map->bits_per_word is 8.
Thus map->map_size is set to 0, which doesn't make much sense.
The system comes up if I replace the above code with
map->map_size = DIV_ROUND_UP(hctx->nr_ctx, map->bits_per_word);
I have no idea if that is the correct fix, though.
Ugh, yes indeed, looks like the <= was lost from a previous patch. Now I
wonder why it I didn't see any hangs with this... Thanks for reporting, I'll
get a fix in today.
you may have a multiple of bits_per_word CPUs in your system.