https://bugzilla.novell.com/show_bug.cgi?id=341801#c2
--- Comment #2 from andy ritger 2007-11-15 14:58:08 MST ---
Thank you for the heads up, Ruediger and Stefan.
I think from NVIDIA's point of view, it will be impossible for the NVIDIA
kernel module to operate with paravirt kernels if these symbols are
exported GPL-only.
We investigated how the Linux kernel interface layer of the NVIDIA kernel
module picks up these references with the paravirt kernel in question,
and here is what we found:
The NVIDIA kernel module picks up three dispatch tables, 'pv_cpu_ops',
'pv_mmu_ops' and 'pv_irq_ops'; the former two are only exported to
GPL-licensed modules, the latter is exported to all modules.
The NVIDIA kernel module picks up 'pv_mmu_ops' implicitely via
pgd_val(), pte_val() and __flush_tlb(). It picks up 'pv_cpu_ops' via
local_irq_disable() (which translates to raw_local_irq_disable()),
read_cr0(), write_cr0(), rdmsr() (translates to paravirt_read_msr()
and wrmsr() (translates to paravirt_write_msr()).
These references are caused in part due to the PAT setup code in the
NVIDIA Linux kernel module, but also via regular driver work like page
table walking, TLB flushing and disabling of interrupts on the local CPU.
The NVIDIA kernel module cannot function without 'pv_cpu_ops' and
'pv_mmu_ops', and it seems that the reasons the NVIDIA module is getting
references to these symbols are all reasonable things for the NVIDIA
module to do.
I think SuSE/Novell has much more influence and political clout in this
area than NVIDIA. Do you think you can try to influence this?
Let me know if there is anything I can do to help.
Thanks,
- Andy
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.