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: Attempt to start X-Server at Xen 3.5 Dom0 ( 2.6.31)

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: Re: [Xen-devel] Re: Attempt to start X-Server at Xen 3.5 Dom0 ( 2.6.31) on top of Ubuntu 9.04 Server
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Thu, 24 Sep 2009 10:52:02 -0700
Cc: Boris Derzhavets <bderzhavets@xxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 24 Sep 2009 10:52:28 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20090924164839.GA608@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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <838120.79569.qm@xxxxxxxxxxxxxxxxxxxxxxxxxxx> <454367.84289.qm@xxxxxxxxxxxxxxxxxxxxxxxxxxx> <20090924164839.GA608@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090814 Fedora/3.0-2.6.b3.fc11 Lightning/1.0pre Thunderbird/3.0b3
On 09/24/09 09:48, Konrad Rzeszutek Wilk wrote:
> On Wed, Sep 23, 2009 at 10:54:09PM -0700, Boris Derzhavets wrote:
>   
>> Sorry , there is difference in dmesg reports under xen and as vanilla.
>>
>> dmesg under xen:-
>>
>> [  243.858191] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [  243.858263] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [  244.132051] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [  244.132115] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [  244.132181] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [  244.157265] [drm] Setting GART location based on new memory map
>> [  244.190885] [drm] Loading RV730/RV740 PFP Microcode
>> [  244.190911] [drm] Loading RV730/RV740 CP Microcode
>> [  244.205974] [drm] Resetting GPU
>> ->    [  244.310103] [drm] writeback test failed
>> [  251.220092] [drm] Resetting GPU
>>
>> dmesg 2.6.31 vanilla:-
>>
>> [   36.941430] [drm] Initialized drm 1.1.0 20060810
>> [   36.988225] pci 0000:01:00.0: setting latency timer to 64
>> [   36.988341] [drm] Initialized radeon 1.31.0 20080528 for 0000:01:00.0 on 
>> minor 0
>> [   36.989222] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [   37.210900] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [   37.210940] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [   37.210976] mtrr: type mismatch for d0000000,10000000 old: write-back 
>> new: write-combining
>> [   37.232744] [drm] Setting GART location based on new memory map
>> [   37.248205] [drm] Loading RV730/RV740 PFP Microcode
>> [   37.248227] [drm] Loading RV730/RV740 CP Microcode
>> [   37.263281] [drm] Resetting GPU
>> -> [   37.263336] [drm] writeback test succeeded in 1 usecs
>>     
> I think I know why this is not working.
>
> The DRM and its AGP modules call virt_to_gart and gart_to_virt, which is 
> defined as:
>
> #define virt_to_gart(x) (phys_to_gart(virt_to_phys(x)))
> #define gart_to_virt(x) (phys_to_virt(gart_to_phys(x)))
> and phys_to_gart and gart_to_phys are:
> #define phys_to_gart(x) swiotlb_phys_to_bus(NULL, (x))
> #define gart_to_phys(x) swiotlb_bus_to_phys(NULL, (x))
>
> The swiotlb_* calls do return the wrong information when the
> kernel is running under Xen.
>   

Ah, yes.  They used to be the right thing to call.  I guess we can put
in something hacky to get things going for now: (xen_pv_domain() ?
xen_swiotlb_bus_to_phys(NULL, (x) : (x)).

But it might be time to bite the bullet:

In this current merge window these functions are removed altogether, in
favour of making the dri drivers use the dma-mapping api properly to do
all those conversions.  AFAIK the only driver so converted is the Intel
graphics one, and then only when the Intel IOMMU is configured in. 
However, in discussions with the the dri folks I had no objection to
making it unconditional and adding the changes to other drivers (so long
as we can test them, since normal hardware configs won't generally have
any IOMMU for typical gfx hardware).

    J

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