Re: Unknown ORC entry type 5 on RHEL 9 kernel

Philipp Rudo <[email protected]> Wed, 17 Dec 2025 17:11:05 +0100
Newsgroups org.kernel.vger.linux-debuggers
Organization Red Hat inc.
Message-ID <20251217171105.67a9e059@rotkaeppchen>
Hi Stephen,
Hi Omar,

On Fri, 05 Dec 2025 10:38:05 -0800
Stephen Brennan <[email protected]> wrote:

> Philipp Rudo <[email protected]> writes:
> > Hi Stephen,
> >
> > thanks for letting me know. And yes that is something we need to fix in
> > the kernel rather than drgn.
> >
> > I took a quick look and found that the change was included when
> > backporting fb799447ae29 ("x86,objtool: Split UNWIND_HINT_EMPTY in two")
> > for 9.6. Thing is that I'll be heading to LPC tomorrow and won't have
> > time to work on it properly before that...  
> 
> Thanks for taking a deeper look! No worries on timing, it's not urgent.
> If you think the most likely fix will be to backport commit
> b9f174c811e3a ("x86/unwind/orc: Add ELF section with ORC version
> identifier"), then I believe the drgn workaround I proposed in the
> Github issue [1] should work fine: once the .orc_header section is
> found, drgn will detect it and use the correct hash. The only difference
> being that the "true" first broken version was 5.14.0-517.el9, which
> might be worth encoding in the code in case somebody ever runs drgn
> against a weird unreleased version from that development period.
> 
> [1]: https://github.com/osandov/drgn/issues/578#issuecomment-3614826789

I had a look today. Unfortunately backporting b9f174c811e3
("x86/unwind/orc: Add ELF section with ORC version identifier") isn't as
straight forward as I hoped. The problem is that the RHEL9 kernel is
missing commit 321648455061 ("kbuild: use obj-y instead extra-y for
objects placed at the head"). Without that commit Omar's fix won't
work as intended and in fact causes problems...

I found an internal discussion about backporting 321648455061 ("kbuild:
use obj-y instead extra-y for objects placed at the head"). But back then
(~2 years ago) it was deemed to be too invasive to backport for RHEL9. I
don't think this will change now even later in the RHEL9 life cycle.

All in all I'm afraid we are stuck with Stephen's work around.

Thanks
Philipp

> 
> > One more hint. When you want to get the history of RHEL, it's better to
> > check the centos-stream repo then the changelog. There you have the
> > full git history (modulo some embargoed CVE fixes).
> >
> > https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9  
> 
> Thanks, that helps a lot!
> Stephen
> 
> > Thanks
> > Philipp
> >
> >
> > On Thu, 04 Dec 2025 12:06:54 -0800
> > Stephen Brennan <[email protected]> wrote:
> >  
> >> Hi Philipp,
> >> 
> >> I wanted to let you know about an issue with drgn's stack unwinding on
> >> the RHEL 9 kernel. It looks like that kernel backports some ORC changes,
> >> without including a change Omar made (including an .orc_header section)
> >> to help identify the ORC format version. I've included more details on
> >> this drgn issue:
> >> 
> >> https://github.com/osandov/drgn/issues/578
> >> 
> >> The result is that drgn can't unwind stacks on the RHEL 9 kernel. I
> >> think the best path forward would be to include the .orc_header patch:
> >> b9f174c811e3a ("x86/unwind/orc: Add ELF section with ORC version identifier")
> >> 
> >> As it is, the RHEL 9 drgn can't unwind stacks on the RHEL 9 kernel,
> >> which seems less than ideal.
> >> 
> >> Thanks,
> >> Stephen
> >>   
>