High CPU load? when Error displayed
Chris Evans (457) 1614 posts |
When a non multitasking error box appears if it is left uncancelled for say half an hour the CPU temperature will have risen significantly! If there are any other boards that can report CPU temperature, can someone run a test please? n.b. I was generating the error by trying to copy a directory recursively. |
Chris Johnson (125) 825 posts |
I’ll give it a try later this afternoon. |
John Williams (567) 768 posts |
I know you will know this, but, for the benefit of new users, modules exist to cancel such error boxes automagically, and, if SysLog is operating, such Wimp errors can be logged for future reference. This can be very useful for unattended machines showing errors during normal operation. I use the module NoError in Tasks in conjunction with the application WimpLog which loads the reporting module. This is on a RPi. |
Rick Murray (539) 13840 posts |
I wrote a module just the other day to do this; and record the error message to DADebug. Once the name has been allocated, I can release it if anybody is interested. Didn’t know NoError had been 32 bitted. |
Chris Johnson (125) 825 posts |
The ARMX6 is probably not the best machine to demonstrate this. Mine is in a ‘Spire’ box, which is larger than the conventional shoebox, and has a fan blowing away. I have not seen the cpu reach over 40 deg even in the heights of a Scottish summer! Anyway. CPU temperature while idling = 33.2 C |
Chris Evans (457) 1614 posts |
Thanks for the info lads. We’ve also found that if you say have an obey file that you run from the desktop that ends with ‘Press space or click mouse to continue’ this also causes the temperature to rise. Anyone with a PandaBoard system set up that they could test on please? |
Chris Johnson (125) 825 posts |
I can do that as well – the PandaRO is just idling at the moment. |
Chris Johnson (125) 825 posts |
Okay – test done. Start: By the way – I have an enhanced version of CPUClock + CPUTmpMon which besides monitoring cpu speed and cpu temp, also allows automatic throttling of the cpu speed if the temperature exceeds a chosen temperature. This combination works on BB, PB, iMX6 and IGEPv5, choosing the correct version of CPUTmpMon to use depending on the hardware being used. This relates to the other thread on hardware determination, since CPUClock interrogates the hardware in order to run the correct CPUTmpMon. If you have a PandaRO, or a PB fitted with the CJE RTC module, then CPUClock will also read the case environment temperature. If anyone would like a pre-release version to try, let me know – chris at chrisjohnson dot plus dot com. |
Rick Murray (539) 13840 posts |
PB – Pi model B? If so, I’d be interested in knowing the core temperature. The CJE module usually tells me that it is 31.5C, which seems a bit high given it is about 12-13C in here… Best wishes, Rick. |
Chris Johnson (125) 825 posts |
No, sorry. PB = PandaBoard. Maybe I should have said OMAP3, OMAP4, OMAP5 and iMX6. |
Chris Evans (457) 1614 posts |
The Pi has temperature sensors within the SoC, unfortunately we can’t read them yet from RISC OS. AIUI it requires the video driver to be changed to allow access. Thanks Chris J for the PandaBoard results. The Ti chips are rated to 90C so quite a lot of room and still be within specs. ISEE state that prolonged use at greater than 90C will reduce life expectancy and that chip will reset if it gets to 110C. I’m hoping that it is an easy change to reduce the CPU load which in turn will allow the dynamic clock speed to kick in. |
Will Ling (519) 98 posts |
For what it’s worth, I noticed this phenomenon some years ago, testing Oregano in certain conditions on a somewhat overclocked Kinetic which I happened to be monitoring the tempreture on. From what I recall I believe the explanation at the time was that the CPU ends up running tight loops, mostly from cache, as there is not a lot going on so there are few pauses for memory access etc, so effectively runs flat out and hotter. I’d imagine by stalling the wimp so you have no task swapping you would significantly reduce memory access and create the same conditions. If this is the case then I doubt the temperature would rise much more after a prolonged period. |
Jeffrey Lee (213) 6048 posts |
Yeah, that certainly sounds like a reasonable explanation for older systems. For modern systems the main problem will be that the Wimp isn’t making use of the Portable_Speed/Portable_Idle power saving calls – normally when a machine is sat idle at the desktop the Wimp will spot that nothing much is happening and will switch into a “low power” mode where it reduces the CPU clock speed, and then if Wimp_Poll is called and there aren’t any events left it will put the CPU to sleep until the next interrupt (or something like that – but the end result is that the CPU should spend ~95% of the time asleep) It shouldn’t be too hard to fix the issues mentioned here, and it might be that we can just hook up the routine which regulates Wimp_Poll. |
Jeffrey Lee (213) 6048 posts |
This is now done, and seems to have solved the issues. |
Chris Evans (457) 1614 posts |
Thanks. Amazing service Jeffrey. |