[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE: RE: RE: [Xen-devel] AGP problems with 2.0.5



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: pgpCrJHQWZA12.pgp
Description: PGP signature


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.