Summary: | [FR] replace polling with something more sleep-friendly? | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> | ||||||
Component: | wmclock | Assignee: | Michael Shigorin <mike> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P2 | CC: | icesik, ildar, ldv, mike, php-coder, voins | ||||||
Version: | unstable | ||||||||
Hardware: | all | ||||||||
OS: | Linux | ||||||||
Bug Depends on: | |||||||||
Bug Blocks: | 15951 | ||||||||
Attachments: |
|
Description
Michael Shigorin
2008-06-14 20:27:48 MSD
Угу. У меня тоже кандидатов полно. Только руки пока не доходят. Может metabug на эту тему сделать? Только наоборот - надо sleep() на poll()/select() поменять. (In reply to comment #1) > Может metabug на эту тему сделать? Мне тоже так подумалось. > Только наоборот - надо sleep() на poll()/select() поменять. Научишь -- попробую подключиться :) Я так понимаю, задача в уменьшении энергопотребления? Если бы кто научил, то я бы тоже свои докапы подпрвил. select(2): Some code calls select() with all three sets empty, nfds zero, and a non-NULL timeout as a fairly portable way to sleep with subsecond precision. Соответственно надо поменять sleep()/usleep() в mainloop на такой select() и максимально возможно увеличить таймаут. Но желательно, конечно, использовать не пустой сет, а ConnectionNumber() от XOpenDisplay() (макрос такой в X11/Xlib.h). Если ты посмотришь внутрь sleep или usleep, то и обнаружишь приблизительно такую конструкцию. Она имеет смысл только на платформах, где нет sleep/usleep. Так что такое изменение смысла не имеет. Вопрос в том, как написать программу-монитор чего-то, которой по любому положено просыпаться, так, чтобы она просыпалаь по минимуму и также не сильно будила всех остальных. У меня, например, в топе висит wmpower, точнее acpi, разбуженный им. Возможно, это наставит вас "на путь истинный": http://www.lesswatts.org/projects/powertop/patches/ (In reply to comment #7) > Возможно, это наставит вас "на путь истинный": В случае dockapp'ов - не сильно. Тут можно только увеличивать интервалы и переписывать агрессивный poll'инг внешних источников. Судя по http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446680 -- и wmnd уже пилили, вот только патч найти никак не могу... (черкнул человеку) Created attachment 3731 [details]
debian patch
Created attachment 3732 [details]
updated spec
Предлагаю втащить патчи или выдать мне NMU. Виноват, полгода как сделал, да забыл сразу зафиксировать. *** Bug 18546 has been marked as a duplicate of this bug. *** 2 ldv: прошу выдать мне NMU на wmclock ввиду отсутствия реакции майнтейнера. (In reply to comment #14) > 2 ldv: прошу выдать мне NMU на wmclock ввиду отсутствия реакции майнтейнера. Сопровождай на здоровье. Спасибо! wmclock-1.0.12.2-alt3 -> sisyphus: * Mon Sep 14 2009 Michael Shigorin <mike@altlinux> 1.0.12.2-alt3 - built for Sisyphus (closes: #16028) |