On Fri, Oct 27, 2023 at 01:05:48AM +0200, Thomas Gleixner wrote: > On Thu, Oct 26 2023 at 18:33, Suren Baghdasaryan wrote: > > On Wed, Oct 25, 2023 at 5:33 PM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > >> > This avoids a circular header dependency in an upcoming patch by only > >> > making hrtimer.h depend on percpu-defs.h > >> > >> What's the actual dependency problem? > > > > Sorry for the delay. > > When we instrument per-cpu allocations in [1] we need to include > > sched.h in percpu.h to be able to use alloc_tag_save(). sched.h > > Including sched.h in percpu.h is fundamentally wrong as sched.h is the > initial place of all header recursions. > > There is a reason why a lot of funtionalitiy has been split out of > sched.h into seperate headers over time in order to avoid that. Yeah, it's definitely unfortunate. The issue here is that alloc_tag_save() needs task_struct - we have to pull that in for alloc_tag_save() to be inline, which we really want. What if we moved task_struct to its own dedicated header? That might be good to do anyways...