Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP6
qemu.28166
scsi-disk-trace-rw-errors.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File scsi-disk-trace-rw-errors.patch of Package qemu.28166
From: Hannes Reinecke <hare@suse.de> Date: Thu, 12 Nov 2020 17:26:14 +0100 Subject: scsi-disk: trace rw errors References: bsc#1178049,bsc#1194938 Add a tracepoints for R/W errors. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Lin Ma <lma@suse.com> --- hw/scsi/scsi-disk.c | 2 ++ hw/scsi/trace-events | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 2602941196033e263afe3dacd6bf..dd16eae1c7cec793514529b305e6 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -443,6 +443,8 @@ static bool scsi_handle_rw_error(SCSIDiskReq *r, int error, bool acct_failed) BlockErrorAction action = blk_get_error_action(s->qdev.conf.blk, is_read, error); + trace_scsi_disk_rw_error(r->req.tag, (r->status & 0xff), (r->status >> 8), + error, action); if (action == BLOCK_ERROR_ACTION_REPORT) { if (acct_failed) { block_acct_failed(blk_get_stats(s->qdev.conf.blk), &r->acct); diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events index 0a08147c27d70637ffd9170ae903..db9b47a8243d80f48e50c2daeb73 100644 --- a/hw/scsi/trace-events +++ b/hw/scsi/trace-events @@ -302,6 +302,7 @@ virtio_scsi_tmf_resp(int lun, uint32_t tag, int response) "virtio_scsi_tmf_resp # scsi-disk.c scsi_disk_check_condition(uint32_t tag, uint8_t key, uint8_t asc, uint8_t ascq) "Command complete tag=0x%x sense=%d/%d/%d" +scsi_disk_rw_error(uint32_t tag, uint8_t status, uint8_t host_status, int error, int action) "rw error tag=0x%x status=0x%x host_status=0x%x error=%d action=%d" scsi_disk_read_complete(uint32_t tag, size_t size) "Data ready tag=0x%x len=%zd" scsi_disk_read_data_count(uint32_t sector_count) "Read sector_count=%d" scsi_disk_read_data_invalid(void) "Data transfer direction invalid" @@ -329,7 +330,7 @@ scsi_disk_dma_command_READ(uint64_t lba, uint32_t len) "Read (sector %" PRId64 " scsi_disk_dma_command_WRITE(const char *cmd, uint64_t lba, int len) "Write %s(sector %" PRId64 ", count %u)" scsi_disk_new_request(uint32_t lun, uint32_t tag, const char *line) "Command: lun=%d tag=0x%x data=%s" scsi_disk_aio_sgio_command(uint32_t tag, uint8_t cmd, uint64_t lba, int len, uint32_t timeout) "disk aio sgio: tag=0x%x cmd 0x%x (sector %" PRId64 ", count %d) timeout %u" -scsi_disk_aio_sgio_done(uint32_t tag, int ret, uint8_t status, uint8_t host_status) "disk aio sgio: cmd 0x%x ret %d status 0x%x host_status 0x%x" +scsi_disk_aio_sgio_done(uint32_t tag, int ret, uint8_t status, uint8_t host_status) "disk aio sgio: tag=0x%x ret %d status 0x%x host_status 0x%x" # scsi-generic.c scsi_generic_command_complete_noio(void *req, uint32_t tag, uint8_t status, uint8_t host_status) "Command complete %p tag=0x%x status=0x%x host_status=0x%x"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor