All of lore.kernel.org
 help / color / mirror / Atom feed
* sched: some non-GPL symbols becoming GPL-only with CONFIG_PREEMPT_RT enabled
@ 2021-11-28  0:07 Angelo Haller
  2021-11-28  9:46 ` Oleksandr Natalenko
  0 siblings, 1 reply; 3+ messages in thread
From: Angelo Haller @ 2021-11-28  0:07 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	Will Deacon, linux-rt-users

Greetings. I hope I picked the right mailing list, as this issue might 
be one that affects various subsystems and components:

When compiling kernel 5.15 (and 5.16-rc2) with `CONFIG_PREEMPT_RT` 
enabled, some of the symbols being exported as `EXPORT_SYMBOL` suddenly 
become `EXPORT_SYMBOL_GPL` through transitive effects.

In particular the symbols `migrate_enable` and `migrate_disable` are 
currently marked as `EXPORT_SYMBOL_GPL` - yet are called from multiple 
functions that are marked as `EXPORT_SYMBOL`.

Here an (incomplete?) listing of call sites I came across:

kernel/locking/spinlock_rt.c - rt_spin_unlock()
kernel/locking/spinlock_rt.c - rt_read_unlock()
kernel/locking/spinlock_rt.c - rt_write_unlock()
mm/highmem.c - kunmap_local_indexed()

The issue I'm facing in particular is kmap_atomic() calling 
`migrate_disable` and therefore suddenly becoming GPL-only. This breaks 
the out-of-tree CDDL licensed module ZFS and has been reported before 
already [0]. The conversation seemingly going nowhere - or patches at 
least not being applied upstream. Downstream issue for reference [1].

As the original implementation of `migrate_enable` and `migrate_disable` 
is apparently by Peter Zijlstra [2]. Peter would you be willing to 
re-license both symbols `migrate_enable` and `migrate_disable` as 
`EXPORT_SYMBOL`?

The bigger issue I'm seeing though is that there is currently no 
automated test to uncover exported symbols changing their license 
depending on build configuration? I am not intimately familiar with the 
API guarantees the kernel gives, but this seems like a violation. There 
might be other symbols with similar licensing problems.

I can open a bugzilla ticket too - if that is preferred.

Angelo


[0] 
https://lore.kernel.org/linux-rt-users/20201208212841.694b3022@orivej.orivej.org/T/
[1] https://github.com/openzfs/zfs/issues/11097
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/diff/patches/0009-sched-Add-migrate_disable.patch?h=v5.9-rc8-rt14-patches&id=9a89bfdb3bc77aecdd0ff8cc69b595541c7b50c4


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-11-28 16:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-28  0:07 sched: some non-GPL symbols becoming GPL-only with CONFIG_PREEMPT_RT enabled Angelo Haller
2021-11-28  9:46 ` Oleksandr Natalenko
2021-11-28 16:24   ` Angelo Haller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.