Cpu limit virtual machines / cpu threads

You can’t do 8 CPUs with 24 threads as that’s considered an invalid topology by Incus. You can do limits.cpu=24 which will use 24 threads on the host along with core scheduling to provide 24 virtual cores in the guest.

If you want topology to be passed through, it needs to map to hardware.
For example if you want to pass in 8 cores and 16 threads (2 threads per core), you could do that with:

limits.cpu=0-7,12-19
```

This will pin the VM to the first 8 physical cores and matching threads, which will then show up in the guest as 8 cores with 2 threads each.