Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Nov 20, 2019 8:12 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 20 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Mon Mar 23, 2009 1:46 pm 
Offline

Joined: Wed Sep 19, 2007 1:49 pm
Posts: 45
It would be great to have this kind of option (that many OSes has):

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...)


Hope that helps or at least inspires !


Top
   
PostPosted: Mon Mar 23, 2009 5:37 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
AMD Bus Disconnect
Kernel HLT implementation

AMD PowerNOW!/ Intel SpeedStep / Transmeta LoongRun / VIA LongHaul currently not support, but if you want... do it yourself )


Top
   
PostPosted: Tue Mar 24, 2009 7:20 pm 
Offline

Joined: Wed Sep 19, 2007 1:49 pm
Posts: 45
Ghost wrote:


Ehm... COOL ! :oops:


Top
   
PostPosted: Thu Mar 26, 2009 7:55 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
Хм... :|
А что уважаемые коллеги скажут на эдакий рефракторинг :?:
Code:
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

Не совсем, конечно, 100%-ное воспроизводство функциональности...
Но не может же быть задача checkidle быть настолько сложной :!:
Наворочено ведь - мама не горюй :shock:

В смысле, права-то на SVN у меня есть, только я сейчас толком ничего проверить не могу - бодаюсь (шибко) пока со своим предыдущим рефракторингом (приблизительно: -1Кб) event+shed+хвосты в других файлах
Добью - включу и ЭТО, если у коллег не будет возражений


Top
   
PostPosted: Sat Apr 04, 2009 11:02 pm 
Offline
User avatar

Joined: Tue May 08, 2007 12:44 am
Posts: 346
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.

_________________
Разработчик языка программирования Кантор


Top
   
PostPosted: Fri May 01, 2009 4:15 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Galkov wrote:
А что уважаемые коллеги скажут на эдакий рефракторинг

Что это неравноценная замена: раньше если ядро было чем-то сильно занято и только иногда отдавало управление в checkidle, то checkidle просто передавала управление дальше по списку, не вызывая hlt, а сейчас checkidle всегда ждёт прерывания таймера и возвращает управление не раньше, чем оно придёт.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Fri May 01, 2009 9:00 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
diamond wrote:
а сейчас checkidle всегда ждёт прерывания таймера и возвращает

А мне кажется что и сейчас не всегда, а только когда: а) семафор в нетронутом состоянии б) карусель прокрутилась быстро.
Подробнее надо, кто-то где-то ошибается


Top
   
PostPosted: Fri May 01, 2009 9:08 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Поправка принимается, я имел в виду, что на ситуацию по умолчанию, когда семафор постоянно обнулён и нет процессов, отжирающих ресурсы, накладывается сильная занятость ядра, а остальные процессы по-прежнему быстро отдают управление (либо вообще не забирают), не напрягая семафор.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Fri May 01, 2009 9:25 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
Хм...
Правильно ли понял: osloop крутится например 100 мс (при этом int0 прокручивал карусель за неизмеримо малое время), доходит до checkidle, а тот - оппа, и делает halt :?:
Если так, то упустил. Подумаю... сейчас прямо.


Top
   
PostPosted: Fri May 01, 2009 10:10 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
Подумал.
Если вопрос именно в этом :idea:, то придется вернуть idlemem, как это не прискорбно
Примерно так:
Code:
checkidle:
        pushad
        mov  ebx,[idlemem]               ; было [timer_ticks]
        ............................
      idle_exit:
        Mov  [idlemem],eax,[timer_ticks] ; добавлено
        popad
        ret

diamond, если ИМЕННО ЭТО Вас беспокоит (в смысле, я правильно понял) - минута на фиксинг, и всего делов.


Top
   
PostPosted: Sat May 02, 2009 11:33 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Да, именно это.


Top
   
PostPosted: Sat May 02, 2009 12:59 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
Ну тогда осталось только повторить вопрос "А что теперь уважаемые коллеги скажут на эдакий рефракторинг" :)


Top
   
PostPosted: Sat May 02, 2009 2:56 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
мне вот не понятно зачем в sys_sendwindowmsg стоит cli ??? мы от них избавится не можем, а тут новые....
и зачем крос регистры в неё вернул?


Top
   
PostPosted: Sat May 02, 2009 3:32 pm 
Offline

Joined: Fri Nov 21, 2008 8:16 am
Posts: 180
1) Ставил не я.
2) Но, мне показалось, что доступы к счетчикам и содержимому буфера обязаны проходить в режиме interlocking.
3) Второе более приоритетно, чем стремление убрать CLI. Альтернатива - мьютексы... Думается, в данном конкретном случае, чисто временные затраты на него превзойдут время закрытия с помощью CLI.
4) Вот те раз. Мне казалось что они БЫЛИ, а я их как раз убрал.


Last edited by Galkov on Sat May 02, 2009 4:52 pm, edited 1 time in total.

Top
   
PostPosted: Sat May 02, 2009 3:39 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
мдя, чет не внимательный я сегодня, cli ещё с 665ой, а про регистры - не то посмотрел, извиняюсь.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 20 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited