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

[Xen-devel] Re: [Patch RFC] ttm: nouveau accelerated on Xen pv-ops kerne

To: dri-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Re: [Patch RFC] ttm: nouveau accelerated on Xen pv-ops kernel
From: Arvind R <arvino55@xxxxxxxxx>
Date: Fri, 12 Mar 2010 18:15:57 +0530
Cc: nouveau@xxxxxxxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 12 Mar 2010 04:46:41 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=wWAR4Z5DLrziADHNOI3Z3RIolOQx2NSOGoJRidbW1hs=; b=CRGBunjlmmGOm1iBefMq9701lkKyo0rW4KTQFpacAE9f1B7UYTV3zyyXuIT0xTN+9Z ZZrxzYk7bLA0ST9KbUWZVrr9xcNfeNtHXcptrjfSYdN03cIAmmQbCXSVtfVhYsVtqlAb MXDWjc9WJSqufMCewkcKKAokQhOL9VcZ/1ehY=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=mD5G6sdP5LCDzWBevkUH+Zvr7LFwRf/3dXBshSDArJT0rjsmkr7QGWgdcJNtuA9fvB DbKA2EKyg/2fiHp8XKdrAjK9gbSSLqQ/5pRP5WibAeGP/qkLulY2Eeyn6V4rnSjLYgS5 8UdfTSjLFxUyXz7ZDlAnR/CqrVvY6+tS1SHGA=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100311130258.49dc04bd@farn>
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: <d799c4761003100521h663c82eepda85f3f0309828c2@xxxxxxxxxxxxxx> <20100311130258.49dc04bd@farn>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, Mar 11, 2010 at 4:32 PM, Pekka Paalanen <pq@xxxxxx> wrote:
> I'm adding dri-devel@ to CC, since this suggested patch touches
> TTM code, and none of the Nouveau code. TTM patches go via
> dri-devel@.
>
> Thanks.
>
>
> On Wed, 10 Mar 2010 18:51:21 +0530
> Arvind R <arvino55@xxxxxxxxx> wrote:
>
>> Hi,
>> Following is a simple patch that is needed in nouveau to get
>> accelerated X on a Xen dom0 pv_ops kernel. The kernel is jeremy's
>> 2.6.31.6 as of 20100222. The whole gpu tree of nouveau (which is
>> almost the mainline merge), was substituted into the kernel-tree.
>> All components of X (mesa, Xorg-server-7.5, xf86-nouveau, libdrm)
>> used of the same day.
>>
>> Patch:
>> diff -Naur nouveau-kernel.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c
>> nouveau-kernel.new/drivers/gpu/drm/ttm/ttm_bo_vm.c
>> --- nouveau-kernel.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c 2010-01-27
>> 10:19:28.000000000 +0530
>> +++ nouveau-kernel.new/drivers/gpu/drm/ttm/ttm_bo_vm.c  2010-03-10
>> 17:28:59.000000000 +0530
>> @@ -271,7 +271,10 @@
>>          */
>>
>>         vma->vm_private_data = bo;
>> -       vma->vm_flags |= VM_RESERVED | VM_IO | VM_MIXEDMAP |
>> VM_DONTEXPAND;
>> +       vma->vm_flags |= VM_RESERVED | VM_MIXEDMAP |
>> VM_DONTEXPAND;
>> +       if (!((bo->mem.placement & TTM_PL_MASK_MEM) &
>> TTM_PL_FLAG_TT))
>> +               vma->vm_flags |= VM_IO;
>> +       vma->vm_page_prot = vma_get_vm_prot(vma->vm_flags);
>>         return 0;
>>  out_unref:
>>         ttm_bo_unref(&bo);
>>
sorry for the typo and other procedural errors.
the last added line should be
+    vma->vm_page_prot = vm_get_page_prot(vma->vm_flags)

>> This patch is necessary because, in Xen, PFN of a page is
>> virtualised. So physical addresses
>> for DMA programming needs to use the MFN. Xen transparently does
>> the correct translation
>> using the _PAGE_IOMEM prot-bit in the PTE. If the bit is set,
>> then Xen assumes that the backing
>> memory is in the IOMEM space, and PFN equals MFN. If not set,
>> page_to_pfn() returns MFN.
>>
>> The patch enables the ttm_bo_vm_fault() handler to behave
>> correctly under Xen, and has no
>> side-effects on normal (not under Xen) operations. The use of
>> TTM_PL_FLAG_TT in the
>> check assumes that all other placements are backed by device
>> memory or IO. If there are
>> any other placements that use system memory, that flag has to be
>> OR'ed into the check.
>>
>> The above patch has no implications on a normal kernel or a Xen
>> pv_ops kernel booted without
>> the Xen hypervisor. My testing is on a debian-lenny environment
>> on a Core2 processor with
>> nVidia GeForce 9400 GT.
>
Efficacy of patch:
successful flightgear run on dom0 AND bareboot!

Arvind R.

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

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