Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Feb 2016 14:05:53 -0400
From:      payments <payments@thistleremovals.co.uk>
To:        <freebsd-x11@freebsd.org>
Subject:   Unpaid Invoice #350
Message-ID:  <87795262.4908917179187135.2FF38F97B4C0.59145062@freebsd.org>

next in thread | raw e-mail | index | archive | help
Please see attached letter and a copy of the original invoice.
From owner-freebsd-x11@freebsd.org  Fri Feb 19 21:45:49 2016
Return-Path: <owner-freebsd-x11@freebsd.org>
Delivered-To: freebsd-x11@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E8E6AAAE753
 for <freebsd-x11@mailman.ysv.freebsd.org>;
 Fri, 19 Feb 2016 21:45:49 +0000 (UTC) (envelope-from r.c.g@gmx.de)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19])
 (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-1" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 61EEF1454;
 Fri, 19 Feb 2016 21:45:48 +0000 (UTC) (envelope-from r.c.g@gmx.de)
Received: from [10.0.0.230] ([37.201.7.125]) by mail.gmx.com (mrgmx001) with
 ESMTPSA (Nemesis) id 0Md3Eg-1aEo3M38DK-00IEf9; Fri, 19 Feb 2016 22:45:46
 +0100
Subject: Re: Guide to contribute to kernel video drivers
To: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= <dumbbell@FreeBSD.org>,
 "freebsd-x11@freebsd.org" <freebsd-x11@FreeBSD.org>
References: <56C708E9.8050203@FreeBSD.org>
From: Ruediger Gad <r.c.g@gmx.de>
Message-ID: <56C78D56.5090404@gmx.de>
Date: Fri, 19 Feb 2016 22:47:02 +0100
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101
 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <56C708E9.8050203@FreeBSD.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:5X61s1OpWUW65z5tEESfhuHk10qBbSr6l/WvHluEZnm0E5yo/VI
 3AzmzGKFExisStn1TcCxImw/KZ/1PI86VUK2iK22yHsHgcodhVZK5m/x/L1Gawgb4q3lkCX
 ZtqmBSrW1Ca+hC5QFvkPqxeeueUxwO9P2Wvs8bKoUtW2NfXyXxGzVnX8C7iPbbisEDvbcJH
 GSzfr4HX/hAvnqOLDFOPw==
X-UI-Out-Filterresults: notjunk:1;V01:K0:vRS3asnz5L4=:IyYYgJkI0Ymfmpir0pOXgp
 wgDFUQkkYXhkvawmqimiBVNwZSsNGssXi6D8cpMa6QzS/RanLB+XB+2Y/EAfNlLuspH5u5rsh
 pa0CF6ytbItQVX27loMfHEoZ/ySzqvESWYtNf4BmOfPyQCc6mhZuc3MqP/S0v85zxBSyFeKrQ
 1zOhqU57y5MaZhlrcV45wpN9ILsQakte4shZL5izywdSCXdAhOIOU5+vY1YvgWJAc624UPEz/
 ezIOyknUd3PQiMyLj2l3k6v1X/yGWNiLRzboyL88v0DycPqOwiwaGpPbQMXk3gIWckW3dN27i
 LQT5IT5yRk12AO+IFP45A0M07Eqyyc6PKFWbmW15PPfHfbOzTZUE8YefxzY6lXmASJ0ix8tyS
 JnZzc4oNLB4oUUCi8i5iu9IrYPwvEydNQirft61Oj5NRa+TyaHU80ROIjg4vEi2COJqoulJow
 3Hh/yq8zw83vmiIk73rocFrqmI97eBNhwR/twhPzdgyNO05CaBd6DEfrTaUApVSpxEz4VZytT
 IagANxlziXujdQeXAi6bLRm27Jq4S2nrZen2zQ3SyiQSTyWxZfCt3XEMHDSs2dkJGyzF5RXVe
 A+nocj5AiPjTX5Ru7mfBTWlbVlGYdZnLj3CJyBjmRCjxMGKtvZczITdtrkr40ghmDUoQreZfz
 wey5d2isY1r60Kn7GEh5N/q3au1LFSbTqoXUrwGfuOOIjEB+113UZsm60egCCxUNVuKR4Y8Ko
 avDWrRW5YfKsBj+vwHJQQDbwxzspRQwLHG8pFzgD9D5IcmnrQcmtBit7QILJYGOUogj+DKcL/
 wfSYPFP
X-BeenThere: freebsd-x11@freebsd.org
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: X11 on FreeBSD -- maintaining and support <freebsd-x11.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-x11>,
 <mailto:freebsd-x11-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-x11/>;
List-Post: <mailto:freebsd-x11@freebsd.org>
List-Help: <mailto:freebsd-x11-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-x11>,
 <mailto:freebsd-x11-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Feb 2016 21:45:50 -0000

Hi Jean-Sébastien,

huge thanks for the guide! :)
So far, I just used a rather blunt approach for my testing and I think 
your guide will help me a lot for improving my workflow.



