From owner-freebsd-emulation@FreeBSD.ORG Tue May 19 18:12:09 2009 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6ED61065688; Tue, 19 May 2009 18:12:09 +0000 (UTC) (envelope-from tijl@ulyssis.org) Received: from mailrelay006.isp.belgacom.be (mailrelay006.isp.belgacom.be [195.238.6.172]) by mx1.freebsd.org (Postfix) with ESMTP id 2DEA98FC23; Tue, 19 May 2009 18:12:08 +0000 (UTC) (envelope-from tijl@ulyssis.org) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhIFAJuSEkpR9TXd/2dsb2JhbACBT85fhAIF Received: from 221.53-245-81.adsl-dyn.isp.belgacom.be (HELO kalimero.kotnet.org) ([81.245.53.221]) by relay.skynet.be with ESMTP; 19 May 2009 20:12:07 +0200 Received: from kalimero.kotnet.org (kalimero.kotnet.org [127.0.0.1]) by kalimero.kotnet.org (8.14.3/8.14.3) with ESMTP id n4JIC6iP001849; Tue, 19 May 2009 20:12:06 +0200 (CEST) (envelope-from tijl@ulyssis.org) From: Tijl Coosemans To: freebsd-emulation@freebsd.org, Yamagi Burmeister Date: Tue, 19 May 2009 20:12:05 +0200 User-Agent: KMail/1.9.10 References: <92596693@bb.ipt.ru> <20090515145252.GA69488@yamagi.org> <20090519165039.GA12505@yamagi.org> In-Reply-To: <20090519165039.GA12505@yamagi.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200905192012.06401.tijl@ulyssis.org> Cc: Robert Noland Subject: Re: [new port] graphics/linux-dri74 X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 18:12:10 -0000 On Tuesday 19 May 2009 18:50:39 Yamagi Burmeister wrote: > Okay, I investigated further. First I tried a FreeBSD/i386 version of > ioQuake3 on a FreeBSD/amd64 host. After some minor and unrelated > problems it worked. > > After that I tried to debug the linux-dri74. Reading the source and > doing a lot test runs I realized, that there are in fact two > problems. Every ten starts or so the userland side of drm crashes: > > yamagi@saya:ttyp3 ~: /usr/compat/linux/usr/bin/glxinfo > name of display: :0.0 > libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0) > libGL: OpenDriver: trying /usr/lib/dri/tls/r300_dri.so > libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so > drmOpenDevice: node name is /dev/dri/card0 > drmOpenDevice: open result is 4, (OK) > DRM_IOCTL_VERSION: Bad address > Segmentation fault (core dumped) > > The other times the userland side of drm is able to open the > drm-device bit is unable to initalize it. The error message is > somewhat missleading: > > yamagi@saya:ttyp3 ~: /usr/compat/linux/usr/bin/glxinfo > name of display: :0.0 > libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0) > libGL: OpenDriver: trying /usr/lib/dri/tls/r300_dri.so > libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so > drmOpenDevice: node name is /dev/dri/card0 > drmOpenDevice: open result is 4, (OK) > drmOpenByBusid: Searching for BusID pci:0000:01:00.0 > drmOpenDevice: node name is /dev/dri/card0 > drmOpenDevice: open result is 4, (OK) > drmOpenByBusid: drmOpenMinor returns 4 > drmOpenByBusid: drmGetBusid reports (null) > drmOpenDevice: node name is /dev/dri/card1 > drmOpenByBusid: drmOpenMinor returns -1 > drmOpenDevice: node name is /dev/dri/card2 > drmOpenByBusid: drmOpenMinor returns -1 > drmOpenDevice: node name is /dev/dri/card3 > drmOpenByBusid: drmOpenMinor returns -1 > drmOpenDevice: node name is /dev/dri/card4 > drmOpenByBusid: drmOpenMinor returns -1 > [..] > drmOpenDevice: node name is /dev/dri/card14 > drmOpenByBusid: drmOpenMinor returns -1 > libGL error: drmOpenOnce failed (Operation not permitted) > libGL error: reverting to software direct rendering > libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so > libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so > display: :0 screen: 0 > direct rendering: Yes > > So I added debug printf() into the code. I stepped through it. After > some hours of intesive debugging im 99% sure, that both of the above > failures of linux-drm74 are originating at the kernel side. It's most > likely NOT a problem of the userland side and therefor not a problem > of the port. > > I'll investigate further at the kernel side, but that'll need some > time. So, while it's the fault linux-drm74, what about a little > warning message in the install message of the port? Just to be sure, > that other users experiencing the same problem know, that it is not a > bug of linux-dr74. I noticed you use the r300 driver so maybe this patch helps: http://people.freebsd.org/~rnoland/drm_radeon-copyin-fix-try2.patch Robert Noland (CCed) probably knows more about this though. http://lists.freebsd.org/pipermail/freebsd-emulation/2009-May/005995.html