lkml.org 
[lkml]   [2015]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Upstream kernel fails to run on qemu-sparc64 due to commit 889fa31f0 (blk-mq: reduce unnecessary software queue looping)
On 04/17/2015 09:31 AM, Guenter Roeck wrote:
> 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.

Ah yes, now it makes sense. Smallest box I have is 8 CPUs, and generally
map bits_per_word is in the 5-6 range. So it ends up working out for my
case, ->map_size would be >= 1.

--
Jens Axboe



\
 
 \ /
  Last update: 2015-04-17 18:01    [W:0.042 / U:0.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site