Re: [PATCH v5 5/5] KVM: selftests: Run dirty_log_perf_test on specific CPUs

From: Sean Christopherson
Date: Thu Oct 20 2022 - 17:42:25 EST


On Mon, Oct 10, 2022, Vipin Sharma wrote:
> @@ -383,6 +383,18 @@ static void help(char *name)
> backing_src_help("-s");
> printf(" -x: Split the memory region into this number of memslots.\n"
> " (default: 1)\n");
> + printf(" -c: Pin tasks to physical CPUs. Takes a list of comma separated\n"
> + " values (target pCPU), one for each vCPU, plus an optional\n"
> + " entry for the main application task (specified via entry\n"
> + " <nr_vcpus + 1>). If used, entries must be provided for all\n"
> + " vCPUs, i.e. pinning vCPUs is all or nothing.\n\n"
> + " Example: ./dirty_log_perf_test -v 3 -c 22,23,24,50\n"
> + " will create 3 vCPUs, and pin vCPU0=>pCPU22, vCPU1=>pCPU23\n"
> + " vCPU2=>pCPU24, and pin the application task to pCPU50.\n"
> + " To leave the application task unpinned, drop the final\n"
> + " entry:\n"
> + " ./dirty_log_perf_test -v 3 -c 22,23,24\n\n"
> + " (default: no pinning)\n");

Any objection to tweaking the formatting to make the output easier to parse? And
to match the indentation used by guest_modes_help(). E.g. This

printf(" -c: Pin tasks to physical CPUs. Takes a list of comma separated\n"
" values (target pCPU), one for each vCPU, plus an optional\n"
" entry for the main application task (specified via entry\n"
" <nr_vcpus + 1>). If used, entries must be provided for all\n"
" vCPUs, i.e. pinning vCPUs is all or nothing.\n\n"
" E.g. to create 3 vCPUs, pin vCPU0=>pCPU22, vCPU1=>pCPU23\n"
" vCPU2=>pCPU24, and pin the application task to pCPU50:\n\n"
" ./dirty_log_perf_test -v 3 -c 22,23,24,50\n\n"
" To leave the application task unpinned, drop the final entry:\n\n"
" ./dirty_log_perf_test -v 3 -c 22,23,24\n\n"
" (default: no pinning)\n");

yields:

-c: Pin tasks to physical CPUs. Takes a list of comma separated
values (target pCPU), one for each vCPU, plus an optional
entry for the main application task (specified via entry
<nr_vcpus + 1>). If used, entries must be provided for all
vCPUs, i.e. pinning vCPUs is all or nothing.

E.g. to create 3 vCPUs, pin vCPU0=>pCPU22, vCPU1=>pCPU23
vCPU2=>pCPU24, and pin the application task to pCPU50:

./dirty_log_perf_test -v 3 -c 22,23,24,50

To leave the application task unpinned, drop the final entry:

./dirty_log_perf_test -v 3 -c 22,23,24

(default: no pinning)


versus:

-c: Pin tasks to physical CPUs. Takes a list of comma separated
values (target pCPU), one for each vCPU, plus an optional
entry for the main application task (specified via entry
<nr_vcpus + 1>). If used, entries must be provided for all
vCPUs, i.e. pinning vCPUs is all or nothing.

Example: ./dirty_log_perf_test -v 3 -c 22,23,24,50
will create 3 vCPUs, and pin vCPU0=>pCPU22, vCPU1=>pCPU23
vCPU2=>pCPU24, and pin the application task to pCPU50.
To leave the application task unpinned, drop the final
entry:
./dirty_log_perf_test -v 3 -c 22,23,24

(default: no pinning)