Unrelated ATAPI fodder :-)
> current code asks for 16 sectors, but we do not do the request copy
> anymore, and this mean for every 4k of paging we are soliciting for 8k.
The (now) missing copy is unrelated.
> We only read out 4k thus the device has the the next 4k we may be wanting
> ready. Look at it as a dirty prefetch, but eventally the drive is going
> to want to go south, thus [lost interrupt]
Even if the drive is programmed for 16 sectors in multi mode, it still
must honor lower transfer sizes. The fix I did was not to limit this,
but rather to only setup transfers for the amount of sectors in the
first chunk. This is indeed necessary now that we do not have a copy of
the request to fool around with.
> Basically as the Block maintainer, you pointed out I am restricted to 4k
> chunking in PIO. You decided, in the interest of the block glue layer
> into the driver, to force early end request per Linus's requirements to
> return back every 4k completed to block regardless of the size of the
> total data requested.
Correct. The solution I did (which was one of the two I suggested) is
still the cleanest, IMHO.
> For the above two condition to be properly satisfied, I have to adjust
> and apply one driver policy make the driver behave and give the desired
> results. We should note this will conform with future IDEMA proposals
> being submitted to the T committees.
I still don't see a description of why this would cause a lost
interrupt. What is the flaw in my theory and/or code?
-- Jens Axboe- 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/