On Mon, Nov 10 2008, Linus Torvalds wrote: > > > On Mon, 10 Nov 2008, Jens Axboe wrote: > > > > > > Or we could just change the blk-tag.c logic to stop of > > > find_first_zero_bit() returns >= some_value instead of starting at an > > > offset? You don't need any extra locking for that. > > > > Something like the below. > > No, there were two reasons for doing it the way I did it, and this shows > both. One trivial, one subtle. > > > + if (!rq_is_sync(rq)) > > + max_depth = 3 * max_depth / 4; > > The trivial one here is that you round down. Imagine what happens if > "max_depth" was 1. > > The subtler one was that the 'use starting offset' means that async and > sync can _share_ the tagspace, and while you limit async ones to a maximum > outstanding number, you really cut down on them only when sync ones really > have filled everything up. > > In contrast, limiting like the above means that it's much easier to be in > the situation where you still have tags to use, but you've used them all > for reads, and you refuse to start a single write. Good point. I'll do a counting solution for this instead. > Anyway, I'll do the revert, since -rc4 is too late to discuss these > issues. I think we can easily re-do things when everybody is ok with the > code. OK, we'll get it into shape for 2.6.29 instead. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html