openzfs / zfs

OpenZFS on Linux and FreeBSD
https://openzfs.github.io/openzfs-docs
Other
10.68k stars 1.76k forks source link

RHEL 9.1 (Kernel 5.14.0-162.6.1) complains a lot about ABI compatible build #14192

Open mskarbek opened 2 years ago

mskarbek commented 2 years ago

System information

Type Version/Name
Distribution Name RHEL
Distribution Version 9.1
Kernel Version 5.14.0-162.6.1
Architecture x86_64
OpenZFS Version 2.1.6

Describe the problem you're observing

Lots of compatibility warnings during kmod rpm build.

Describe how to reproduce the problem

Build ZFS with ./configure --with-spec=redhat.

Include any warning/errors/backtraces from the system logs

Processing files: kmod-zfs-2.1.6-1.el9.x86_64

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_return_thunk
    module_layout

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_indirect_thunk_r9
    __x86_return_thunk
    current_task
    module_layout
    param_get_uint
    param_set_uint

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_return_thunk
    current_task
    module_layout

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_return_thunk
    current_task
    ktime_get_raw_ts64
    memchr
    module_layout
    strpbrk
    strspn

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_return_thunk
    module_layout

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __SCT__cond_resched
    __cpuhp_remove_state
    __cpuhp_setup_state
    __cpuhp_state_add_instance
    __cpuhp_state_remove_instance
    __kmalloc_node
    __percpu_counter_init
    __percpu_counter_sum
    __x86_return_thunk
    bit_wait
    current_task
    dequeue_signal
    filp_close
    filp_open
    flush_signals
    get_random_bytes
    io_schedule
    io_schedule_timeout
    kernel_read
    kmalloc_caches
    kmem_cache_alloc
    kmem_cache_alloc_trace
    kmem_cache_create_usercopy
    kmem_cache_destroy
    kmem_cache_free
    kthread_bind
    kthread_create_on_node
    kthread_stop
    ktime_get_raw_ts64
    kvasprintf
    kvmalloc_node
    memchr
    module_layout
    out_of_line_wait_on_bit
    param_get_uint
    param_ops_charp
    param_ops_int
    param_ops_uint
    param_ops_ulong
    param_set_uint
    percpu_counter_add_batch
    percpu_counter_batch
    percpu_counter_destroy
    proc_create_data
    proc_dointvec
    proc_dostring
    proc_doulongvec_minmax
    proc_mkdir
    rb_erase
    rb_insert_color
    register_sysctl_table
    remove_proc_entry
    schedule_hrtimeout_range
    schedule_timeout_interruptible
    seq_lseek
    seq_open
    seq_open_private
    seq_printf
    seq_puts
    seq_read
    seq_release
    seq_release_private
    set_user_nice
    sigprocmask
    unregister_sysctl_table
    vfs_getattr
    wake_up_bit
    wake_up_process
    zlib_deflate
    zlib_deflateEnd
    zlib_deflateInit2
    zlib_deflate_workspacesize
    zlib_inflate
    zlib_inflateEnd
    zlib_inflateInit2
    zlib_inflate_workspacesize

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __x86_return_thunk
    module_layout

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __alloc_pages
    __x86_return_thunk
    ktime_get_raw_ts64
    module_layout
    param_ops_int

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __SCT__cond_resched
    __alloc_pages
    __blk_alloc_disk
    __folio_lock
    __free_pages
    __mark_inode_dirty
    __percpu_counter_init
    __percpu_counter_sum
    __posix_acl_chmod
    __posix_acl_create
    __put_devmap_managed_page
    __put_page
    __remove_inode_hash
    __set_page_dirty_nobuffers
    __usecs_to_jiffies
    __x86_return_thunk
    _copy_from_iter
    _copy_to_iter
    bdev_check_media_change
    bdev_end_io_acct
    bdev_start_io_acct
    bdevname
    bio_add_page
    bio_alloc_bioset
    bio_endio
    bio_put
    blk_finish_plug
    blk_queue_flag_clear
    blk_queue_flag_set
    blk_queue_io_opt
    blk_queue_max_discard_sectors
    blk_queue_max_hw_sectors
    blk_queue_max_segment_size
    blk_queue_max_segments
    blk_queue_physical_block_size
    blk_start_plug
    blkdev_get_by_path
    blkdev_issue_discard
    blkdev_issue_secure_erase
    blkdev_put
    clear_inode
    clear_nlink
    clear_page_dirty_for_io
    copy_user_enhanced_fast_string
    copy_user_generic_string
    copy_user_generic_unrolled
    current_task
    current_time
    current_umask
    d_add_ci
    d_instantiate
    d_invalidate
    d_make_root
    d_obtain_alias
    d_prune_aliases
    d_set_d_op
    d_splice_alias
    d_tmpfile
    deactivate_locked_super
    deactivate_super
    del_gendisk
    device_add_disk
    dput
    drop_nlink
    empty_zero_page
    end_page_writeback
    fault_in_iov_iter_readable
    fget
    filemap_dirty_folio
    filemap_write_and_wait_range
    filp_close
    filp_open
    folio_wait_bit
    follow_down_one
    forget_cached_acl
    fput
    from_kgid
    from_kuid
    fs_bio_set
    fsync_bdev
    generic_file_llseek
    generic_file_mmap
    generic_file_open
    generic_file_splice_read
    generic_fillattr
    generic_read_dir
    generic_write_checks
    get_random_bytes
    has_capability
    ida_alloc_range
    ida_destroy
    ida_free
    igrab
    ilookup
    inc_nlink
    init_special_inode
    init_task
    inode_init_once
    inode_owner_or_capable
    inode_set_flags
    insert_inode_locked
    int_sqrt
    invalidate_bdev
    iov_iter_advance
    iov_iter_revert
    iput
    iter_file_splice_write
    kern_path
    kernel_read
    kernel_write
    kill_anon_super
    kobject_add
    kobject_del
    kobject_init
    kobject_put
    ktime_get_raw_ts64
    lockref_get
    make_kgid
    make_kuid
    mark_page_accessed
    match_strdup
    match_token
    misc_deregister
    misc_register
    module_layout
    new_inode
    ns_capable
    page_mapping
    pagecache_get_page
    param_get_charp
    param_get_int
    param_get_long
    param_get_ulong
    param_ops_charp
    param_ops_int
    param_ops_long
    param_ops_uint
    param_ops_ulong
    param_set_charp
    param_set_int
    param_set_long
    param_set_ulong
    path_get
    path_put
    percpu_counter_add_batch
    percpu_counter_destroy
    posix_acl_equiv_mode
    put_disk
    read_cache_pages
    redirty_page_for_writepage
    register_filesystem
    register_memory_notifier
    register_shrinker
    schedule_timeout_interruptible
    schedule_timeout_uninterruptible
    security_inode_init_security
    seq_printf
    seq_putc
    seq_puts
    set_anon_super
    set_cached_acl
    set_capacity
    set_disk_ro
    set_nlink
    set_page_writeback
    setattr_prepare
    sg_alloc_table
    sg_free_table
    sg_next
    sget
    shrink_dcache_sb
    simple_dir_inode_operations
    simple_dir_operations
    strcspn
    strpbrk
    submit_bio
    super_setup_bdi_name
    timestamp_truncate
    touch_atime
    truncate_inode_pages_range
    truncate_setsize
    unlock_new_inode
    unlock_page
    unregister_filesystem
    unregister_memory_notifier
    unregister_shrinker
    usleep_range_state
    vfs_fsync
    vfs_getattr
    vfs_llseek
    vm_node_stat
    vmalloc_to_page
    write_cache_pages
    write_inode_now

Red Hat recommends that you consider using only official kernel ABI symbols
where possible. Requests for additions to the kernel ABI can be filed with
your partner or customer representative (component: driver-update-program).
tonyhutter commented 2 years ago

Please try again. I just rebuilt and uploaded the zfs-2.1.6 RPMs for RHEL 9.

tonyhutter commented 2 years ago

Please try again. I just rebuilt and uploaded the zfs-2.1.6 RPMs for RHEL 9.

Sorry, I read too fast and assumed that was coming from our kmod packages. I see you're building the kmods from scratch. Coincidentally, RHEL 9.1 just came out and I had to rebuild our kmod RPMs for it.

It's possible that RHEL 9 is still backporting a bunch of old kernel interfaces that ZFS autodetects and uses, rather than the newer, native ones. Seeing as we can build zfs-2.1.6 on the 6.0 kernel, it's probably reasonable to assume that if RHEL deprecates support for these older interfaces that we'll still be able to build zfs.