[DTrace-devel] [PATCH] btf: ensure BTF-to-CTF conversion works for modules

Alan Maguire alan.maguire at oracle.com
Thu Jul 25 10:49:56 UTC 2024


On 25/07/2024 05:56, Kris Van Hees via DTrace-devel wrote:
> The recent introduction of code to always load BTF data for modules
> broke the BTF-to-CTF conversion for modules.  This patch ensures that
> the BTF-to-CTF convertor code is called from any module that does not
> contain CTF data.
> 
> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>

Tested-by: Alan Maguire <alan.maguire at oracle.com>

Tested with patches 1 and 3 from [1] applied.

[1]
https://lore.kernel.org/dtrace/20240708145404.1673045-1-alan.maguire@oracle.com/


> ---
>  libdtrace/dt_module.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/libdtrace/dt_module.c b/libdtrace/dt_module.c
> index 5e608446..cbbb1d3c 100644
> --- a/libdtrace/dt_module.c
> +++ b/libdtrace/dt_module.c
> @@ -962,8 +962,8 @@ dt_kern_module_find_ctf(dtrace_hdl_t *dtp, dt_module_t *dmp)
>  			dt_dprintf("Cannot open CTF archive %s: %s; "
>  				   "looking for in-module CTF instead.\n",
>  				   ctfa_name, ctf_errmsg(dtp->dt_ctferr));
> -#endif
>  			return;
> +#endif
>  		}
>  
>  		if (dtp->dt_ctfa_path == NULL)
> @@ -1018,6 +1018,11 @@ dt_kern_module_find_ctf(dtrace_hdl_t *dtp, dt_module_t *dmp)
>  
>  		dmp->dm_flags |= DT_DM_CTF_ARCHIVED;
>  		ctf_setspecific(dmp->dm_ctfp, dmp);
> +#ifdef HAVE_LIBCTF
> +	} else {
> +		/* Generate CTF from BTF for the module. */
> +		dt_kern_module_ctf_from_btf(dtp, dmp);
> +#endif
>  	}
>  
>  	/*



More information about the DTrace-devel mailing list