[PATCH i-g-t v4 1/2] lib/igt_kmemleak: library to interact with kmemleak

Peter Senna Tschudin peter.senna at linux.intel.com
Mon Feb 3 09:14:19 UTC 2025


Hi Kamil,

Thank you, please see my comments.

On 31.01.2025 13:38, Kamil Konieczny wrote:
> Hi Peter,
> On 2025-01-28 at 16:15:36 +0100, Peter Senna Tschudin wrote:
> 
> sorry one more nit, found by checkpatch, see below.
> 
>> Adds a simple library for interacting with kmemleak and add
>> unit testing for the library. There are two modes intended to
>> integrate with igt_runner:
>> - once: collect kmemleaks after all test completed
>> - each: collect kmemleaks after eachb test completes
>>
>> To use the library include "igt_kmemleak.h", call
>> igt_kmemleak_init(NULL) to check if kmemleak is enabled and finally
>> call igt_kmemleak() to collect kmemleaks. igt_kmemleak() expect the
>> following arguments:
>>   - const char *last_test: Name of the last lest or NULL
>>   - int resdirfd: file descriptor of the results directory
>>   - bool kmemleak_each: Are we scanning once or scanning after
>>     each test?
>>   - bool sync: sync after each write?
>>
>> CC: ryszard.knop at intel.com
>> CC: lucas.demarchi at intel.com
>> CC: katarzyna.piecielska at intel.com
>> Reviewed-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
>> Signed-off-by: Peter Senna Tschudin <peter.senna at linux.intel.com>
>> ---
>>  lib/igt_kmemleak.c       | 274 +++++++++++++++++++++++++++++++++++++++
>>  lib/igt_kmemleak.h       |  16 +++
>>  lib/meson.build          |   1 +
>>  lib/tests/igt_kmemleak.c | 267 ++++++++++++++++++++++++++++++++++++++
>>  lib/tests/meson.build    |   1 +
>>  5 files changed, 559 insertions(+)
>>  create mode 100644 lib/igt_kmemleak.c
>>  create mode 100644 lib/igt_kmemleak.h
>>  create mode 100644 lib/tests/igt_kmemleak.c
>>
> 
> ...cut...
> 
>> +
>> +static const char *igt_kmemleak_unit_testing_resdir = "/tmp";
>> +
>> +igt_main
>> +{
>> +	char unit_testing_kmemleak_filepath[256] = "/tmp/igt_kmemleak_test_XXXXXX";
>> +	int written_bytes;
>> +	int resdirfd;
>> +	int fd;
>> +
>> +	igt_fixture {
>> +		/* resdirfd is used by igt_kmemleak() to store results */
>> +		igt_assert(resdirfd = open(igt_kmemleak_unit_testing_resdir,
>> +					   O_DIRECTORY | O_RDONLY));
>> +
>> +		/* Try to delete results file in case of leftovers,
>> +		 * ignoring errors as the file may not exist
>> +		 */
>> +		unlinkat(resdirfd, KMEMLEAKRESFILENAME, 0);
>> +
>> +		/* Creating a fake kmemleak file for unit testing */
>> +		fd = mkstemp(unit_testing_kmemleak_filepath);
>> +		igt_assert(fd >= 0);
>> +
>> +		written_bytes = write(fd, kmemleak_file_example,
>> +				strlen(kmemleak_file_example));
> 
> Align here or just write this in one line:
> 		written_bytes = write(fd, kmemleak_file_example, strlen(kmemleak_file_example));
> or
> 		written_bytes = write(fd, kmemleak_file_example,
> 				      strlen(kmemleak_file_example));

Good catch, curious why my checkpatch did not catch this one:

---
psennats at friendship7-home:~/UPSTREAM/igt-gpu-tools$ ../linux/scripts/checkpatch.pl 0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#39:
new file mode 100644

WARNING: quoted string split across lines
#394: FILE: lib/tests/igt_kmemleak.c:37:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ed18 (size 80):\n"

WARNING: quoted string split across lines
#416: FILE: lib/tests/igt_kmemleak.c:59:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2ea58 (size 80):\n"

WARNING: quoted string split across lines
#438: FILE: lib/tests/igt_kmemleak.c:81:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e428 (size 80):\n"

WARNING: quoted string split across lines
#460: FILE: lib/tests/igt_kmemleak.c:103:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e008 (size 80):\n"

WARNING: quoted string split across lines
#482: FILE: lib/tests/igt_kmemleak.c:125:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e2c8 (size 80):\n"

WARNING: quoted string split across lines
#504: FILE: lib/tests/igt_kmemleak.c:147:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e378 (size 80):\n"

WARNING: quoted string split across lines
#526: FILE: lib/tests/igt_kmemleak.c:169:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e798 (size 80):\n"

WARNING: quoted string split across lines
#548: FILE: lib/tests/igt_kmemleak.c:191:
+"   [<ffffffff824ca53b>] kernel_init+0x1b/0x170"
+"unreferenced object 0xffff888102a2e0b8 (size 80):\n"

total: 0 errors, 9 warnings, 571 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

0001-lib-igt_kmemleak-library-to-interact-with-kmemleak.patch has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
---



> 
> Regards,
> Kamil
> 
> ...cut...



More information about the igt-dev mailing list