Unix/Linux Go Back    


Hardware Device drivers, hardware compatibility issues, motherboards, disk drives, graphics cards and other hardware related topics.

Hyperthreaded virtual cores, different C-States?

Hardware


Closed    
 
Thread Tools Search this Thread Display Modes
    #1  
Old Unix and Linux 10-24-2014
agentrnge agentrnge is offline
Registered User
 
Join Date: Jan 2009
Last Activity: 10 October 2016, 11:24 AM EDT
Location: New Jersey, USA
Posts: 21
Thanks: 4
Thanked 4 Times in 3 Posts
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 10:21 AM..
Sponsored Links
    #2  
Old Unix and Linux 10-24-2014
Corona688 Corona688 is offline Forum Staff  
Mead Rotor
 
Join Date: Aug 2005
Last Activity: 29 May 2017, 6:58 PM EDT
Location: Saskatchewan
Posts: 22,189
Thanks: 1,093
Thanked 4,175 Times in 3,862 Posts
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.
Sponsored Links
    #3  
Old Unix and Linux 10-24-2014
agentrnge agentrnge is offline
Registered User
 
Join Date: Jan 2009
Last Activity: 10 October 2016, 11:24 AM EDT
Location: New Jersey, USA
Posts: 21
Thanks: 4
Thanked 4 Times in 3 Posts
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 02:08 PM..
    #4  
Old Unix and Linux 10-24-2014
DGPickett DGPickett is offline Forum Advisor  
Registered User
 
Join Date: Oct 2010
Last Activity: 1 February 2016, 3:35 PM EST
Location: Southern NJ, USA (Nord)
Posts: 4,673
Thanks: 8
Thanked 587 Times in 560 Posts
Moving lwps from core to core can reduce cache hits, so the dispatching logic may look at longer term stats before reassigning a lwp.
Sponsored Links
    #5  
Old Unix and Linux 10-24-2014
Corona688 Corona688 is offline Forum Staff  
Mead Rotor
 
Join Date: Aug 2005
Last Activity: 29 May 2017, 6:58 PM EDT
Location: Saskatchewan
Posts: 22,189
Thanks: 1,093
Thanked 4,175 Times in 3,862 Posts
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.
Sponsored Links
    #6  
Old Unix and Linux 10-24-2014
agentrnge agentrnge is offline
Registered User
 
Join Date: Jan 2009
Last Activity: 10 October 2016, 11:24 AM EDT
Location: New Jersey, USA
Posts: 21
Thanks: 4
Thanked 4 Times in 3 Posts
DGPickett: good point about cache implications of moving from core to core.
Sponsored Links
    #7  
Old Unix and Linux 10-25-2014
gull04 gull04 is offline Forum Advisor  
Registered User
 
Join Date: Dec 2004
Last Activity: 25 May 2017, 4:54 AM EDT
Location: Isle-of-Skye
Posts: 703
Thanks: 17
Thanked 127 Times in 113 Posts
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
Sponsored Links
Closed

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Linux More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Count no of netstat states Roozo Shell Programming and Scripting 6 07-31-2014 01:56 AM
Change hostID of Solaris 10 virtual/guest machine installed by Virtual Box 4.1.12 on Windows-XP host Matt_VB Solaris 4 04-29-2012 11:56 AM
Unix process states tinkerbeast UNIX for Advanced & Expert Users 2 02-22-2012 05:15 AM
Have to log out of a virtual terminal twice in order to exit virtual terminals Narnie UNIX for Dummies Questions & Answers 1 02-24-2010 01:48 AM
laymens terms for netstat states eloquent99 IP Networking 1 03-10-2003 10:02 AM



All times are GMT -4. The time now is 09:09 AM.