[lttng-dev] [PATCH lttng-modules 0/1] Introduce configure script to describe changes in linux kernel interface
Michael Jeanson
mjeanson at efficios.com
Fri Jul 7 14:37:42 EDT 2023
On 2023-07-06 17:10, Roxana Nicolescu wrote:
> Hi,
>
> I gave 2 derivatives as an example, but in fact there are more than 10. We
> will end up with a bigger if condition that the actual function
> implementation. And this is also not a sustainable solution in case there are
> new derivatives coming after the fix. It will be hard to maintain. Plus, to
> achieve this we have to release a new kernel version to expose the suffixes in
> utsrelease.h and getting the fix on the user side would require a reboot to
> upgrade their kernel version.
>
> While the current solution based on versioning may be easier to understand
> from the developer perspective, it adds technical depth to the implementation
> and in fact it requires more maintenance than expected, also on the
> distribution side. When there is a change on the kernel side, you need to
> check if it landed in older kernel versions and based on that you need to add
> a new interval in the if condition.
> Now, looking at the configure script approach, while maybe not as clear as an
> ifdef, only one change would be enough to solve this problem. The LTTng module
> does not have to care about each distribution's way of versioning and the
> distributions don't have to deal with issues on their side if they use a
> version that the LTTng module did not take into account because you were not
> aware of it.
> I think maintaining it won't be that hard if it's readable and documented
> properly. I am more than happy to improve it and help with maintaining it if
> you agree on this.
>
> All the best,
> Roxana
Hi Roxana,
We are still not convinced of the benefits of a configure script over the
added complexity since the issue is specific to Ubuntu where you choose to
maintain 10s of different kernel branches with diverging code and overlapping
versions.
I made a patch [1] with version ranges that adds support for all kernels from
the kinetic "linux" repo [2] including 'generic' and other flavours and
'lowlatency'. It however doesn't cover 'linux-aws' or other repos which share
ABI numbers with 'lowlatency'.
You can of course use the configure script approach in the Ubuntu package
'lttng-modules-dkms' by adding your patch to the packaging code.
Regards,
Michael
[1] https://review.lttng.org/c/lttng-modules/+/10485
[2] https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/kinetic
More information about the lttng-dev
mailing list