Re: liburing update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On ti, 23 elo 2022, Richard W.M. Jones wrote:
On Tue, Aug 23, 2022 at 11:38:26AM +0200, Dominik 'Rathann' Mierzejewski wrote:
I'd suggest doing a mock, copr or scratch build and running abipkgdiff
comparing current rawhide and the updated binary packages. It'll tell
you if there are any subtle ABI differences.

Here's a scratch build:

 https://koji.fedoraproject.org/koji/taskinfo?taskID=91169327

The differences are:

$ abipkgdiff liburing-2.0-4.fc37.x86_64.rpm liburing-2.2-1.fc38.x86_64.rpm --devel-pkg1 liburing-devel-2.0-4.fc37.x86_64.rpm --devel-pkg2 liburing-devel-2.2-1.fc38.x86_64.rpm --debug-info-pkg1 liburing-debuginfo-2.0-4.fc37.x86_64.rpm --debug-info-pkg2 liburing-debuginfo-2.2-1.fc38.x86_64.rpm

================ changes of 'liburing.so.2.0.0'===============
 Functions changes summary: 0 Removed, 1 Changed (24 filtered out), 16 Added functions
 Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

 16 Added functions:

   [A] 'function ssize_t io_uring_mlock_size(unsigned int, unsigned int)'    {io_uring_mlock_size@@LIBURING_2.1}
   [A] 'function ssize_t io_uring_mlock_size_params(unsigned int, io_uring_params*)'    {io_uring_mlock_size_params@@LIBURING_2.1}
   [A] 'function int io_uring_register_buf_ring(io_uring*, io_uring_buf_reg*, unsigned int)'    {io_uring_register_buf_ring@@LIBURING_2.2}
   [A] 'function int io_uring_register_buffers_sparse(io_uring*, unsigned int)'    {io_uring_register_buffers_sparse@@LIBURING_2.2}
   [A] 'function int io_uring_register_buffers_tags(io_uring*, const iovec*, const __u64*, unsigned int)'    {io_uring_register_buffers_tags@@LIBURING_2.1}
   [A] 'function int io_uring_register_buffers_update_tag(io_uring*, unsigned int, const iovec*, const __u64*, unsigned int)'    {io_uring_register_buffers_update_tag@@LIBURING_2.1}
   [A] 'function int io_uring_register_files_sparse(io_uring*, unsigned int)'    {io_uring_register_files_sparse@@LIBURING_2.2}
   [A] 'function int io_uring_register_files_tags(io_uring*, const int*, const __u64*, unsigned int)'    {io_uring_register_files_tags@@LIBURING_2.1}
   [A] 'function int io_uring_register_files_update_tag(io_uring*, unsigned int, const int*, const __u64*, unsigned int)'    {io_uring_register_files_update_tag@@LIBURING_2.1}
   [A] 'function int io_uring_register_iowq_aff(io_uring*, size_t, const cpu_set_t*)'    {io_uring_register_iowq_aff@@LIBURING_2.1}
   [A] 'function int io_uring_register_iowq_max_workers(io_uring*, unsigned int*)'    {io_uring_register_iowq_max_workers@@LIBURING_2.1}
   [A] 'function int io_uring_register_ring_fd(io_uring*)'    {io_uring_register_ring_fd@@LIBURING_2.2}
   [A] 'function int io_uring_submit_and_wait_timeout(io_uring*, io_uring_cqe**, unsigned int, __kernel_timespec*, sigset_t*)'    {io_uring_submit_and_wait_timeout@@LIBURING_2.2}
   [A] 'function int io_uring_unregister_buf_ring(io_uring*, int)'    {io_uring_unregister_buf_ring@@LIBURING_2.2}
   [A] 'function int io_uring_unregister_iowq_aff(io_uring*)'    {io_uring_unregister_iowq_aff@@LIBURING_2.1}
   [A] 'function int io_uring_unregister_ring_fd(io_uring*)'    {io_uring_unregister_ring_fd@@LIBURING_2.2}

 1 function with some indirect sub-type change:

   [C] 'function int __io_uring_get_cqe(io_uring*, io_uring_cqe**, unsigned int, unsigned int, sigset_t*)' at queue.c:113:1 has some indirect sub-type changes:
     parameter 1 of type 'io_uring*' has sub-type changes:
       in pointed to type 'struct io_uring' at liburing.h:77:1:
         type size hasn't changed
         3 data member insertions:
           'int enter_ring_fd', at offset 1632 (in bits) at liburing.h:84:1
           '__u8 int_flags', at offset 1664 (in bits) at liburing.h:85:1
           'unsigned int pad2', at offset 1696 (in bits) at liburing.h:87:1
         2 data member changes (1 filtered):
           type of 'io_uring_sq sq' changed:
             type size hasn't changed
             1 data member change:
               type of 'io_uring_sqe* sqes' changed:
                 in pointed to type 'struct io_uring_sqe' at io_uring.h:21:1:
                   type size hasn't changed
                   4 data member insertions:
                     '__u16 personality', at offset 336 (in bits) at io_uring.h:63:1
                     'union {__s32 splice_fd_in; __u32 file_index;}', at offset 352 (in bits)
                     '__u64 addr3', at offset 384 (in bits) at io_uring.h:68:1
                     '__u64 __pad2[1]', at offset 448 (in bits) at io_uring.h:69:1
                   1 data member changes (1 filtered):
                     anonymous data member at offset 320 (in bits) changed from:
                       union {struct {union {__u16 buf_index; __u16 buf_group;}; __u16 personality; __s32 splice_fd_in;}; __u64 __pad2[3];}
                     to:
                       union {__u16 buf_index; __u16 buf_group;}
                     and size changed from 192 to 16 (in bits) (by -176 bits)
           type of 'unsigned int pad[3]' changed:
             array element type 'unsigned int' changed:
               entity changed from 'unsigned int' to compatible type 'typedef __u8' at int-ll64.h:21:1
                 type name changed from 'unsigned int' to 'unsigned char'
                 type size changed from 32 to 8 (in bits)
             type name changed from 'unsigned int[3]' to '__u8[3]'
             array type size changed from 96 to 24
           and offset changed from 1632 to 1672 (in bits) (by +40 bits)
     parameter 2 of type 'io_uring_cqe**' has sub-type changes:
       in pointed to type 'io_uring_cqe*':
         in pointed to type 'struct io_uring_cqe' at io_uring.h:258:1:
           type size hasn't changed
           1 data member insertion:
             '__u64 big_cqe[]', at offset 128 (in bits) at io_uring.h:267:1

================ end of changes of 'liburing.so.2.0.0'===============

I guess we can ignore the added functions as those should always be safe.

The changed function __io_uring_get_cqe is documented in the header
as:

 /*
  * Helper for the peek/wait single cqe functions. Exported because of that,
  * but probably shouldn't be used directly in an application.
  */

I looked at the source of qemu & ceph and neither call this function.

Samba does not call __io_uring_get_cqe() either.


--
/ Alexander Bokovoy
Sr. Principal Software Engineer
Security / Identity Management Engineering
Red Hat Limited, Finland
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux