[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