WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: [Xen-changelog] Work aroudn swiotlb issue where a re

To: Muli Ben-Yehuda <mulix@xxxxxxxxx>
Subject: Re: [Xen-devel] Re: [Xen-changelog] Work aroudn swiotlb issue where a read-only host buffer is
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Sun, 18 Dec 2005 19:29:28 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Sun, 18 Dec 2005 19:26:17 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20051217143537.GQ14690@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <E1EnbAV-0001gb-92@xxxxxxxxxxxxxxxxxxxxx> <20051217143537.GQ14690@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

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

<Prev in Thread] Current Thread [Next in Thread>