From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arvind R Subject: Re: Nouveau on dom0 Date: Fri, 26 Feb 2010 21:04:33 +0530 Message-ID: References: <20100225125552.GC9040@phenom.dumpdata.com> <20100225174411.GA13270@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: In-Reply-To: <20100225174411.GA13270@phenom.dumpdata.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: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Thu, Feb 25, 2010 at 11:14 PM, Konrad Rzeszutek Wilk wrote: > On Thu, Feb 25, 2010 at 09:01:48AM -0800, Arvind R wrote: >> On Thu, Feb 25, 2010 at 6:25 PM, Konrad Rzeszutek Wilk >> wrote: >> > On Thu, Feb 25, 2010 at 02:16:07PM +0530, Arvind R wrote: >> >> Hi all, >> >> I merged the drm-tree from 2.6.33-rc8 into jeremy's 2.6.31.6 master and >> ======= snip ======= >> > is not. Would it be possible to trace down who allocates that *chan? You >> > say it is 'PRAMIN' - is that allocated via pci_alloc_* call? ======= snip ======= >> So, there must be a mmap call somewhere to map the area to user-space >> for that problem write to work on non-Xen boots. Will try track down some more >> and post. With mmaps and PCIGARTs - it will be some hunt! ======= snip ======= > to the drm_radeon driver which used it as a ring buffer. Took a bit of > hoping around to find who allocated it in the first place. > After a lot of reboots and log viewing: The pushbuf (FIFO/RING) is the only means of programming the card DMA activity. It is exposed to user-space by mmap of the drm_device (PCI) handle with different offsets for each channel. Parameters are associated to the DMA command using ioctls to bind channels/sub-channels/contexts. This mmap is in the libdrm2 library. Libdrm channel/accelerator initialization and setup chores and the DDX driver (xf86-video-nouveau) more-or-less acts thro' libdrm. My suspicion is that Xen has some problems with mmap of PCI(E) device memory. How is iomem handled in a mmap? As of now, accelerator on Xen stops right at the initialisation stage - when libdrm tries to set up the accelerator-engine in the course of ScreenInit. And to do that, it cannot write the command to setup the basic 2D engine. Suggestions?