Current-Users archive

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

Re: More amd64 drmkms radeon



Taylor R Campbell wrote:
>   Date: Thu, 14 Aug 2014 19:21:51 +0100 (BST)
>   From: Robert Swindells <rjs%fdy2.co.uk@localhost>
>
>   X fails to start though with:
>
>   [    64.826] (II) AIGLX: Loaded and initialized 
> /usr/X11R7/lib/modules/dri/r200_dri.so
>   [    64.826] (II) GLX: Initialized DRI2 GL provider for screen 0
>   [    64.848] (II) RADEON(0): Setting screen physical size to 480 x 270
>   [    66.187] Segmentation fault at address 0x0
>
>   I can try debugging this and/or send the logs.
>
>Can you get a stack trace with gdb?

Have done but see below.

>   The error is ENODEV (19) returned from the call to mmap(2) from bo_map()
>   in xsrc/external/mit/libdrm/dist/radeon/radeon_bo_gem.c.
>
>   The server is trying to allocate 16384 bytes for the cursor, the drm
>   ioctl just before the mmap() returns 0x100000000 as the address to use.
>
>   Adding some printfs to the kernel it doesn't look to be calling into
>   the drm code from the mmap() syscall.
>
>Probably needs to be changed to use drmMap instead of mmap,
>un{til,less} we sort out getting proper mmap for non-vnode files.

Switching to drmMap() in libdrm_radeon does get a bit further, the
cursor allocations seem to work, but the implementation of drmUnmap()
just calls munmap(2) which panics the kernel, there doesn't seem to be
a DRM_IOCTL_MUNMAP defined.

On i386 with the RV280, the calls to drmMap() fail with an error 19.

Robert Swindells



Home | Main Index | Thread Index | Old Index