Hello,
Last week I added a feature to be able to simulate a CPU topology within a
vkernel [1] (the lbits and cbits options). Also I had made tests on other
platforms (thanks Alex H. for running the tests) [2][3].
[1] root@dbsd_64:/var/vkernel# ./boot/kernel/kernel -h
Usage: ./boot/kernel/kernel [-hsUv] [-c file] [-e name=value:name=value:...]
[-i file] [-I interface[:address1[:address2][/netmask]]] [-l
cpulock]
[-m size] [-n numcpus[:lbits[:cbits]]]
[-p file] [-r file]
Arguments:
-c Specify a readonly CD-ROM image file to be used by the
kernel.
-e Specify an environment to be used by the kernel.
-h This list of options.
-i Specify a memory image file to be used by the virtual
kernel.
-I Create a virtual network device.
-l Specify which, if any, real CPUs to lock virtual CPUs to.
-m Specify the amount of memory to be used by the kernel in
bytes.
-n Specify the number of CPUs and the topology you wish to
emulate:
- numcpus - number of cpus
- :lbits - specify the number of bits within APICID(=CPUID)
needed for representing
the logical ID. Controls the number of threads/core
(0bits - 1 thread, 1bit - 2 threads).
- :cbits - specify the number of bits within APICID(=CPUID)
needed for representing
the core ID. Controls the number of core/package (0bits -
1 core, 1bit - 2 cores).
[2] http://bugs.dragonflybsd.org/pastes/407
[3] http://bugs.dragonflybsd.org/pastes/408