D

Daniel Vetter

blog.ffwll.ch · Personal blog · on HN since 2013

Daniel Vetter is a Linux kernel graphics maintainer who writes about kernel development, maintainership, and locking.

What HN saysHN links his post on why GitHub can't host the Linux kernel community, which commenters cite as a good explanation of email-based patch workflows.
29HN people shared it
10linked it in comments
24stories submitted
629story points
6 months agolast shared
2013people per year2026

Most-shared posts

  1. 1
    Why GitHub Can't Host the Linux Kernel Community
    8 people · 407 points · first shared 2017 · 236 comments on HN
  2. 2
    Linux Kernel Maintainer Statistics
    3 people · 7 points · first shared 2018 · 2 comments on HN
  3. 3
    Maintainers Don't Scale
    2 people · 162 points · first shared 2017 · 119 comments on HN
  4. 4
    Locking Engineering Principles
    2 people · 25 points · first shared 2022 · discussion on HN
  5. 5
    Upstream Graphics: Too Little, Too Late
    2 people · 6 points · first shared 2019 · discussion on HN
  6. 6
    On Getting Patches Merged
    2 people · 4 points · first shared 2016 · discussion on HN
  7. 7
    Crashcourse on Intel hardware:i915 and what the GEM does
    2 people · 2 points · first shared 2013 · discussion on HN
  8. 8
    Review, not Rocket Science
    2 people · 2 points · first shared 2017 · discussion on HN
  9. 9
  10. 10
    Neat Intel Graphics Stuff for Linux 4.8
    1 people · 3 points · first shared 2016 · discussion on HN
  11. 11
    Why GitHub can't host the Linux kernel community
    1 people · 3 points · first shared 2018 · 1 comments on HN
  12. 12
    Awesome Atomic Advances
    1 people · 2 points · first shared 2016 · discussion on HN
  13. 13
    Upstream, Why and How
    1 people · 1 points · first shared 2024 · discussion on HN
  14. 14
    Midlayers, Once More with Feelings!
    1 people · 1 points · first shared 2016 · discussion on HN
  15. 15
    Graphics Kernel Upstreaming Requirements
    1 people · 1 points · first shared 2015 · discussion on HN

What HN people wrote when they linked it

