Re: [PATCH v4 27/28] tools/testing/cxl: Make event logs dynamic

From: Jonathan Cameron
Date: Thu Oct 10 2024 - 12:36:46 EST


On Mon, 07 Oct 2024 18:16:33 -0500
Ira Weiny <ira.weiny@xxxxxxxxx> wrote:

> The event logs test was created as static arrays as an easy way to mock
> events. Dynamic Capacity Device (DCD) test support requires events be
> generated dynamically when extents are created or destroyed.
>
> The current event log test has specific checks for the number of events
> seen including log overflow.
>
> Modify mock event logs to be dynamically allocated. Adjust array size
> and mock event entry data to match the output expected by the existing
> event test.
>
> Use the static event data to create the dynamic events in the new logs
> without inventing complex event injection for the previous tests.
>
> Simplify log processing by using the event log array index as the
> handle. Add a lock to manage concurrency required when user space is
> allowed to control DCD extents
>
> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Might be worth breaking up into refactor (the static cases) and
then new stuff.

Otherwise one trivial comment inline.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>

>
> ---
> Changes:
> [iweiny: rebase to 6.12]
> ---
> tools/testing/cxl/test/mem.c | 268 ++++++++++++++++++++++++++-----------------
> 1 file changed, 162 insertions(+), 106 deletions(-)
>
> diff --git a/tools/testing/cxl/test/mem.c b/tools/testing/cxl/test/mem.c
> index ccdd6a504222..5e453aa2819b 100644
> --- a/tools/testing/cxl/test/mem.c
> +++ b/tools/testing/cxl/test/mem.c
> @@ -126,18 +126,26 @@ static struct {

> /* Handle can never be 0 use 1 based indexing for handle */
> -static u16 event_get_clear_handle(struct mock_event_log *log)
> +static u16 event_inc_handle(u16 handle)
> {
> - return log->clear_idx + 1;
> + handle = (handle + 1) % CXL_TEST_EVENT_ARRAY_SIZE;
> + if (!handle)
> + handle = handle + 1;

That's a little confusing for me

if (handle == 0)
handle = 1;

> + return handle;
> }