BR,

Ruediger


PS:
I also appreciate the very welcoming attitude I see here in the list.


On 02/19/2016 13:22, Jean-Sébastien Pédron wrote:
> Hi!
>
> As promised a (too) long time ago, here are some instructions to get you
> started with kernel video drivers.
>
> First, don't be afraid by the kernel. In the kernel, you have to live
> with some constraints and debugging is more challenging, but it's not an
> order of magnitude harder than userland. Moreover, we are porting
> existing working code.
>
> == Requirements ==
>
> o  You need to run CURRENT on the test computer. I recommend you work
>     from another computer. You only need to copy the built kernel to the
>     test computer.
>
> o  You need to setup kernel core dumps on the test computer. This is
>     step #1 here:
>
> https://wiki.freebsd.org/Graphics/Update%20i915%20GPU%20driver%20to%20Linux%203.8#Testing_Instructions_.2F_How_To
>
>     To test core dumps work:
>     sysctl debug.kdb.panic=1
>
> o  You need a clone of Linux. I use the following Git remotes:
>     git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>     git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
>
>     The second one is useful to get the patch releases, such as
>     "v3.8.13". The former only provides "v3.8".
>
> o  You need a clone of FreeBSD. You can fork this repository:
>     https://github.com/freebsd/freebsd-base-graphics
>
>     I recommend you add this one as a second remote (in addition to your
>     fork), as well as the FreeBSD official Git mirror:
>     https://github.com/freebsd/freebsd.git
>
> == Source code locations ==
>
> In Linux, DRM is located in three places:
>    drivers/gpu/drm
>    include/drm
>    include/uapi/drm
>
> In FreeBSD, DRM is located in sys/dev/drm2, with the Makefiles in
> sys/modules/drm2.
>
> == Targets ==
>
> During the discussion, some wanted to work on Linux 3.9, some on Linux
> 4.3/4.4.
>
> That said, I believe we should start by moving to linuxkpi before
> anything. It would consist of modifying DRM to use sys/compat/linuxkpi
> instead of its own drm_os_freebsd.[ch] files. This would help a *lot*
> next updates.
>
> == Workflow ==
>
> The workflow was discussed in previous threads:
> https://lists.freebsd.org/pipermail/freebsd-x11/2015-December/017056.html
>
> The conslusion is here:
> https://lists.freebsd.org/pipermail/freebsd-x11/2016-January/017109.html
>
> The file-by-file workflow, which was more popular in the discussion, was
> explained in the link above.
>
> As for the branches, we are going to use drm-next-$target (eg.
> drm-next-3.9). Please send pull requests to these branches. At least in
> freebsd-base-graphics, "master" will remain the same code as
> Subversion's HEAD so we have a point of comparison.
>
> Let's take drm-next-3.9 as an example. We want to update the entire DRM
> to Linux 3.9: DRM core (the device-independent code), the i915 driver
> and the Radeon driver.
>
> As we are testing the file-by-file approach, we need to coordinate who
> does what. And before the task is finished, the kernel won't compile
> (that's the risk with the file-by-file approach).
>
> I would like to record all the contributors on the wiki or on GitHub,
> I'm not sure yet. Maybe it should take the form of issues on GitHub (ie.
> one issue per file to update and an assignee). The issue even let us
> discuss specific details about the file.
>
> DRM core should be updated first, then the drivers.
>
> == How to build ==
>
> I usually build a full kernel with "make buildkernel". Then, I can
> rebuild the DRM part with:
> make buildkernel -DKERNFAST DEBUG_FLAGS="-g -O0"
>
> Add -j$N to accelerate the build.
>
> You can't use "-O0" for the entire kernel otherwise the kernel will
> overflow the stack. However, use it for subsequent rebuilds (ie. when
> using -DKERNFAST), otherwise, you'll get a lot of "<optimized out>"
> variables in gdb.
>
> When working on the update of a single file, you should move that file
> to the top of $(SRCS) in the Makefile (eg.
> sys/modules/drm2/drm2/Makefile) so other files don't prevent you from
> build-testing your work.
>
> I (re)install the new kernel in /tmp, because I use tmpfs there (I don't
> care about the installed kernel on my working computer):
> make (re)installkernel DESTDIR=/tmp
>
>  From the test computer, I rsync the new kernel.
>
> == How to test ==
>
> Do not load the driver from /boot/loader.conf or /etc/rc.conf. Load it
> manually after boot.
>
> You can set drm.debug=7 in /boot/loader.conf to have more debug
> informations during kldload. To lower the log level afterward (in case
> it's too verbose), the corresponding sysctl is hw.dri.debug.
>
> Play with several applications and use cases. I use:
>      o  glxinfo/glxgears
>      o  clinfo
>      o  Some of the games listed in the following page:
>         https://dri.freedesktop.org/wiki/Benchmarking/
>         (OpenArena and Xonotic in my case)
>      o  WebGL, I use this demo: http://www.david.li/waves/
>      o  Desktop environments (GNOME 3, KDE 4) and compositors such as
>         compton. I use compton to have a tearfree environment:
>         compton -CG --backend glx -b
>      o  Some video players with the GL and XVideo backends.
>      o  HTML5 videos. I watched this video which is exposes tearing a
>         lot:
>         https://www.youtube.com/watch?v=hpHknKaq_M0
>      o  Stellarium
>      o  xrandr(1) to manage output connectors
>      o  Suspend/resume
>      o  Piglit (from our development Ports tree; we should definitely
>         commit it)
>
> If you find a problem, try to reduce it to the minimum, then:
>      1. From a remote computer, use tmux or screen for your session (not
>         mandatory, but quite handy)
>      2. From one tab, start a plain X server:
>         Xorg
>      3. From another tab, start the bad, bad program:
>         DISPLAY=:0 bad_application
>      4. Use other tabs to look at log files, run dtrace scripts, etc.
>
> By doing so, you limit the number of calls to the video drivers to the
> minmum. Running a full desktop environment will spam a lot of unrelated
> messages.
>
> If the computer doesn't crash and you want to load a newer driver, you can:
>      1. Close all applications and the X server
>      2. kldunload the driver (note that it doesn't work for i915kms in
>         HEAD, the update will fix that)
>      3. kldload the new one.
>
> It saves you a reboot. Again, do this from a remote computer because
> after kldunloading, you may not get a console back (it works with the
> Radeon driver, but so far, not with the updated i915 driver).
>
> If you get a core dump, it will be available in /var/crash after the
> reboot. Usually, core.txt.$N has enough informations. If not, you can
> start gdb (either the one in base or the one from Ports):
>    gdb /boot/kernel/kernel /var/crash/vmcore.last
> (change /boot/kernel/kernel to match the kernel you used)
>
> Thanks for reading! :) If something is missing, please ask! I will put
> this information on the wiki.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87795262.4908917179187135.2FF38F97B4C0.59145062>