vulcan01 · 2025-02-08
https://blog.ffwll.ch/about/ > Currently I work at Intel’s Linux Cloud SE group, mostly creating havoc in kernel driver’s given my more than a decade of work in the graphics subsystem. I’m also co-maintaining the graphics subsystem. I also have been drm/i915 kernel maintainer for a few years, but handed that all off to a great new team.
dapperdrake · 2026-05-01
Here is what email patches are all about: https://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html I tried email patches with another person myself. The only reason GH won here, is because the git people made one fatal mistake: They forgot to include the tree hash and only show the commit hash in the email patch. But the commit hash is useless. When you email patch, then commits people want to treat as "the same" and talk about have different hashes. The commit times differ and there is not only the commit author, but also the committer. We stopped doing email patches, because commit hashes became useless for communicating with each other. GitHub made commit hashes "constant" in a way people care about. For our purposes, tree hashes would have been much better in practice. The git user interface is literally "git porcelain". It cuts you for no reason.
hnfong · 2021-09-17
I recently found this article, which probably repeats the same points, but with a very concrete example (Linux kernel development): https://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html It was an interesting read because Linus has repeatedly dismissed github for kernel development, and he never explains why in detail (as a consequence most news reporting his soundbites are not very informative either)
cnst · 2020-08-27
This is the most upsetting part about it, IMHO. The reason Microsoft pays a salary to this person is precisely to get GitHub mentioned into these sorts of conversations -- even though it's widely known that GitHub doesn't support such usecases. But, of course, there's never any time to mention such facts; but here's an example if anyone's curious: https://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html. Yet when a one-person team tries to provide relevant examples on the issues of dealing with Microsoft, pitching a potential solution, and offering their take on it -- fully open-sourced -- they get discounted as advertisement -- even though their service is free and open source.
dfabulich · 2018-09-13
Here's a good article. https://danluu.com/monorepo/ It cites simplified organization, simplified dependencies, superior tooling, and easier cross-project changes. https://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html is another good one. You can build issue/PR tools treating a monotree as containing multiple repositories; that's how Google and Facebook do their work (including checked-in OWNERS/MAINTAINERS files).
Areading314 · 2018-07-02
Here is an interesting post about the Linux project and why they don't use GitHub https://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html
tremon · 2017-11-15
Probably this link: http://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html ? In that case, yes, that applies to GitLab too. The main problem is how GitHub and GitLab manage subprojects: GitLab forks are strictly hierarchical in how they manage pull requests and contributions (you can only submit patches from your repo to the single repo that you forked from). But that may not be an issue for per-package repositories like Debian has on alioth. Debian does not have a monotree like the Linux kernel, every (source) package is a standalone project so the same objection does not apply here.
qb45 · 2013-03-31
I've found quite readable and relatively high level description of memory management and command submission in Linux drivers for Intel GPUs. http://blog.ffwll.ch/2013/01/i915gem-crashcourse-overview.html This (plus some low-level register poking) is the stuff you would need to implement in your GPU daemon. Actual generation of drawing commands, compilation of shaders etc is performed by applications. The overhead should be in the order of few context switches to the GPU server for each frame rendered by any application (in Linux it's few syscalls instead of context switches). Probably not terrible.
nyanpasu64 · 2022-08-19
For the longest time I viewed kernel programming as an exalted realm of "optimized bare-metal software written by visionaries and wizards" (like operating system core developers of the Dave Cutler variety). Having had the misfortune of dabbling in reverse-engineering Windows drivers and debugging in-tree Linux kernel drivers, I now believe they're often messy hackjobs written by low-paid average-skilled embedded developers, no less fallible than the average enterprise Java programmer (https://blog.ffwll.ch/2022/08/locking-hierarchy.html expresses a similar sentiment). And I feel the maintainers are sometimes spread far too thin (Dmitry Torokhov manages a good chunk of Linux's entire input system, no wonder he lets mistakes slip by in the touchpad driver, I'm just disappointed I reported a bug to the mailing lists and never got a reply after like a month). EDIT: The wizards are out there, for example https://pvk.ca/Blog/2019/01/09/preemption-is-gc-for-memory-reordering/… but they're not evenly distributed, and perhaps the insane cutting-edge code they write (and the less insane code I write) isn't necessarily dependable, since by definition they lie on the edge of human understanding.
mananaysiempre · 2022-08-15
>> In a Flatpak you have (?) to assume the system glibc is incompatible with the bundled one either way, thus you can’t assume you can load host libraries. > Not exactly. You must assume that the host glibc is incompatible with the bundled one, that's right. > But that does not mean you cannot load host libraries. You can load them (provided you got them somehow inside the container namespace, including their dependencies) using the linker inside the container. I meant that the glibcs are potentially ABI-incompatible both ways, not just that they’ll fight if you try to load both of them at once. Specifically, if the bundled (thus loaded) glibc is old, 2.U, and you try to load a host library wants a new frobnicate@GLIBC_2_V, V > U, you lose, right? I just don’t see any way around it. >> These libraries require carnal knowledge of the kernel-space driver, thus emphatically cannot be bundled; but the previous point means that you can’t load them from the host system either. > Yes and no; Intel and AMD user space drivers have to work with variety of kernel versions, so they cannot be too tight. Nvidia driver has tightly coupled user space and kernel space, but with the recent open-sourcing the kernel part, this will also change. My impression of out-of-tree accelerated is mainly from fighting fglrx for the Radeon 9600 circa 2008, so extremely out of date. Intel is in-tree, so I’m willing to believe it has some degree of ABI stability, at least if an i915 blog post[1] is…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close