On Fri, Feb 08, 2002 at 11:26:19PM +0100, Arnould Nazarian wrote: > > > BTW wether slave blocks are used or not is up to the device driver. Thats > > why rewriting the IDE device driver would help this problem. Slaveing could > > still be active for slower devices. > > > Now that is the most interesting remark I read for years about slave > blocks!! I thought that the mechanism was device driver independant.
it is mostly device independent, however the device driver must implement some functionality so it can work. The big problem with the slaveblock algorithm is that upon a device read request ALL available memory is searched sequentially to see whether the sector is already cached somewhere. If it is cached it is usually found pretty quickly - but if it is not you end up scanning 32 MB (fortunately SMSQ can't access more;) for every single sector to be read. It is still *very* surprising that this can take so long, after all 32MB can cache atmost 65536 sectors and scanning that much should not be so slow. Even if you scan it sequentially, a decent algorithm should not need more than 10 cycles for one compare on a 68040, that makes .016384s for one sector read - that would round up to 34/s per MB. The worst case I have seen are far worse. Bye Richard
