Messages in this thread | | | Date | Tue, 14 May 2002 17:47:21 +0100 | From | Neil Conway <> | Subject | Re: [PATCH] 2.5.15 IDE 61 |
| |
Jens Axboe wrote: > On Tue, May 14 2002, Neil Conway wrote: > > that's all the actual spinlock buys you. It does not IIUC mean that you > > can't get a call to request_fn of one queue while the other queue has > > lots of requests in it (which are potentially being serviced by DMA). > > Bingo, this is exactly right and makes the point a hell of a lot better > than I did in my previous mail. Shared locks will only buy you that > noone fiddles with one list while the other is busy (ie nothing for us).
Cool, thanks ;-) Now watch me blow all my cred with this post:
> To really serialize operations the queue _must_ be shared with whoever > requires serialiation.
Why will this help? The hardware can still be doing DMA on hda while the queue's request_fn is called quite legitimately for a hdb request - and the IDE code MUST impose the serialization here to avoid hitting the cable with commands destined for hdb. (For example, by waiting for !channel->busy.)
> If not, the problem will have to be solved at the IDE level, not the > block level. And that has not looked pretty in the past.
I just can't see a way for the block level to remove the need for the busy flag. I _think_ Alan just agreed with me. I'm not sure but I get the impression that you are saying the IDE code doesn't need to do this serialization...
I'm certainly learning, thanks guys. Neil - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |