lkml.org 
[lkml]   [2008]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] ata: fix sleep-while-holding-spinlock in sata_nv
rjan van de Ven wrote:
>> I'm not certain this is safe to do it quite this way. It would be
>> better to keep that spinlock held so that no operations could be in
>> progress on either port while these operations are happening.
>
> blk_bounce_limit can sleep. that's just a fact of life ;(

Now it can, for no reason. Under the conditions it was used before, it
never could.

>
>> It would be better to fix the regression from
>> 419c434c35614609fd0c79d335c134bf4b88b30b in block/blk_settings.c that
>> resulted in the blk_queue_bounce_limit allocation wrongly allocating
>> emergency ISA pages in the first place as a 32-bit DMA mask does not
>> need them.
>
> the condition under which it sleeps might be slightly buggy on your
> exact x86 machine... but that doesn't mean that that is guaranteed to
> be so forever going forward.... it's still a sleeping function.

More than slightly buggy, I think.. It seems like it is going to be
bouncing block layer accesses to devices with 32-bit DMA masks through
the 16MB ZONE_DMA. If that's what's actually going on, I'm surprised
there haven't been more regression reports. The fact that the function
now sleeps when it didn't before is the least of the problems here..


\
 
 \ /
  Last update: 2008-05-21 16:35    [W:0.044 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site