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