[Bug 2681] akmods for EL6

RPM Fusion Bugzilla noreply at rpmfusion.org
Fri Nov 1 10:09:38 CET 2013


https://bugzilla.rpmfusion.org/show_bug.cgi?id=2681

Simone Caronni <negativo17 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |negativo17 at gmail.com

--- Comment #3 from Simone Caronni <negativo17 at gmail.com> 2013-11-01 10:09:38 CET ---
(In reply to comment #2)
> From what I understand, kwizart is not interested in rebuilding all the kmods
> every time Red Hat releases a new RHEL kernel. When I last spoke with him about
> this in the #rpmfusion IRC channel, he wanted someone else would step up and
> take responsibility for bumping and rebuilding the EL branches. Keeping up with
> Fedora is a chore, and without Fedora's open and transparent Koji/Bodhi
> process, I imagine that keeping up with RHEL kernel version bumps would be even
> more of a challenge.
> 
> On the subject of Red Hat's kABI, I recently found out that in order to be
> completely safe with kABI, your kernel module can only use a limited set of
> symbols that are explicitly covered under Red Hat's kABI agreement. If your
> kernel uses symbols that are not on Red Hat's list, there's a chance that the
> kmod will still work, but the reality is that all bets are off, and the safest
> course is to rebuild for every single RHEL kernel release. (If you're a vendor
> and you want to influence Red Hat's list, you need to become a Red Hat Partner
> and submit a list of the symbols that you need to be in the kABI agreement.)

I would like to step up on mantaining the RHEL branch, actually I would like to
contribute to the Nvidia driver by trying to merge some (all?) of my changes
[1] into RPMFusion drivers.

At the moment it's not so hard to rebuild RHEL modules. Symbol compatibility is
guaranteed for the whole life of a release, so for example a kernel module
built for the first 6.2 shipped kernel works also on 6.4. Actually this is one
of the strong points for adoption of "Enterprise" distributions in big
companies.

The difference in kABI whitelists between kernels it's simply an addition in
newer ones. Every point release (6.2, 6.3, 6.4, ecc.) they add new kernel
symbols that you can use in addition to the previous one, but you're not
required to. As a general rule of thumb, you could rebuild the kernel module
for the "base" kernel of each point release.

Personally, considering the rapid pace of Nvidia driver releases, one could
probably just build for the most recent "base" kernel at the moment the drivers
are released. And this means keeping up to date with RHEL kernels only once
every 6/7 months. Not a big deal at all.

For example, my current Nvidia kernel module requires 2.6.32-358.el6 for
building, which is the kernel shipped onto CentOS/RHEL 6.4 dvds.

Personally I find it much, much more easier to build and ship kernel modules
for RHEL/CentOS than it is for Fedora. The effort and time required is not even
comparable.

[1] http://negativo17.org/nvidia-driver/

Example on the kernel module:

$ rpm -qp --requires kmod-nvidia-319.60-1.el6.x86_64.rpm
rpmlib(VersionedDependencies) <= 3.0.3-1
nvidia-driver = 2:319.60
/sbin/depmod
/sbin/depmod
/bin/sh
/bin/sh
/bin/sh
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
kernel(__bitmap_weight) = 0x4cbbd171
kernel(__const_udelay) = 0xeae3dfd6
kernel(__get_free_pages) = 0x93fca811
kernel(__init_waitqueue_head) = 0xffc7c184
kernel(__kmalloc) = 0x5a34a45c
kernel(__pci_register_driver) = 0x5f07b9f3
kernel(__per_cpu_offset) = 0x32047ad5
kernel(__phys_addr) = 0xe52947e7
kernel(__register_chrdev) = 0xfa0d49c7
kernel(__release_region) = 0x7c61340c
kernel(__request_region) = 0x1fedf0f4
kernel(__stack_chk_fail) = 0xf0fdf6cb
kernel(__tasklet_schedule) = 0xf397b9aa
kernel(__tracepoint_module_get) = 0xacdeb154
kernel(__udelay) = 0x9e7d6bd0
kernel(__unregister_chrdev) = 0x6bc3fbc0
kernel(__vmalloc) = 0xa9bd2676
kernel(__wake_up) = 0x642e54ac
kernel(_ctype) = 0x8d3894f2
kernel(_spin_lock_irqsave) = 0x712aa29b
kernel(_spin_unlock_irqrestore) = 0x4b07e779
kernel(acpi_bus_get_device) = 0xd1f441a2
kernel(acpi_bus_register_driver) = 0x65bda36d
kernel(acpi_bus_unregister_driver) = 0x1117e6cb
kernel(acpi_evaluate_integer) = 0x285135e6
kernel(acpi_evaluate_object) = 0x9ea28ec7
kernel(acpi_get_handle) = 0x2bfeb410
kernel(acpi_install_notify_handler) = 0xd9091363
kernel(acpi_os_wait_events_complete) = 0xc9ab2eef
kernel(acpi_remove_notify_handler) = 0x2bb55d6e
kernel(acpi_walk_namespace) = 0x19d5d20a
kernel(acquire_console_sem) = 0xf174ed48
kernel(bad_dma_address) = 0x1675606f
kernel(boot_cpu_data) = 0xdd822018
kernel(capable) = 0x7dceceac
kernel(complete) = 0xe456bd3a
kernel(copy_from_user) = 0x3302b500
kernel(copy_to_user) = 0x85f8a266
kernel(cpu_present_mask) = 0x0e81f0e4
kernel(cpufreq_get) = 0x9305f8e6
kernel(create_proc_entry) = 0x6d6b15ff
kernel(del_timer_sync) = 0x0e83fea1
kernel(dev_get_drvdata) = 0x0a92a43c
kernel(dev_set_drvdata) = 0xd2037915
kernel(dma_ops) = 0x6e9681d2
kernel(do_gettimeofday) = 0x1d2e87c6
kernel(down) = 0x748caf40
kernel(down_read) = 0xb4b0ee4e
kernel(down_trylock) = 0x150853cf
kernel(efi_enabled) = 0x0933aae1
kernel(flush_scheduled_work) = 0x00801678
kernel(free_irq) = 0xf20dabd8
kernel(free_pages) = 0x4302d0eb
kernel(get_user_pages) = 0x6e293b8e
kernel(i2c_add_adapter) = 0x0bcdb1c0
kernel(i2c_del_adapter) = 0x02ba2da5
kernel(init_timer_key) = 0x6a9f26c9
kernel(iomem_resource) = 0x69a358a6
kernel(ioremap_cache) = 0x068c7263
kernel(ioremap_nocache) = 0x42c8de35
kernel(ioremap_wc) = 0x1e0c2be4
kernel(iounmap) = 0xedc03953
kernel(jiffies) = 0x7d11c268
kernel(kfree) = 0x037a0cba
kernel(kmem_cache_alloc) = 0xee065ced
kernel(kmem_cache_alloc_trace) = 0x2044fa9e
kernel(kmem_cache_create) = 0xe4a639f8
kernel(kmem_cache_destroy) = 0x806e575f
kernel(kmem_cache_free) = 0x7329e40d
kernel(local_bh_disable) = 0x3ff62317
kernel(local_bh_enable) = 0x0799aca4
kernel(malloc_sizes) = 0xd691cba2
kernel(mcount) = 0xb4390f9a
kernel(memcpy) = 0x236c8c64
kernel(memset) = 0xde0bdcff
kernel(mod_timer) = 0x45450063
kernel(module_layout) = 0x14522340
kernel(module_put) = 0xcbd81171
kernel(nr_cpu_ids) = 0xfe7c4287
kernel(num_physpages) = 0x0948cde9
kernel(on_each_cpu) = 0xc33f6f4c
kernel(param_get_charp) = 0x41344088
kernel(param_get_int) = 0x6980fe91
kernel(param_set_charp) = 0x6ad065f4
kernel(param_set_int) = 0xff964b25
kernel(pci_bus_read_config_byte) = 0xc917223d
kernel(pci_bus_read_config_dword) = 0xc5aa6d66
kernel(pci_bus_read_config_word) = 0x84b453e6
kernel(pci_bus_write_config_byte) = 0x4d7d27b8
kernel(pci_bus_write_config_dword) = 0xae290fb6
kernel(pci_bus_write_config_word) = 0x1f31615f
kernel(pci_dev_put) = 0x17e4ac4c
kernel(pci_disable_device) = 0x00a30682
kernel(pci_disable_msi) = 0x94a8242d
kernel(pci_enable_device) = 0xa12add91
kernel(pci_enable_msi_block) = 0x6a7a886b
kernel(pci_get_class) = 0x4c79d1af
kernel(pci_get_domain_bus_and_slot) = 0x541c9e7e
kernel(pci_set_master) = 0xaf559063
kernel(pci_unregister_driver) = 0x68f7c535
kernel(per_cpu__cpu_number) = 0x9629486a
kernel(per_cpu__current_task) = 0x4f1939c7
kernel(per_cpu__kernel_stack) = 0x6dcaeb88
kernel(printk) = 0xea147363
kernel(proc_create_data) = 0x52683e38
kernel(put_page) = 0x72b295a3
kernel(pv_cpu_ops) = 0x27f96468
kernel(pv_irq_ops) = 0x78764f4e
kernel(pv_mmu_ops) = 0x897a5a81
kernel(register_cpu_notifier) = 0x4550ba8a
kernel(release_console_sem) = 0x434fa55c
kernel(remap_pfn_range) = 0xc911f7f0
kernel(remove_proc_entry) = 0x1a6d6e4f
kernel(request_threaded_irq) = 0x859c6dc7
kernel(schedule_timeout) = 0xd62c833f
kernel(schedule_work) = 0xa28e76e6
kernel(screen_info) = 0xdc873a70
kernel(seq_lseek) = 0x5ca8e4f6
kernel(seq_printf) = 0x77e93f6f
kernel(seq_puts) = 0x96461b6f
kernel(seq_read) = 0xb72ec8a3
kernel(set_memory_array_uc) = 0xa350a8f8
kernel(set_memory_array_wb) = 0x64eae7ad
kernel(set_memory_uc) = 0xab65ed80
kernel(set_memory_wb) = 0x91607d95
kernel(set_page_dirty_lock) = 0x4ce05e28
kernel(sg_init_table) = 0xc897c382
kernel(sg_next) = 0x3fec048f
kernel(simple_strtoul) = 0x20000329
kernel(single_open) = 0x7ca65271
kernel(single_release) = 0xc1d878fa
kernel(smp_call_function) = 0x56f494e0
kernel(snprintf) = 0x9edbecae
kernel(strcat) = 0x061651be
kernel(strchr) = 0x349cba85
kernel(strcmp) = 0xe2d5255a
kernel(strcpy) = 0xe914e41e
kernel(strlen) = 0x25ec1b28
kernel(strsep) = 0x85df9b6c
kernel(strstr) = 0x1e6d26a8
kernel(tasklet_init) = 0xa5808bbf
kernel(tasklet_kill) = 0x79ad224b
kernel(unregister_cpu_notifier) = 0x74cc1cbe
kernel(up) = 0x3f1899f1
kernel(up_read) = 0xe23d7acb
kernel(vfree) = 0x999e8297
kernel(vga_set_legacy_decoding) = 0x3c8d32ba
kernel(vga_tryget) = 0x9ce60941
kernel(vm_insert_page) = 0x44986362
kernel(vmap) = 0x823e5df1
kernel(vsnprintf) = 0x35b0650f
kernel(vunmap) = 0x94961283
kernel(wait_for_completion) = 0x1cefe352
rpmlib(PayloadIsXz) <= 5.2-1

-- 
Configure bugmail: https://bugzilla.rpmfusion.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the rpmfusion-developers mailing list