From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: Re: Attempt to start X-Server at Xen 3.5 Dom0 ( 2.6.31) on top of Ubuntu 9.04 Server Date: Thu, 24 Sep 2009 12:48:39 -0400 Message-ID: <20090924164839.GA608@phenom.dumpdata.com> References: <838120.79569.qm@web56105.mail.re3.yahoo.com> <454367.84289.qm@web56101.mail.re3.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <454367.84289.qm@web56101.mail.re3.yahoo.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Boris Derzhavets Cc: Jeremy Fitzhardinge , Xen-devel List-Id: xen-devel@lists.xenproject.org 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. >=20 > dmesg under xen:- >=20 > [=A0 243.858191] mtrr: type mismatch for d0000000,10000000 old: write-b= ack new: write-combining > [=A0 243.858263] mtrr: type mismatch for d0000000,10000000 old: write-b= ack new: write-combining > [=A0 244.132051] mtrr: type mismatch for d0000000,10000000 old: write-b= ack new: write-combining > [=A0 244.132115] mtrr: type mismatch for d0000000,10000000 old: write-b= ack new: write-combining > [=A0 244.132181] mtrr: type mismatch for d0000000,10000000 old: write-b= ack new: write-combining > [=A0 244.157265] [drm] Setting GART location based on new memory map > [=A0 244.190885] [drm] Loading RV730/RV740 PFP Microcode > [=A0 244.190911] [drm] Loading RV730/RV740 CP Microcode > [=A0 244.205974] [drm] Resetting GPU > ->=A0=A0=A0 [=A0 244.310103] [drm] writeback test failed > [=A0 251.220092] [drm] Resetting GPU >=20 > dmesg 2.6.31 vanilla:- >=20 > [=A0=A0 36.941430] [drm] Initialized drm 1.1.0 20060810 > [=A0=A0 36.988225] pci 0000:01:00.0: setting latency timer to 64 > [=A0=A0 36.988341] [drm] Initialized radeon 1.31.0 20080528 for 0000:01= :00.0 on minor 0 > [=A0=A0 36.989222] mtrr: type mismatch for d0000000,10000000 old: write= -back new: write-combining > [=A0=A0 37.210900] mtrr: type mismatch for d0000000,10000000 old: write= -back new: write-combining > [=A0=A0 37.210940] mtrr: type mismatch for d0000000,10000000 old: write= -back new: write-combining > [=A0=A0 37.210976] mtrr: type mismatch for d0000000,10000000 old: write= -back new: write-combining > [=A0=A0 37.232744] [drm] Setting GART location based on new memory map > [=A0=A0 37.248205] [drm] Loading RV730/RV740 PFP Microcode > [=A0=A0 37.248227] [drm] Loading RV730/RV740 CP Microcode > [=A0=A0 37.263281] [drm] Resetting GPU > -> [=A0=A0 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.