Hyperthreaded virtual cores, different C-States?

 
Thread Tools Search this Thread
Special Forums Hardware Hyperthreaded virtual cores, different C-States?
# 1  
Old 10-24-2014
Hyperthreaded virtual cores, different C-States?

turbostat reports C-states of all CPU cores, and includes entries for each hyper-threaded core as well. Often enough the two logical cores on a single physical core will list different C state percentages. Does that make any sense?

Is this reporting the c-states of the few duplicated parts that support hyperthreading, vs the actual computing units in the single physical core?

This isn't a turbostat specific question, that just happens to be the tool I used to display that info. Its more a question about hyperthreading in general.
Edit: CPU is an Intel 5820K hexacore if that matters. Its my first hyperthreaded CPU.

Last edited by agentrnge; 10-24-2014 at 11:21 AM..
# 2  
Old 10-24-2014
Good question.

Virtual cores aren't real cores but Linux treats them as such to simplify its scheduler, to the point they appear in /proc/cpuinfo. As such, they sometimes get tallied in ways that don't make perfect sense.

I don't have a hyperthreaded core to compare with, but I suspect that exploring the structure inside /sys/ would reveal the true, more complex, grouping.
# 3  
Old 10-24-2014
the info in cpuinfo as well as the output of turbostat shows how the virtual/logical cores relate to physical. I would expect logical core 0 and 6, on physical core 0, to have the exact same C state time/percentages. A lot of the time they are. But then sometimes not. Puzzled. Curious.

Log Phys
----------
0 0
1 1
2 2
3 3
4 4
5 5
6 0
7 1
8 2
9 3
10 4
11 5

Edit:

Speaking of linux scheduling. I have also noticed that the scheduler will sometimes put two tasks on the same physical core, but leave another physical core idle. I guess when deciding what core is most available, two virt cores might be idle, while another core is still finishing up something.. Not sure how fast load should ( if it is at all) be reballanced. Gotta break out the os internals books and refresh.

Last edited by agentrnge; 10-24-2014 at 03:08 PM..
# 4  
Old 10-24-2014
Moving lwps from core to core can reduce cache hits, so the dispatching logic may look at longer term stats before reassigning a lwp.
# 5  
Old 10-24-2014
Hyperthreading allows two threads to use different parts of one core -- one might be using the ALU for math, while another does something floating point, or reads from memory, etc. It's still just one core, but sometimes it can slip in an extra cycle here and there using parts of itself which happen to be free.
# 6  
Old 10-24-2014
DGPickett: good point about cache implications of moving from core to core.
# 7  
Old 10-25-2014
Hi Guys,

I'd just like to chuck in my two cents worth on this, I've fallen victim to the perfomance issues that "cache thrashing" can cause and it took me some time to work out what the issue actually was.

Although the issue was in my case "Solaris" based and was due to my configuration of the system - down to me I'm afraid. The system in question a Sun "T" series had been domained and I had set up some containers/zones, due to my lack of understanding I set up a small domain across core boundaries - with the result that the four "VCPU's" actually threads spent a high percentage of time sending cache from core to core.

A lesson well learned at the time, although I think in the later versions of the OS related software and the firmware the impact of such a mistake is reduced - I tend to shy away from configuring domains or VM's - particularly small ones over core boundaries.

Regards

Dave
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Providing virtual machine priority in kvm based virtual machines

Hi All, Is there any way I can prioritize my VMs when there is resource crunch in host machine so that some VMs will be allocated more vcpu, more memory than other VMs in kvm/qemu hypervisor based virtual machines? Lets say in my cloud environment my Ubuntu 16 compute hosts are running some... (0 Replies)
Discussion started by: SanjayK
0 Replies

2. Shell Programming and Scripting

Ps command showing different states for same process

I am using HP-UX,KSH $ jobs -l + 19377 Running nohup ksh cat_Duplicate_Records_Removal.ksh </dev/null >/dev/null 2>&1 & $ ps -p 19377 -fl F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME COMD 401 S catmgr 19377 19491 ... (1 Reply)
Discussion started by: TomG
1 Replies

3. Shell Programming and Scripting

Count no of netstat states

netstat | awk '/server/ {for(i=1;i<2;i++) {getline;print}' Output: ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED TIME_WAIT TIME_WAIT From the above command I'm getting all the states. I want to count the states and write to a file, like "Count of ESTABLISHED... (6 Replies)
Discussion started by: Roozo
6 Replies

4. Solaris

Change hostID of Solaris 10 virtual/guest machine installed by Virtual Box 4.1.12 on Windows-XP host

Trying to set or modify the randomly set hostID of a Solaris 10 virtual/guest machine that I installed on a Windows-XP host machine (using Virtual Box 4.1.12). I was able to set/modify the hostname of the Solaris 10 virtual/guest machine during installation as well as via the Virtual Box... (4 Replies)
Discussion started by: Matt_VB
4 Replies

5. UNIX for Advanced & Expert Users

Unix process states

I am trying to write my own Unix compliant (SUSv4) OS - Just a hobby OS, nothing serious. While going through the standard, I couldn't find any explicit information on process states. What I could find was (excluding the real-time considerations)- From this it can be inferred that the... (2 Replies)
Discussion started by: tinkerbeast
2 Replies

6. UNIX for Dummies Questions & Answers

Have to log out of a virtual terminal twice in order to exit virtual terminals

Not really a newbie, but I have a strange problem and I'm not sure how to further troubleshoot it. I have to log out of a virtual terminal by typing exit, then exit again as in: woodnt@toshiba-laptop ~ $ exit logout woodnt@toshiba-laptop ~ $ exit logout I DON'T have to do this when I'm... (1 Reply)
Discussion started by: Narnie
1 Replies

7. Solaris

meaning of states in sun clusters

Hi Everybody, As I am new to Sun Clusters, Please help me what is "online but not monitored" state of resources and "online - service is online" in status message. Thank you. (1 Reply)
Discussion started by: mayahari
1 Replies

8. IP Networking

laymens terms for netstat states

Ok, I've read the manpages on netstat and it gives a good description of the state values such as CLOSE_WAIT, ESTABLISHED, SYN_RECEIVED, etc.. Can someone give me real world situations where you would get these states. LIke for example if I got SYN_RECEIVED what possible situations would be the... (1 Reply)
Discussion started by: eloquent99
1 Replies
Login or Register to Ask a Question