[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <4834323E.1060608@shaw.ca>
Date: Wed, 21 May 2008 08:31:26 -0600
From: Robert Hancock <hancockr@...w.ca>
To: Arjan van de Ven <arjan@...radead.org>
Cc: linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [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..
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists