I have an HP DL360 G4. It has a couple of 3.4Ghz processors, these I believe: Link
My question is why does Ubuntu see 4 processors?
That will make 1 core show as two physical cores and two cores as 4. Is that whats going on?
Hyper threading the a is basically a dual set of CPU registers each of which allows for keeping track the execution context of a process even through there is only one core to execute on. This allows for very fast execution context switching so that you can have an executing tread for each of these context so to the OS it looks like there are multiple cores per CPU.
Hyper threading is not as efficient as actually having two cores so an modern OS will detect the differenace between a true CPU and a hyper threading CPU and will try to schedule threads on separate physical CPUs instead of on the one. Linux has had this in the kernel for a while.