[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 1/7] hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to o
|
From: |
Jonathan Cameron |
|
Subject: |
Re: [RFC 1/7] hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output payload of identify memory device command |
|
Date: |
Mon, 15 May 2023 14:02:42 +0100 |
On Thu, 11 May 2023 17:56:40 +0000
Fan Ni <fan.ni@samsung.com> wrote:
> From: Fan Ni <nifan@outlook.com>
>
> Based on CXL spec 3.0 Table 8-94 (Identify Memory Device Output
> Payload), dynamic capacity event log size should be part of
> output of the Identify command.
> Add dc_event_log_size to the output payload for the host to get the info.
>
> Signed-off-by: Fan Ni <fan.ni@samsung.com>
Trivial formatting aside, looks good to me.
Jonathan
> ---
> hw/cxl/cxl-mailbox-utils.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
> index 9f8e6722d7..7ff4fbdf22 100644
> --- a/hw/cxl/cxl-mailbox-utils.c
> +++ b/hw/cxl/cxl-mailbox-utils.c
> @@ -21,6 +21,8 @@
> #include "sysemu/hostmem.h"
>
> #define CXL_CAPACITY_MULTIPLIER (256 * MiB)
> +/* Experimental value: dynamic capacity event log size */
> +#define CXL_DC_EVENT_LOG_SIZE 8
>
> /*
> * How to add a new command, example. The command set FOO, with cmd BAR.
> @@ -519,8 +521,9 @@ static CXLRetCode cmd_identify_memory_device(struct
> cxl_cmd *cmd,
> uint16_t inject_poison_limit;
> uint8_t poison_caps;
> uint8_t qos_telemetry_caps;
> + uint16_t dc_event_log_size;
Qemu uses 4 space indentation not tabs.
> } QEMU_PACKED *id;
> - QEMU_BUILD_BUG_ON(sizeof(*id) != 0x43);
> + QEMU_BUILD_BUG_ON(sizeof(*id) != 0x45);
>
> CXLType3Dev *ct3d = container_of(cxl_dstate, CXLType3Dev, cxl_dstate);
> CXLType3Class *cvc = CXL_TYPE3_GET_CLASS(ct3d);
> @@ -543,6 +546,7 @@ static CXLRetCode cmd_identify_memory_device(struct
> cxl_cmd *cmd,
> st24_le_p(id->poison_list_max_mer, 256);
> /* No limit - so limited by main poison record limit */
> stw_le_p(&id->inject_poison_limit, 0);
> + stw_le_p(&id->dc_event_log_size, CXL_DC_EVENT_LOG_SIZE);
>
> *len = sizeof(*id);
> return CXL_MBOX_SUCCESS;