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: RE: RE: RE: [Xen-devel] AGP problems with 2.0.5

To: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>
Subject: Re: RE: RE: RE: [Xen-devel] AGP problems with 2.0.5
From: Kurt Garloff <kurt@xxxxxxxxxx>
Date: Sun, 13 Mar 2005 22:29:32 +0100
Cc: Xen development list <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Sun, 13 Mar 2005 21:30:21 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <A95E2296287EAD4EB592B5DEEFCE0E9D1E3627@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Organization: SUSE/Novell
References: <A95E2296287EAD4EB592B5DEEFCE0E9D1E3627@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6i
Hi Ian,

On Sun, Mar 13, 2005 at 07:21:18PM -0000, Ian Pratt wrote:
> Some of the stuff in drm_vm looks pretty scary at first glance. It would
> be good to find out what code path its taking so we can concentrate on
> where to look.
> 
> Knowing if the remap_pfn_range is called and completes OK would be
> useful.

OK, netconsole proves useful after all.

[drm:drm_stub_open]
[drm:drm_open_helper] pid = 11664, minor = 0
[drm:drm_setup]
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 11664, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown]
[drm:radeon_do_cleanup_cp]
[drm:drm_stub_open]
[drm:drm_open_helper] pid = 11664, minor = 0
[drm:drm_setup]
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 11664, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown]
[drm:radeon_do_cleanup_cp]
[drm:drm_stub_open]
[drm:drm_open_helper] pid = 11664, minor = 0
[drm:drm_setup]
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x40086410, nr=0x10, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap] 8192 13 dce62000
[drm:drm_mmap] start = 0xb5d0f000, end = 0xb5d11000, offset = 0xdce62000
[drm:drm_vm_open] 0xb5d0f000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xb5d0f000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xb5d10000
[drm:drm_ioctl] pid=11664, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0xe0000000, size = 0x02000000, type = 0
[drm:drm_ioctl] pid=11664, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x80206433, nr=0x33, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x80206433, nr=0x33, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x80206433, nr=0x33, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x40046432, nr=0x32, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0xc0106434, nr=0x34, dev 0xe200, auth=1
[drm:drm_ioctl] pid=11664, cmd=0x40086436, nr=0x36, dev 0xe200, auth=1
[drm:drm_agp_bind] base = 0xd0000000 entry->bound = 0xd0000000
[drm:drm_ioctl] pid=11664, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00101000, type = 3
[drm:drm_mmap] start = 0xb5c0e000, end = 0xb5d0f000, offset = 0xd0000000
[drm:drm_mmap]    _DRM_REGISTERS: remap_pfn_range()

And here it reboots.

The last message is from this piece of code:
drm_vm.c:636 @ drm_mmap()

                DRM_DEBUG("   _DRM_REGISTERS: remap_pfn_range()\n");
                if (remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
                                     (VM_OFFSET(vma) + offset) >> PAGE_SHIFT,
                                     vma->vm_end - vma->vm_start,
                                     vma->vm_page_prot))
#endif
                                return -EAGAIN;
                DRM_DEBUG("   Type = %d; start = 0x%lx, end = 0x%lx,"
                          " offset = 0x%lx\n",
                          map->type,
                          vma->vm_start, vma->vm_end, VM_OFFSET(vma) +
offset);

The first DRM_DEBUG statement has been added by me.

> The code near the comment that says "It's AGP memory - find the real
> physical page to map" is worth a closer look too.

It never seems to be reached (I inserted another DRM_DEBUG before the
virt_to_page). Though it looks suspicious.

Regards,
-- 
Kurt Garloff                   <kurt@xxxxxxxxxx>             [Koeln, DE]
Physics:Plasma modeling <garloff@xxxxxxxxxxxxxxxxxxx> [TU Eindhoven, NL]
Linux: SUSE Labs (Director)    <garloff@xxxxxxx>            [Novell Inc]

Attachment: pgpVqncgNFxdN.pgp
Description: PGP signature