On 2023-10-24 at 12:26:11 +0300, Ilpo Järvinen wrote: >MBM, MBA and CMT test cases use run_fill_buf() to loop indefinitely >around the buffer. CAT test case is different and doesn't want to loop >around the buffer continuously. > >Split fill_cache() so that both the use cases are easier to control by >creating separate functions for buffer allocation and looping around >the buffer. Make those functions available for tests. The new interface >is based on returning/passing pointers instead of the startptr global >pointer variable that can now be removed. The deallocation can use >free() directly. > >This change is part of preparation for new CAT test which allocates a >buffer and does multiple passes over the same buffer (but not in an >infinite loop). > >Co-developed-by: Fenghua Yu <fenghua.yu@xxxxxxxxx> >Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx> >Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> >--- > tools/testing/selftests/resctrl/fill_buf.c | 26 +++++++++++++--------- > 1 file changed, 15 insertions(+), 11 deletions(-) > >diff --git a/tools/testing/selftests/resctrl/fill_buf.c b/tools/testing/selftests/resctrl/fill_buf.c >index 0d425f26583a..f9893edda869 100644 >--- a/tools/testing/selftests/resctrl/fill_buf.c >+++ b/tools/testing/selftests/resctrl/fill_buf.c >@@ -135,33 +135,37 @@ static int fill_cache_write(unsigned char *buf, size_t buf_size, bool once) > return 0; > } > >-static int fill_cache(size_t buf_size, int memflush, int op, bool once) >+static unsigned char *alloc_buffer(size_t buf_size, int memflush) > { > unsigned char *buf; >- int ret; > > buf = malloc_and_init_memory(buf_size); > if (!buf) >- return -1; >+ return NULL; > > /* Flush the memory before using to avoid "cache hot pages" effect */ > if (memflush) > mem_flush(buf, buf_size); > >+ return buf; >+} >+ >+static int fill_cache(size_t buf_size, int memflush, int op, bool once) >+{ >+ unsigned char *buf; >+ int ret; >+ >+ buf = alloc_buffer(buf_size, memflush); >+ if (buf == NULL) Maybe just do: if (!buf)? Checkpatch also seems to suggest this approach: CHECK: Comparison to NULL could be written "!buf" #65: FILE: tools/testing/selftests/resctrl/fill_buf.c:159: + if (buf == NULL) >+ return -1; >+ -- Kind regards Maciej Wieczór-Retman