Maybe you have installed Windows on a XenServer and you have set 4 Virtual CPUs. But in Windows, you see only 2 CPU (2 sockets). The problem is that standard Windows versions are limited to two socket with an “unlimited” number of cores. It seems a bit stupid IMHO.

By default Xen set one socket by core, then Windows sees only two CPUs. But it is easy to fix that. It works fine with the free version of XenServer (where xxxxxx is the UUID of your Virtual Machine; use xe vm-list):

xe vm-param-set platform:cores-per-socket=2 uuid=xxxxxx
xe vm-param-set VCPUs-max=4 uuid=xxxxxxx
xe vm-param-set VCPUs-at-startup=4 uuid=xxxxxx

In this example, you will have 2 sockets with 2 cores by socket.