Re: Fix build ID parsing logic in stable trees

Andrii Nakryiko
2024-11-08T17:55:35Z

On Thu, Nov 7, 2024 at 12:04 PM Omar Sandoval <osandov@osandov.com> wrote:
>
> On Wed, Nov 06, 2024 at 12:57:34PM +0100, Jiri Olsa wrote:
> > On Wed, Nov 06, 2024 at 07:12:05AM +0100, Greg KH wrote:
> > > On Tue, Nov 05, 2024 at 10:15:04AM +0100, Jiri Olsa wrote:
> > > > On Tue, Nov 05, 2024 at 07:54:48AM +0100, Greg KH wrote:
> > > > > On Mon, Nov 04, 2024 at 06:52:52PM +0100, Jiri Olsa wrote:
> > > > > > hi,
> > > > > > sending fix for buildid parsing that affects only stable trees
> > > > > > after merging upstream fix [1].
> > > > > >
> > > > > > Upstream then factored out the whole buildid parsing code, so it
> > > > > > does not have the problem.
> > > > >
> > > > > Why not just take those patches instead?
> > > >
> > > > I guess we could, but I thought it's too big for stable
> > > >
> > > > we'd need following 2 changes to fix the issue:
> > > > de3ec364c3c3 lib/buildid: add single folio-based file reader abstraction
> > > > 60c845b4896b lib/buildid: take into account e_phoff when fetching program headers
> > > >
> > > > and there's also few other follow ups:
> > > > 5ac9b4e935df lib/buildid: Handle memfd_secret() files in build_id_parse()
> > > > cdbb44f9a74f lib/buildid: don't limit .note.gnu.build-id to the first page in ELF
> > > > ad41251c290d lib/buildid: implement sleepable build_id_parse() API
> > > > 45b8fc309654 lib/buildid: rename build_id_parse() into build_id_parse_nofault()
> > > > 4e9d360c4cdf lib/buildid: remove single-page limit for PHDR search
> > > >
> > > > which I guess are not strictly needed
> > >
> > > Can you verify what exact ones are needed here? We'll be glad to take
> > > them if you can verify that they work properly.
> >
> > ok, will check
>
> Hello,
>
> I noticed that the BUILD-ID field in vmcoreinfo is broken on
> stable/longterm kernels and found this thread. Can we please get this
> fixed soon?
>
> I tried cherry-picking the patches mentioned above ("lib/buildid: add
> single folio-based file reader abstraction" and "lib/buildid: take into
> account e_phoff when fetching program headers"), but they don't apply
> cleanly before 6.11, and they'd need to be reworked for 5.15, which was
> before folios were introduced. Jiri's minimal fix works for me and seems
> like a much safer option.

I second that. Custom fix is minimal and keeps the rest of build ID
logic the same without involving all the folio conversions. I'd just
apply that.

>
> Tested-by: Omar Sandoval <osandov@fb.com>
>
> Thanks,
> Omar