UpdateOctober, 2015: IMHO, if a CPU is advertised as having an n-core X-GHz then an inability to run all n cores at X GHz is false advertising or defective hardware. If you care about performance then you should buy computers that advertise their specs and you should hold the manufacturers to them. Thermal throttling of phones and ultra-thin laptops may be okay, but it should be documented that they cannot always run at full speed.
In the first case the customer was running an AMD Phenom processor. When I told the customer of my suspicions they said that they had recently replaced their processor heat sink. When they put the old heat sink back on their performance problems went away. Myth confirmed!
In the fourth case the customer was running an AMD FX-8150 processor. They had already run temperature monitoring software and it showed reasonable temperatures, but the trace clearly showed that the CPU was being throttled down to 30% of normal speed. This frequency throttling was confirmed using CPU-Z, and when they disabled AMD Turbo Core (thus reducing the maximum CPU speed) the problem went away. CPU throttling confirmed, cause uncertain.
UIforETW has several options to make detection of thermal throttling easier. If Intel Power Gadget is installed then UIforETW will record the CPU temperature, and UIforETW also periodically measures the actual CPU frequency.
So, we know that the CPU is taking longer to do what we believe is a constant workload. But in order to confirm that this slowdown is caused by the processor running more slowly, we really need something else that has a constant CPU workload so that we can see if it is also running more slowly. Luckily we have just such a thing.
As an additional vote take a look at the green spikes. Those are from sidebar.exe which is updating the clock gadget once a second. After the CPU slows down it takes more CPU time to update the clock. That is what made me certain that the CPU was going slower, because the load on those two processes is quite constant, so if they are taking longer to run it must be because the CPU is slower.
If you liked this bit of investigative reporting then you might want to look at other discoveries from the series, such as how a driver caused 4 GB of RAM to be allocated, and why Alt+Tab behaves badly for some people.
Another route is to measure the frequency. I think my measurements are quite accurate, and their overhead is fairly low, but we still have to distinguish between frequency throttling under load and frequency throttling due to lack-of-load (legitimate power saving). So many little complications.
The xperf trace displays whatever the ETW POWER provider puts in the trace and my understanding is that this provider records the frequency which the operating system has asked the CPU to run at. Somebody needs to write code to emit ETW events with the *actual* CPU frequency. CPU-Z could do that, but it would be better if Windows did.
Fun fact: With vsync on, on a 60hz monitor, a game that plays at 30 FPS actually looks better than at 45FPS. If a game is running at 45FPS instead of 60, the hardware is probably struggling. There is possibly some benefit for gamedevs to detect average frame rates between 35 and 55 FPS and switch a 30FPS fixed frame rate.
For Linux you can use the sensors commandline utility, part of lm-sensors. To my surprise the readings are often inaccurate, due to lack of documentation and bugs in BIOS, etc. Turns out that utilities like SpeedFan paper over these problems.
A question about your code: How do you get windows to run all the threads at the same time? In my experience, waking up the thread via semaphore will just make them runable, and Windows will then run them at some (inconstant) time in the future. There is no guarantee that they will run at the same time. Maybe it does not actually matter?
I discovered a similar issue on a large percentage of the corporate laptops at my last workplace. I was eventually able to prove the problem by running CPU-Z, CoreTemp and Prime95. I could watch the CPU temp rise when Prime95 started and then it would peak and CPU-Z would show the clock speed drop and the temperatures start to drop. At the same time the fan would be going crazy.
Actually I/O Data Operations/Sec appears useful for any I/O, and not just for disk I/O just for fun I fired up Steam and ran a Perfmon session against Borderlands 2 and then Left 4 Dead 2 while each was playing/pause/and playing.
The next clue was that Process Explorer showed that a background backup task that sits at a few percent was jumping during these episodes to 10-15%. But killing it had no real impact. So I went back to my hypothesis that somehow throttling was involved, though that made no sense as it was on wall power, set to Max performance, and only 30ish% busy.
As a game player i am experiencing this heating problem. I am playing football manager 2013 regularly. I have a lenovo i7 laptop with 12G RAM and i live in Turkey. The laptop was perfectly woring in the winter but when it is around 30+ C degree in the summer, the fan works non stop. As a result i started experiencing very slow game play.
I doubt that the cpu slows down for some reason or the OS is working on some background stuff. I am able to get back to faster gameplay but not sure what is the reason. I think it can be about heat and also posibly about power saving features of the cpu. They both are releated.
I am also myself a software developer. I would like to say that the game developers pay attention to graphics and sound more then game play experience. If the game is lagging on 10 frames per sec, do i care about great graphics?
Games simply can downgrade the workload in case of low frame rates. This would not be very difficult. As an example it is possible to downgrade simulation accuricy in Football manager 2013 but not for the leage you play! So it would be nice to even further downgrade it.
I would like to be able to play any game with an i7+12G laptop without performance problems. The only solution seems to be that the game developers care about game play experience more then nice graphics.
I am not sure but the performance of the game seems to stay same. Some times it uses %100 memory so i believe that it uses threading to simulate games but the owerall performance does not seem to change much. Anyway it is working at acceptable levels now.
Crosstalk occurs when high-speed signals from one channel unintentionally interfere with internal/external signals due to fringe electric and magnetic fields. Here, the aggressor signal with a higher amplitude affects the victim trace with less amplitude.
Crosstalk is categorized into common impedance coupling and electromagnetic field coupling. The common impedance coupling occurs when multiple signals share a common return path. Electromagnetic field coupling is further categorized into capacitive and inductive coupling, which are the most concerning factors.
Every electrical signal has a varied EM field. Whenever these fields overlay, they produce inductive and capacitive coupling. This coupling makes the aggressor signal interfere with the victim signal, even though they are not physically attached but are in close proximity.
Traditional analysis of crosstalk with a pen and paper is not only troublesome but also a time-consuming process. What we can do is estimate the coupling considering the circuit elements. The coupling due to fringe electric fields is approximated by a capacitor (mutual capacitance) and fringe magnetic field-caused coupling is assessed by an inductor (mutual inductance).
Two traces working parallelly on a plane act as parallel plates of a capacitor separated by a dielectric. The change in the electric field between the aggressor and victim is modeled as a capacitor. We know if there is a voltage change in the capacitor, the electric field changes, and the displacement current is induced. Here, the capacitively coupled current is the crosstalk and the effect is known as parasitic capacitance.
Generally, crosstalk happens between two adjacent traces on the same layer. In addition to that, parallel traces separated by a small dielectric contribute to crosstalk. This refers to broadside coupling.
Here, multiple signals of different frequencies mix up with the victim signal, and the situation gets worse when bandwidth is increased for a faster response. Shielding is not sufficient to prevent this from occurring. You can analyze alien crosstalk using a TDR. For more details, read our post on how TDR impedance measurements work.
NEXT is the ratio of voltage seen on the victim line transmitter end to the voltage that is on the aggressor line.
Our Impedance Calculator uses a 2D field solver to calculate near-end crosstalk based on the following equation:
Far-end crosstalk is the ratio of voltage on the victim line receiver end to the aggressor voltage. It depends on the propagation delay of the aggressor trace (v), trace length (Len), and the signal rise time(RT) along with mutual capacitance and inductance. Here Kf is called the FEXT coefficient.
Whenever there is an imbalance in a differential system, the fields no longer completely cancel and radiate in proportion. Similarly, external fields can induce currents in a differential pair that are not equal in amplitude and opposite in phase. The resultant current is called common-mode current. Common mode crosstalk has more adverse effects on the system performance than the differential mode.
1. Probe placement: Use high-quality probes and connect them to the oscilloscope channels. Place the probes at specific points on the PCB where crosstalk is suspected.
2. Channel configuration: Configure the oscilloscope channels to view the signals from the victim and aggressor traces simultaneously. Assign different colors or styles to easily distinguish between the two signals on the oscilloscope display.
3. Single-ended vs. differential probing: For differential signals, use differential probes to capture the true differential voltage between the two lines. This method provides more accurate measurements for signals that are differentially driven.
4. Eye diagrams: Use the oscilloscope to create eye diagrams for high-speed digital signals. Eye diagrams provide a visual representation of signal quality. Crosstalk can affect the eye pattern, causing it to close partially or completely. A closed-eye pattern indicates poor signal integrity due to crosstalk.
3a8082e126