[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YdmqtdqQ9Wq36tQ+@gmail.com>
Date: Sat, 8 Jan 2022 16:16:05 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Nathan Chancellor <nathan@...nel.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"David S. Miller" <davem@...emloft.net>,
Ard Biesheuvel <ardb@...nel.org>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Jonathan Corbet <corbet@....net>,
Al Viro <viro@...iv.linux.org.uk>, llvm@...ts.linux.dev
Subject: Re: [PATCH 0000/2297] [ANNOUNCE, RFC] "Fast Kernel Headers" Tree
-v1: Eliminate the Linux kernel's "Dependency Hell"
* Nathan Chancellor <nathan@...nel.org> wrote:
> I tried to checkout at 9006a48618cc0cacd3f59ff053e6509a9af5cc18 to see if
> I could reproduce that breakage there but the build errors out at that
> change (I do see notes of bisection breakage in some of the commits) so I
> assume that is expected.
Yeah, so the underlying problem is that these two commits want to be a
single commit:
# Commit #117
headers/deps: Move task->thread_info to per_task()
# Commit #106
headers/deps: Move thread_info APIs to <linux/sched/thread_info_api.h>
As we can only switch ARM64's <asm/preempt.h> to use per_task() - which
requires <linux/sched.h> - if we first fix & simplify <linux/sched.h>'s
header dependencies, which is done to a sufficient level by:
# Commit #556
headers/deps: Optimize <linux/sched.h> dependencies, remove <linux/sched/thread_info_api_lowlevel.h> inclusion
So it's a catch-22, and quite a complication, and a bisection breakage
distance of ~450 commits, with a lot of ordering assumptions & conflicts
along the way, should we attempt to move the first two to later stages. :-/
But today I've restructured the tree, and the -v2-to-be tree is now fully
bisectable on ARM64 too. :-)
There's a single, late per_cpu() conversion commit, after the first phase
of <linux/sched.h> simplifications:
headers/deps: Move task->thread_info to per_task()
I'd guess that either this one is that breaks SCS for you, or the ::thread
conversion:
headers/deps: per_task, arm64, x86: Convert task_struct::thread to a per_task() field
I've pushed out these fixes to the sched/headers branch a couple of minutes
ago, and this will be part of the -v2 release as well.
Thanks,
Ingo
Powered by blists - more mailing lists