[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Documentation on minixfs and ext2fs



>is already well tested. It's also re-entrant, so unlike minixfs
>we could wave goodbye to 'busy-waiting' for disk transfers...

It was my understanding that the main reason MiNT does a busy-wait
for disk IO is that it must call the BIOS to make the actual disk
transfer, and the BIOS doesn't know how to put an app on a queue
and wait.  Now, I'm sure there are a hundred ways around this,
but I think if it was just a matter of making Minixfs re-entrant,
then it would be done already.

I think it should be possible to trap the BIOS call, maybe wait
a clock tick or two for the disk IO, and if we're sitting in a
BIOS call for longer than that, then use the timer tick to switch
tasks - and don't go back to the busy loop until an interrupt has
hit - that and proper locking by redirecting the BIOS calls and
we should be able to solve the problem without writing a real
driver.  It may also be faster to use that method for character
devices like serial ports instead of polling every so often.

Any comments, ideas, feedback?  I don't see why the timer tick
couldn't break us out of the busy wait and return to the code
once the interrupt has hit (and assume the busy loop that we
switch back into will handle the rest).  

I WANT non-blocking disk IO - BADLY.  And it would be nice to kill
any other polling too!

Thanks,
Evan