The full tickless mode that is activated with e.g. nohz_full=cpux-cpuy indeed is only effective if there is just one runnable task on a each nohz_full CPU:
Adaptive-ticks does not do anything unless there is only one
runnable task for a given CPU, even though there are a number
of other situations where the scheduling-clock tick is not
The syntax is : kworker/%u:%d%s (cpu, id, priority)
Don't know about the u, looks like it designates unbound cpu
How interpret kworker threads names?
A stack is effectively an array -- it contains a bunch of words in contiguous memory, There is an important restriction -- it can only grow and shrink at one end (hence FILO -- First In Last Out) which is also LIFO.
Important difference from array too: Processor stack is logically split into Frames, and (unlike arrays), each frame can be a different size ...
The top man page describes the field you're looking for:
nTH -- Number of Threads
The number of threads associated with a process.
(number above would probably change depending on OS and top version).
Interactively, you can use the f (Fields Management) key, then move down to nTH, activate it with space, select it for column display order ...
If you want to see just that LWP process, ps -e -q 10172. If you want to see all the related threads, then you can do ps -eL -q 10172
So, for example, on my machine rsyslog has threads:
PID LWP TTY TIME CMD
22316 22316 ? 00:00:00 rsyslogd
22316 22318 ? 00:02:23 in:imjournal
22316 22319 ? 00:00:00 in:imudp
22316 22320 ? ...
In Linux there is a scheduler.
Some systems will push work to faster/cooler/more-efficient cores but the default behavior is an ordered stack.
The software you are running needs to take advantage of multiple cores for any benefit to be had, so it may be that your workload can only be split into 32 threads by your choice of software (or configuration).