Jens Axboe wrote:
On Mon, Nov 27 2006, Mike Christie wrote:
Mike Christie wrote:
Boaz Harrosh wrote:
Playing with some tests which I admit are not 100% orthodox I have
stumbled upon a bug that raises a serious question:
In the call to scsi_execute_async() in the use_sg case, must the
scatterlist* (pointed to by buffer) map a buffer that's contiguous in
virtual memory or is it allowed to map disjoint segments of memory?
I thought they were continguous. I think James has said before that they
can be disjoint. When we converted sg it did not look like sg or st
supported disjoint. The main non dio path used a buffer from
get_free_pages so I thought that would always be contiguous. The dio
path then always set the first sg offset, but the rest it set to zero.
And the len is set to page size for the middle entries too.
But for the non DIO st path we can end up with some middle sg entires
that are not a full page so that code in scsi_execute_async is broken
for that.
If something doesn't work with non-contig sg entries, that would be a
bug. If the question is regarding holes in the sg list, that is probably
unchartered territory and I would not regard that as supported.
Jens, I'm not sure I understand the terms you used. Can you please
define more clearly what you mean by "non-contig sg entries" vs.
"holes in the sg list"?
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html