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

Re: [Xen-devel] Re: [Xen-changelog] Work aroudn swiotlb issue where a read-only host buffer is




On 17 Dec 2005, at 14:35, Muli Ben-Yehuda wrote:

On Sat, Dec 17, 2005 at 12:28:06PM +0000, Xen patchbot -unstable wrote:
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID b92ca87a2403d465e4d1087f8a7a43223b21bed8
# Parent  1509521c824efbae25bb953a2e2a49ab3f7fe7f4
Work aroudn swiotlb issue where a read-only host buffer is
mapped for DMA_BIDIRECTIONAL streaming access by certain
low-level drivers. This causes an unnecessary copy to the
host buffer that previously caused a fatal kernel page fault.

The fix (calling __copy_to_user on a kernelspace buffer) seems rather
awkward, and will probably make tools such as sparse faint in
horror. Wouldn't it make more sense to have the buffer mapped
read/write in the first place and/or fix the LLDD to not do
DMA_BIDIRECTIONAL? (I don't know which of these is correct; I suspect
the second?)

Option (a) is not a great fit with our blkdev device model, where a frontend only grants the backend read access to a buffer that is to be written to disc. In this case the backend cannot map the buffer for read/write access (and I'd hate to have to change the blkif split-driver protocol to work around a Linux driver oddity).

Option (b) is the 'morally correct' fix, but I see DMA_BIDIRECTIONAL is used in a large number of scsi drivers, all of which probably ought to be fixed to specify the correct single direction.

The current fix is a bit skanky, but it is commented and has basically zero overhead. My main fear would be that it might mask genuine kernel bugs, but I think that's unlikely.

 -- Keir


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.