Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-50107

stp_task_work.c needs updates for fresh rhel-10 kernel

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • rhel-10.0.beta
    • rhel-10.0.beta
    • systemtap
    • None
    • systemtap-5.1-7.el10
    • None
    • None
    • 1
    • rhel-sst-pt-perf-debug
    • ssg_platform_tools
    • 23
    • 23
    • 1
    • False
    • Hide

      None

      Show
      None
    • No
    • Perf Debug Sprint 8
    • Unspecified Release Note Type - Unknown
    • None

      Various testcases now point a finger to this systemtap problem:

       

      el10 x86_64 # uname -r
      6.10.0-15.el10.x86_64
      el10 x86_64 # stap -e 'probe nfsd.proc.lookup {printf("%s %s\n", client_ip, filename);}'
      In file included from /usr/share/systemtap/runtime/runtime.h:26,
                       from /tmp/staphWrjL0/stap_43f6aea024d9a47d3e37cbda87af21c3_9499_src.c:21:
      /usr/share/systemtap/runtime/stp_task_work.c: In function ‘stp_task_work_cancel’:
      /usr/share/systemtap/runtime/stp_task_work.c:13:123: error: passing argument 2 of ‘(bool (*)(struct task_struct *, struct callback_head *))kallsyms_task_work_cancel’ from incompatible pointer type [-Wincompatible-pointer-types]
         13 | #define task_work_cancel(a,b) ibt_wrapper(struct callback_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b)))
            |                                                                                                                           ^~~
            |                                                                                                                           |
            |                                                                                                                           task_work_func_t {aka void (*)(struct callback_head *)}
      /usr/share/systemtap/runtime/linux/runtime.h:317:21: note: in definition of macro ‘ibt_wrapper’
        317 |   rettype retval = (function);                  \
            |                     ^~~~~~~~
      /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’
        107 |         twork = task_work_cancel(task, func);
            |                 ^~~~~~~~~~~~~~~~
      /usr/share/systemtap/runtime/stp_task_work.c:13:123: note: expected ‘struct callback_head *’ but argument is of type ‘task_work_func_t’ {aka ‘void (*)(struct callback_head *)’}
         13 | #define task_work_cancel(a,b) ibt_wrapper(struct callback_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b)))
            |                                                                                                                           ^~~
      /usr/share/systemtap/runtime/linux/runtime.h:317:21: note: in definition of macro ‘ibt_wrapper’
        317 |   rettype retval = (function);                  \
            |                     ^~~~~~~~
      /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’
        107 |         twork = task_work_cancel(task, func);
            |                 ^~~~~~~~~~~~~~~~
      /usr/share/systemtap/runtime/linux/runtime.h:317:20: error: incompatible types when initializing type ‘struct callback_head *’ using type ‘bool’ {aka ‘_Bool’}
        317 |   rettype retval = (function);                  \
            |                    ^
      /usr/share/systemtap/runtime/stp_task_work.c:13:31: note: in expansion of macro ‘ibt_wrapper’
         13 | #define task_work_cancel(a,b) ibt_wrapper(struct callback_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b)))
            |                               ^~~~~~~~~~~
      /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’
        107 |         twork = task_work_cancel(task, func);
            |                 ^~~~~~~~~~~~~~~~
      make[1]: *** [scripts/Makefile.build:244: /tmp/staphWrjL0/stap_43f6aea024d9a47d3e37cbda87af21c3_9499_src.o] Error 1
      make: *** [Makefile:1952: /tmp/staphWrjL0] Error 2
      WARNING: kbuild exited with status: 2
      Pass 4: compilation failed.  [man error::pass4]
      Kernel version 6.10.0 is outside tested range 2.6.32 ... 6.9-rc0
      el10 x86_64 # 

      Affects systemtap-5.1-6.el10.  As of today [38b9646417560aa8a5b993669aafeec2f8a42496], there's no upstream fix for this.

              rhtorsys Frank Eigler
              mcermak@redhat.com Martin Cermak
              Frank Eigler Frank Eigler
              Martin Cermak Martin Cermak
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated: