Re-fix bz2041526 by including also patch for PR28633.

Resolves: #2041526
This commit is contained in:
Martin Cermak 2022-01-24 15:35:46 +01:00
parent 35fde734a7
commit b4cf2e4e9f
2 changed files with 54 additions and 8 deletions

View File

@ -1,9 +1,3 @@
commit efae8a3dc159248a877a9904aa408b2468d272f1
Author: Martin Cermak <mcermak@redhat.com>
Date: Mon Dec 13 17:47:54 2021 +0100
PR28634: Update ioscheduler.stp for kernel-5.16
diff --git a/tapset/linux/ioscheduler.stp b/tapset/linux/ioscheduler.stp
index abb24dac9..3096a73ea 100644
--- a/tapset/linux/ioscheduler.stp
@ -120,3 +114,54 @@ index abb24dac9..3096a73ea 100644
+#endif
%}
+
diff --git a/testsuite/systemtap.examples/io/iostat-scsi.stp b/testsuite/systemtap.examples/io/iostat-scsi.stp
index 6b1bf19ea..3faf32fe9 100755
--- a/testsuite/systemtap.examples/io/iostat-scsi.stp
+++ b/testsuite/systemtap.examples/io/iostat-scsi.stp
@@ -26,6 +26,7 @@ probe module("sd_mod").function("sd_init_command") !,
%(kernel_v >= "2.6.31" %?
%{
#include <linux/blkdev.h>
+#include <linux/blk-mq.h>
%}
function get_nr_sectors:long(rq:long)
@@ -47,13 +48,24 @@ probe sd_prep_fn = module("sd_mod").function("sd_prep_fn") !,
_cmd_flags = $rq->cmd_flags
}
+function scsi_cmd_to_rq(scmd) {
+ return scmd - @cast_module_sizeof("kernel", "request")
+}
+
probe sd_init_command = module("sd_mod").function("sd_init_command") !,
kernel.function("sd_init_command")
{
- device = kernel_string(@choose_defined($cmd, $SCpnt)->request->rq_disk->disk_name)
- sector_size = @choose_defined($cmd, $SCpnt)->device->sector_size
- nr_sectors = get_nr_sectors(@choose_defined($cmd, $SCpnt)->request)
- _cmd_flags = @choose_defined($cmd, $SCpnt)->request->cmd_flags
+ sector_size = @choose_defined($cmd, $SCpnt)->device->sector_size
+ # Kernel commits aa8e25e5006aac52c943c84e9056ab488630ee19 2266a2def97ce11ec979b6c58a1b637a16eca7dd
+ if (@defined(@choose_defined($cmd, $SCpnt)->request)) {
+ device = kernel_string(@choose_defined($cmd, $SCpnt)->request->rq_disk->disk_name)
+ nr_sectors = get_nr_sectors(@choose_defined($cmd, $SCpnt)->request)
+ _cmd_flags = @choose_defined($cmd, $SCpnt)->request->cmd_flags
+ } else {
+ device = kernel_string(@cast(scsi_cmd_to_rq(@choose_defined($cmd, $SCpnt)), "request", "kernel")->rq_disk->disk_name)
+ nr_sectors = get_nr_sectors(scsi_cmd_to_rq(@choose_defined($cmd, $SCpnt)))
+ _cmd_flags = @cast(scsi_cmd_to_rq(@choose_defined($cmd, $SCpnt)), "request", "kernel")->cmd_flags
+ }
}
probe sd_prep_fn !, sd_init_command
@@ -71,7 +83,8 @@ probe sd_prep_fn !, sd_init_command
probe module("st").function("st_do_scsi").call !,
kernel.function("st_do_scsi").call
{
- device = kernel_string($STp->disk->disk_name)
+ # Kernel commit 45938335d0a9773d65a82a7ca722bb76e4b997a8
+ device = kernel_string(@choose_defined($STp->disk->disk_name, $STp->name))
devices[device] = 1
if ($direction)
writes[device] <<< $bytes

View File

@ -118,7 +118,7 @@ m stapdev stapdev
Name: systemtap
Version: 4.6
Release: 8%{?release_override}%{?dist}
Release: 9%{?release_override}%{?dist}
# for version, see also configure.ac
@ -1281,8 +1281,9 @@ exit 0
# PRERELEASE
%changelog
* Fri Jan 21 2022 Martin Cermak <mcermak@redhat.com> - 4.6-8
* Fri Jan 21 2022 Martin Cermak <mcermak@redhat.com> - 4.6-9
- rhbz2027683: python tapset regression
- rhbz2027683: systemtap.examples/io/iostat-scsi.stp PR28633
* Mon Jan 17 2022 Martin Cermak <mcermak@redhat.com> - 4.6-6
- rhbz2041526/pr28634: move elevator.h to block/