[Crash-utility] [crash patch] Compute init_thread_union size

Dave Anderson anderson at redhat.com
Thu Apr 5 14:01:57 UTC 2018



----- Original Message -----
> On Thu, 2018-04-05 at 09:27 -0400, Dave Anderson wrote:
> > 
> > ----- Original Message -----
> > > Greetings,
> > > 
> > > I know absolutely nothing about how crash maintenance is done, and very
> > > damn little about crash's gizzard, so please consider the below a bug
> > > report, a patch.. or bloody annoying spam, as you see fit.
> > 
> > Hi Mike,
> > 
> > No, it's most definitely appreciated.  Normally patches are posted on the
> > crash utility mailing list (crash-utility at redhat.com), but this is fine.
> > 
> > And speaking of the mailing list, there was a bug report and subsequent
> > thread yesterday concerning this issue:
> > 
> >   https://www.redhat.com/archives/crash-utility/2018-April/msg00000.html
> > 
> > It was unresolved because the thread_union still exists in the most
> > recent upstream sources, and I can still see the union declaration
> > in the most recent Fedora kernel.
> 
> It still exists, but...
> 
> homer:..kernel/linux-4.15 # objdump -t vmlinux|grep thread_union
> ffffffff81e00000 g     O .data  0000000000004000 init_thread_union
>                                             ^^^^
> homer:..kernel/linux-master # objdump -t vmlinux|grep thread_union
> ffffffff81e00000 g       .data  0000000000000000 init_thread_union
>                                             ^^^^
> 
> ...it's size went missing at the referenced commit.

Right, but the crash utility never dealt with the "init_thread_union"
data symbol, but rather uses the declaration of the "thread_union"
union, which still exists in today's linux-git:

  union thread_union {
  #ifndef CONFIG_ARCH_TASK_STRUCT_ON_STACK
          struct task_struct task;
  #endif
  #ifndef CONFIG_THREAD_INFO_IN_TASK
          struct thread_info thread_info;
  #endif
          unsigned long stack[THREAD_SIZE/sizeof(long)];
  };

So I'm guessing that the x86_64 arch never references the thread_union
from include/linux/sched.h, and therefore has no need to put it in the
vmlinux debuginfo data?

Dave






> 
> 	-Mike
> 




More information about the Crash-utility mailing list