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

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to