You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
3.0 KiB
67 lines
3.0 KiB
2 years ago
|
commit a0fa7bf0b68058d8f41a5fde608362172a2c3d77
|
||
|
Author: Martin Cermak <mcermak@redhat.com>
|
||
|
Date: Wed May 11 22:22:00 2022 +0200
|
||
|
|
||
|
Update examples/io/iostat-scsi.stp for modern rhel9 kernels.
|
||
|
|
||
|
Update examples/io/iostat-scsi.stp for kernels having following
|
||
|
upstream kernel commit backported:
|
||
|
|
||
|
commit f3fa33acca9f0058157214800f68b10d8e71ab7a
|
||
|
Author: Christoph Hellwig <hch@lst.de>
|
||
|
Date: Fri Nov 26 13:18:00 2021 +0100
|
||
|
|
||
|
block: remove the ->rq_disk field in struct request
|
||
|
|
||
|
Just use the disk attached to the request_queue instead.
|
||
|
|
||
|
[ ... stuff deleted ... ]
|
||
|
|
||
|
diff --git a/testsuite/systemtap.examples/io/iostat-scsi.stp b/testsuite/systemtap.examples/io/iostat-scsi.stp
|
||
|
index 3faf32fe9..aa0238a7b 100755
|
||
|
--- a/testsuite/systemtap.examples/io/iostat-scsi.stp
|
||
|
+++ b/testsuite/systemtap.examples/io/iostat-scsi.stp
|
||
|
@@ -2,12 +2,18 @@
|
||
|
|
||
|
global devices, reads, writes
|
||
|
|
||
|
+/* kernel commit f3fa33acca9f0058157214800f68b10d8e71ab7a */
|
||
|
+@define __disk_name(__request)
|
||
|
+%(
|
||
|
+ ( @choose_defined(@__request->rq_disk->disk_name, @__request->q->disk->disk_name ) )
|
||
|
+%)
|
||
|
+
|
||
|
/* data collection: SCSI disk */
|
||
|
%(kernel_v < "2.6.24" %?
|
||
|
probe module("sd_mod").function("sd_init_command") !,
|
||
|
kernel.function("sd_init_command")
|
||
|
{
|
||
|
- device = kernel_string($SCpnt->request->rq_disk->disk_name)
|
||
|
+ device = kernel_string(@__disk_name($SCpnt->request))
|
||
|
sector_size = $SCpnt->device->sector_size
|
||
|
nr_sectors = $SCpnt->request->nr_sectors
|
||
|
devices[device] = 1
|
||
|
@@ -38,7 +44,7 @@ function get_nr_sectors:long(rq:long)
|
||
|
probe sd_prep_fn = module("sd_mod").function("sd_prep_fn") !,
|
||
|
kernel.function("sd_prep_fn")
|
||
|
{
|
||
|
- device = kernel_string($rq->rq_disk->disk_name)
|
||
|
+ device = kernel_string(@__disk_name($rq))
|
||
|
sector_size = @cast($q->queuedata, "scsi_device", "kernel<scsi/scsi_device.h>")->sector_size
|
||
|
%(kernel_v>="2.6.31" %?
|
||
|
nr_sectors = get_nr_sectors($rq)
|
||
|
@@ -58,11 +64,11 @@ probe sd_init_command = module("sd_mod").function("sd_init_command") !,
|
||
|
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)
|
||
|
+ device = kernel_string(@__disk_name(@choose_defined($cmd, $SCpnt)->request))
|
||
|
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)
|
||
|
+ device = kernel_string(@__disk_name(@cast(scsi_cmd_to_rq(@choose_defined($cmd, $SCpnt)), "request", "kernel")))
|
||
|
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
|
||
|
}
|