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

Systemtap dev.stp tapset doesn't work with RHEL9.7 kernels with RHEL-79409 changes

Linking RHIVOS CVEs to...Migration: Automation ...Sync from "Extern...XMLWordPrintable

    • systemtap-5.3-3.el9
    • Yes
    • Moderate
    • 1
    • rhel-pt-perf-tools
    • ssg_platform_tools
    • 16
    • 18
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • No
    • Red Hat Enterprise Linux
    • PT PerfDebug 2025 S08
    • Unspecified Release Note Type - Unknown
    • Unspecified
    • Unspecified
    • Unspecified
    • All

      The upcoming RHEL9.7 include a number of backports of Linux 6.14 block layer.  These changes break the systemtap dev.stp tapset bdevname function checks to determine how to get information. The dev.stp tapset checks the kernel version to determine how to access the needed data.  Need to adjust the tapset to check the available fields of the data struct to determine how to get the needed information. The problem can be replicated with:

       

      sudo dnf install "systemtap*" -y
      sudo stap-prep
      sudo stap -vk --example disktop.stp

      Rather than the example successfully running error messages are printed out:

      Pass 1: parsed user script and 519 library scripts using 600112virt/541188res/16128shr/533188data kb, in 1170usr/270sys/1469real ms.
      semantic error: unable to find member 'bd_part' for struct block_device (alternatives: bd_dev, bd_disk, bd_stamp, bd_stats, __bd_flags, bd_inode, bd_openers, bd_queue, bd_device, bd_holder, bd_holders, bd_writers, bd_claiming, bd_start_sect, bd_meta_info, bd_holder_dir, bd_size_lock, bd_holder_ops, bd_nr_sectors, bd_holder_lock, bd_fsfreeze_sb, bd_fsfreeze_count, bd_fsfreeze_mutex): operator '->' at /usr/share/systemtap/tapset/linux/dev.stp:92:15
              source:     else if (bdev->bd_part)
                                       ^semantic error: unable to find member 'bd_part' for struct block_device (alternatives: bd_dev, bd_disk, bd_stamp, bd_stats, __bd_flags, bd_inode, bd_openers, bd_queue, bd_device, bd_holder, bd_holders, bd_writers, bd_claiming, bd_start_sect, bd_meta_info, bd_holder_dir, bd_size_lock, bd_holder_ops, bd_nr_sectors, bd_holder_lock, bd_fsfreeze_sb, bd_fsfreeze_count, bd_fsfreeze_mutex): operator '->' at :93:16
              source:         partno = bdev->bd_part->partno
                                           ^Pass 2: analyzed script: 6 probes, 46 functions, 8 embeds, 36 globals using 887216virt/830012res/17884shr/820292data kb, in 2180usr/200sys/2449real ms.
      Pass 2: analysis failed.  [man error::pass2]
      Keeping temporary directory "/tmp/stap6IEJS3"

       

              rhn-engineering-wcohen William Cohen
              rhn-engineering-wcohen William Cohen
              Frank Eigler Frank Eigler
              Martin Cermak Martin Cermak
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: