diff options
author | zhenwei pi <pizhenwei@bytedance.com> | 2021-01-15 11:27:01 +0800 |
---|---|---|
committer | Klaus Jensen <k.jensen@samsung.com> | 2021-02-08 21:15:53 +0100 |
commit | 4714791b66ae39bea6b6e3c3e84aaed8dcb005c7 (patch) | |
tree | a51153b89bdf15428ca9338242e55c20209ab240 /hw/block/nvme.h | |
parent | c6d1b5c13bf937d3314f4bad596ced52f32106c5 (diff) |
hw/block/nvme: add smart_critical_warning property
There is a very low probability that hitting physical NVMe disk
hardware critical warning case, it's hard to write & test a monitor
agent service.
For debugging purposes, add a new 'smart_critical_warning' property
to emulate this situation.
The orignal version of this change is implemented by adding a fixed
property which could be initialized by QEMU command line. Suggested
by Philippe & Klaus, rework like current version.
Test with this patch:
1, change smart_critical_warning property for a running VM:
#virsh qemu-monitor-command nvme-upstream '{ "execute": "qom-set",
"arguments": { "path": "/machine/peripheral-anon/device[0]",
"property": "smart_critical_warning", "value":16 } }'
2, run smartctl in guest
#smartctl -H -l error /dev/nvme0n1
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
- volatile memory backup device has failed
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Diffstat (limited to 'hw/block/nvme.h')
-rw-r--r-- | hw/block/nvme.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/block/nvme.h b/hw/block/nvme.h index 347c149e79..b0d5b6409d 100644 --- a/hw/block/nvme.h +++ b/hw/block/nvme.h @@ -148,6 +148,7 @@ typedef struct NvmeCtrl { uint64_t timestamp_set_qemu_clock_ms; /* QEMU clock time */ uint64_t starttime_ms; uint16_t temperature; + uint8_t smart_critical_warning; HostMemoryBackend *pmrdev; |