Re: Upstream kernel fails to run on qemu-sparc64 due to commit 889fa31f0 (blk-mq: reduce unnecessary software queue looping)

Guenter Roeck
2015-04-17T15:31:45Z

Hi Jens,

On Fri, Apr 17, 2015 at 08:26:11AM -0600, Jens Axboe wrote:
> >>
> >As 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.
>
Assuming that nr_ctx reflects the number of (online) CPUs, my guess is that
you may have a multiple of bits_per_word CPUs in your system.

Guenter