Hope that helps or at least inspires !patchworks wrote:Windows
> Software cooling an Athlon XP/1600 (on a Gigabyte 7VTXE+) (article with some sources)
> OpenPower - *will be* a CPU cooling software for Win 9x
> cpICE 1.12 - HLT based CPU cooling VxD (freeware with asm sources)
> CoolON Project - Software Cooling Function Enabler for 32bit Athlon Series on Win32
Linux
> FVcool - This is a VCool for FreeBSD (with BSD sources, of course)
> athcool - a small utility, enabling/disabling Powersaving mode for AMD Athlon/Duron processors. (seems the most updated)
> PowerNowd - a very simple program that will adjust the speed of your CPU depending on system load. (bit different approach...)
[feature request] HLT (soft) CPU cooling/powersaving...
-
It would be great to have this kind of option (that many OSes has):
AMD Bus Disconnect
Kernel HLT implementation
AMD PowerNOW!/ Intel SpeedStep / Transmeta LoongRun / VIA LongHaul currently not support, but if you want... do it yourself )
Kernel HLT implementation
AMD PowerNOW!/ Intel SpeedStep / Transmeta LoongRun / VIA LongHaul currently not support, but if you want... do it yourself )
Ehm... COOL !
Хм...
А что уважаемые коллеги скажут на эдакий рефракторинг
Не совсем, конечно, 100%-ное воспроизводство функциональности...
Но не может же быть задача checkidle быть настолько сложной
Наворочено ведь - мама не горюй
В смысле, права-то на SVN у меня есть, только я сейчас толком ничего проверить не могу - бодаюсь (шибко) пока со своим предыдущим рефракторингом (приблизительно: -1Кб) event+shed+хвосты в других файлах
Добью - включу и ЭТО, если у коллег не будет возражений
А что уважаемые коллеги скажут на эдакий рефракторинг
Code: Select all
checkidle:
pushad
mov ebx,[timer_ticks]
call change_task
jmp idle_loop_entry
idle_loop:
cmp ebx,[timer_ticks]
jne idle_exit
rdtsc ;call _rdtsc
mov ecx,eax
hlt
rdtsc ;call _rdtsc
sub eax,ecx
add [idleuse],eax
idle_loop_entry:
cmp [check_idle_semaphore],0
je idle_loop
dec [check_idle_semaphore]
idle_exit:
popad
ret
Но не может же быть задача checkidle быть настолько сложной
Наворочено ведь - мама не горюй
В смысле, права-то на SVN у меня есть, только я сейчас толком ничего проверить не могу - бодаюсь (шибко) пока со своим предыдущим рефракторингом (приблизительно: -1Кб) event+shed+хвосты в других файлах
Добью - включу и ЭТО, если у коллег не будет возражений
Be careful! Bus disconnect killed my motherboard, just the Gigabyte 7VTXE+ with Athlon XP 1700+ (Palomino), no overclocking. After some months of use of S2k program under Windows, the power supply and the motherboard capacitors become damaged. I'd got the same result with Abit motherboard on VIA chipset in some other place.
More time later I've read somethere, that bus disconnect is disabled by default on many old motherboards for Athlon XP, because they have no proof against current abrupts, appeared as result of bus disconnect. nForce2-based motherboards already use bus disconnect with multiply 2 or 4, enabled in BIOS by default.
More time later I've read somethere, that bus disconnect is disabled by default on many old motherboards for Athlon XP, because they have no proof against current abrupts, appeared as result of bus disconnect. nForce2-based motherboards already use bus disconnect with multiply 2 or 4, enabled in BIOS by default.
Что это неравноценная замена: раньше если ядро было чем-то сильно занято и только иногда отдавало управление в checkidle, то checkidle просто передавала управление дальше по списку, не вызывая hlt, а сейчас checkidle всегда ждёт прерывания таймера и возвращает управление не раньше, чем оно придёт.Galkov wrote:А что уважаемые коллеги скажут на эдакий рефракторинг
Ушёл к умным, знающим и культурным людям.
А мне кажется что и сейчас не всегда, а только когда: а) семафор в нетронутом состоянии б) карусель прокрутилась быстро.diamond wrote:а сейчас checkidle всегда ждёт прерывания таймера и возвращает
Подробнее надо, кто-то где-то ошибается
Поправка принимается, я имел в виду, что на ситуацию по умолчанию, когда семафор постоянно обнулён и нет процессов, отжирающих ресурсы, накладывается сильная занятость ядра, а остальные процессы по-прежнему быстро отдают управление (либо вообще не забирают), не напрягая семафор.
Ушёл к умным, знающим и культурным людям.
Хм...
Правильно ли понял: osloop крутится например 100 мс (при этом int0 прокручивал карусель за неизмеримо малое время), доходит до checkidle, а тот - оппа, и делает halt
Если так, то упустил. Подумаю... сейчас прямо.
Правильно ли понял: osloop крутится например 100 мс (при этом int0 прокручивал карусель за неизмеримо малое время), доходит до checkidle, а тот - оппа, и делает halt
Если так, то упустил. Подумаю... сейчас прямо.
Подумал.
Если вопрос именно в этом , то придется вернуть idlemem, как это не прискорбно
Примерно так:
diamond, если ИМЕННО ЭТО Вас беспокоит (в смысле, я правильно понял) - минута на фиксинг, и всего делов.
Если вопрос именно в этом , то придется вернуть idlemem, как это не прискорбно
Примерно так:
Code: Select all
checkidle:
pushad
mov ebx,[idlemem] ; было [timer_ticks]
............................
idle_exit:
Mov [idlemem],eax,[timer_ticks] ; добавлено
popad
ret
Да, именно это.
Ну тогда осталось только повторить вопрос "А что теперь уважаемые коллеги скажут на эдакий рефракторинг"
мне вот не понятно зачем в sys_sendwindowmsg стоит cli ??? мы от них избавится не можем, а тут новые....
и зачем крос регистры в неё вернул?
и зачем крос регистры в неё вернул?
1) Ставил не я.
2) Но, мне показалось, что доступы к счетчикам и содержимому буфера обязаны проходить в режиме interlocking.
3) Второе более приоритетно, чем стремление убрать CLI. Альтернатива - мьютексы... Думается, в данном конкретном случае, чисто временные затраты на него превзойдут время закрытия с помощью CLI.
4) Вот те раз. Мне казалось что они БЫЛИ, а я их как раз убрал.
2) Но, мне показалось, что доступы к счетчикам и содержимому буфера обязаны проходить в режиме interlocking.
3) Второе более приоритетно, чем стремление убрать CLI. Альтернатива - мьютексы... Думается, в данном конкретном случае, чисто временные затраты на него превзойдут время закрытия с помощью CLI.
4) Вот те раз. Мне казалось что они БЫЛИ, а я их как раз убрал.
Last edited by Galkov on Sat May 02, 2009 4:52 pm, edited 1 time in total.
мдя, чет не внимательный я сегодня, cli ещё с 665ой, а про регистры - не то посмотрел, извиняюсь.
Who is online
Users browsing this forum: No registered users and 0 guests