Messages in this thread | | | Date | Fri, 17 Apr 2015 08:31:36 -0700 | From | Guenter Roeck <> | Subject | Re: Upstream kernel fails to run on qemu-sparc64 due to commit 889fa31f0 (blk-mq: reduce unnecessary software queue looping) |
| |
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
| |