On 2018-09-18 16:55:14 [-0400], Jonathan Rajotte-Julien wrote: > Hi, Hi, > While building/linking our out-of-tree modules, lttng-modules, against > 4.14.69-rt43 we encounter this error: > > WARNING: "__migrate_disabled" [/home/builder/lttng-modules/lttng-modules-2.10.7/lttng-tracer.ko] undefined! > > Same problem for other stable rt kernels > 4.9. > Everything work fine against 4.9.115-rt93. > > It looks like __migrate_disabled was moved from linux/include/sched.h to > linux/include/preempt.h. No problem there but for a configuration the > inline function was transformed into a function declaration. The symbol for > that function is not currently exported (EXPORT_SYMBOL*). > > Should __migrate_disabled be exported when defined in kernel/sched/core.c? If you need it, I guess so. In order to inline it again, it should be moved back to sched.h… > And for personal knowledge: > > What is the reason for not using an inline function for the (CONFIG_SMP) > && (CONFIG_PREEMPT_RT_BASE) configuration? we should not include sched.h (for struct task_struct) into preempt.h > The commit message introducing __migrate_disabled does not give much information > regarding why it is done differently compared to 4.9-rt kernels. > > We will probably end up accessing the migrate_disabled field directly since we > need to support those kernel versions somehow. Do you want a EXPORT_SYMBOL_GPL for that or are you good? > Cheers Sebastian