On Fri, Jan 24, 2025 at 03:13:40PM -0500, Steven Rostedt wrote: > On Fri, 24 Jan 2025 11:21:59 -0800 > Josh Poimboeuf <jpoim...@kernel.org> wrote: > > > > given SFRAME_F_FRAME_POINTER in the header, is it really that > > > nonsensical and illegal to have zero FDEs/FREs? Maybe we should allow > > > that? > > > > It would seem a bit silly to create an empty .sframe section just to set > > that SFRAME_F_FRAME_POINTER bit. Regardless, there's nothing the kernel > > can do with that. > > > > > > + dbg("no fde/fre entries\n"); > > > > + return -EINVAL; > > > > + } > > > > + > > > > + header_end = sec->sframe_start + SFRAME_HEADER_SIZE(shdr); > > > > + if (header_end >= sec->sframe_end) { > > > > > > if we allow zero FDEs/FREs, header_end == sec->sframe_end is legal, > > > right? > > > > I suppose so, but again I'm not seeing any reason to support that. > > Hmm, could that be useful for implementing a way to dynamically grow or > shrink an sframe because of jits? I'm just thinking about placeholders or > sohething.
Maybe? I was thinking the kernel would have sframe_section placeholders for JIT code sections, so when sframe_find() retrieves the struct for a given IP, it sees the JIT flag is set along with a pointer to the in-memory shared "sframe section", then goes to read that to get the corresponding sframe entry (insert erratic hand waving). It's still early days but it's quite possible the in-memory "sframe section" formats might end up looking pretty different from the .sframe file section spec. -- Josh