Как стать автором
Обновить

Комментарии 67

Есть ли похожие патчи для других моделей? Например на Optimus One как с этим вообще обстоит дело?
И есть ли похожие системы на нетбуках/ноутбуках и модули ядра?
Для Optimus One есть ядро Goldenleaf специально заточенное под энергосбережение. У меня телефон с ним стал на день дольше работать.
_http://forum.xda-developers.com/showthread.php?t=1227682
Да чувак круче чем раз в год выключающие свет на час.

С надеждой ждёт релиза для motorola defy
А что на defy моторола открыла загрузчик?
Это как-то мешает мне ждать чего-то?
Интересно, можно ли это реализовать на HTC аппаратах?
А у вас телефон с google-talk video-chat? Написано, что это баг гуглток.
>> Но беглое изучение ядра Linux показало, что в операционной системе имеется только поддержка IDLE.

Баг гуглток? Не, не видел…
Про баг речь идет при уже пропатченном ядре, а человек интересуется возможен ли такой патч на НТС.
очевидный бардак в разработке android kernel. Зато ядра каждые пол года. Подозреваю очевидную вещь — у руля фанатик. Как бы не было сложно синхронизироваться — каждые пол года новое ядро это зло! Если бы я руководил разработкой — раз год, раз или даже раз в два. Это экономия времени для вендоров типа самсунга… А значит более быстрые релизы свежих версий. Ничего такого феноменального в ядре каждые пол года не происходит, а если и происходит — бекпорт.
android kernel? Пол года? По сути можно ядро хоть каждый день обновлять модули главное иметь, обновление ядра дает повышение качества работы и увеличение возможностей. Ради примера например со старыми ядрами десктопная ось запускается в 1.5 раза дольше.
скорость запуска влияют инит скрипты. Зато перфоманс проседает заметно начиная с 28 версии. Особенно заметно в тройке. Еще про abi не забываем. В итоге профита ноль, а накладные расходы колосальны.
У гугла порой не хватает жесткости руководства. Идут на поводу детским доводам девелоперов, молодая компания. Если бы я был Рубином я бы пол отдела разогнал за такие грабли на мобильном устройстве. Ну или лишил премий.
Думаю, их цель — не сделать идеальную мобильную систему, а наводнить рынок по возможности дешёвыми устройствами под управлением Android.
Вы вообще в код смотрели?
Там куча платформо-зависимых изменений, тут Google вообще не при делах, такими вещами должен заниматься _производитель_. Модуль, добавляющий режим DEEP IDLE сводится к добавлению следующих атрибутов в sysfs: enabled, idle_stats, reset_stats и version.
Интересует нас только первый пункт, остальное это отображение статистики по времени, которое было проведено в idle, сброс этой статистики и версия модуля соответственно.
А вот запись единицы в файл атрибута enabled (echo «1» > enabled) как раз и врубает наш deep idle, фактически просто выставляя значение переменной deepidle_enabled. Модуль экспортит функцию bool deepidle_is_enabled(void) для получения значения этого флага. В зависимости от значения этого флага при попытке перехода системы в idle при определённых условиях может быть активирована функция s5p_enter_didle(true), которая является абсолютно _аппаратно-специфичной_. Она уже порождает выполнение кучи низкоуровневого кода.

К чему вся эта басня? А к тому, что это именно производитель конкретного железа не озаботился о данной проблеме.
И для тех, кому было интересно, можно ли этот патч адаптировать для смартфонов на других процессорах, поясню: нет, нельзя. Данный патч специфичен для SoC Samsung S5PV210. Это значит что данный патч будет работать не только на Nexus S, но и на любой другой железке, построенной на том же процессоре.
Строго говоря, есть высокая вероятность того, что у других процессоров есть аналогичные возможности, аналогичным образом не использующиеся и возможен аналогичный (но другой) патч для них.
А объясните нубу, пожалуйста — изменения в ядро они вносятся отдельно? Как вообще это происходит? Надо заново перепрошивать телефон?
Конкретно в данном случае, изменения внесены непосредственно в низкоуровневую часть ядра, которая всегда в него жёстко «вкомпиливается». Так что да, нужно перепрошивать телефон.
В случаях, когда нужную функциональность удаётся добавить с помощью модуля ядра, при использовании рутованного телефона перепрошивка является не обязательной, можно просто подгрузить новый модуль с помощью insmod/modprobe.
Если еще помните, укажите revid'ы этих реальных функциональных изменений. Потому что попытка чтения commit log'а показывает, что 90% изменений — типично script-kiddies'овские штучки типа «newer glitch logo» да патчи каких-то левых для ядра скриптов.
Смотрел я вот этот коммит: github.com/Ezekeel/GLaDOS-nexus-s/commit/0ad0e3261895844e9d7983c3332ec23b6d039978
Раскручивать изменения следует от файла drivers/misc/deep_idle.c, как раз там экспортятся sysfs атрибуты, через которые всё это включается. А далее смотрим кто использует функцию deepidle_is_enabled, думаю дальше разберётесь и всё сами увидите.
вот только это устройство nexus s. И софтовая часть за гуглом. Самсунг им присылает хардварные ревизии, а они там уже извращаются.
вот только это устройство nexus s. И софтовая часть за гуглом. Самсунг им присылает хардварные ревизии

Нет, нет и ещё раз нет.
1. S5PV210 — это application процессор, применяемый не только в Nexus S. Он может применяться ещё в миллионе различных железок, посему Nexus S в данном случае лишь частный случай.
2. Низкоуровневая софтовая часть за тем, кто точно знает как эта железка устроена. В данном случае это Samsung, что подтверждают копирайты в коде:
Copyright © Samsung Electronics Co. Ltd

3. Google ожидает получить _готовый_ BSP Задача Google в данном случае, сводится к допиливанию именно пользовательского функционала, но никак не кода для работы с железом.
Спорить не буду, но копирайту там может быть потому что основанно на ядре к galaxy S?
Вот они, плюсы открытого ПО — то какой-то австралийский врач, никогда не обучавшийся программированию, пишет планировщик для ядра, который уделывает по производительности существующие аналоги, то теперь вот неизвестный разработчик, о котором известен лишь ник на форуме, уменьшает энергопотребление андроида на 55%, чего не смогли добиться огромные корпорации Гугл и Самсунг.
Ну так, они это планировали подать через полгода как адовую фичу, а тут такая подлянка.
Да вообще не факт что хоть как-то планировали, скорее всего, никто просто совершенно не заморачивается на настоящей оптимизации системы с т.з. требований, предъявляемых к мобильным телефонам. Там много вопросов на самом деле.
Современным программистам некогда заниматься оптимизацией, а временами и незачем. От них требуют быстрее, выше, мощнее, глубже, и всё это в очень сжатые сроки. А железо позволяет не заморачиваться и писать неэффективный код.

ИМХО единственные программисты, которые что-то да знают о оптимизации — это embedded(тот самый, адский, с считаными килобайтами RAM и flash) и highload, где только наращиванием вычислительной мощи не обойдёшься.
Думаю, что скорее всего некогда. Это вопрос собственно не к программистам ведь, а к проект-менеджерам. На самом деле, с этой стороны подход Apple мне больше нравится — пусть немного, но лучше отлажено. Хотя косяки и у них конечно есть, просто не думаю что у них дело в чем-то простом оказывается.
Тоесть то что гугл не осилил элементарное, причем просто даже не реализовал уже написанное, это по вашему плюсы опен соурса?
В закрытых исходниках тупизны столько же, мы просто её не видим.
Думаю даже больше, опасно же выкладывать если кто-то смотрит :)
в закрытых исходниках тупака и быдлокода в среднем ощутимо больше, чем в открытых проектах. Там тупак и быдлокод хоть как-то фильтруют.
Я думаю, тут всё упирается в то, что Android должен ровно работать на огромном количестве железа. А такие тонкие манипуляции с железом не всегда гладко работают.
Интересно, речь про выигрыш в «самолетном режиме» (когда все радиожелезки выключены), а дает ли deep idle какой-то видимый выигрыш при стандартном режиме использования когда сотовая связь и интернет включены?
Видимо, что-то может. И это что-то немалое.

Обычный режим — это с активным радио, но без мультимедиа, так что выигрыш тоже должен быть.
А что вообще может выключится в смартфоне при проигрывании мультимедиа? А если это будет еще и обычный режим работы, с активной радио-частью?
Всё. распаковали из MP3 100мС звука, что заняло 30 мС процессорного времени. Передали в буфер звуковой карты. Следующие 70 мС вообще можем не включаться. Это если на пальцах,
Надеюсь в Cyanogenmod внедрят эту киллер-фичу.
Протестировал ли Ezekeel нормальную работу с телефонией, Wi-Fi и голубым зубом при входе и выходе в/из DEEP IDLE, или только музыку повоспроизводил?
Как же хочется чуть более технических и чуть менее «журналистских» статей, если уж кто-то скомпилировал новость и 10500 страниц обсуждения на xda-developers…

Лично знаю, что инженеры самсунга и htc всех корейских собак съели на энергопотреблении и его оптимизации. Значит либо есть какая-то серьезная причина этот режим не включать, либо это такой косяк, что ОЙ.
Судя по количеству багфиксов к этому патчу, а их уже 14 штук, разработчик тестирует это, и скорее всего не один.
Судя по количеству багфиксов, дело очевидно не столь простое, и ему, видимо, еще далеко до статуса production. Это я к коментариям наверху «почему сразу/до сих пор не сделали?»
Причина… Ну, например, «мы выпустили новый смартфон в 2,5 раза блоее эффективным энергопотреблением!!!», а всего-то пропатчат ядро в паре строк
Такое бывает только в сказках :)
То, что инженеры съели собак, еще не значит, что им хватает времени заниматься этим. Это раньше платформа не менялось годами, а новые модели выходили нечасто. Последние же 2 года идет гонка платформ, да и на каждой платформе успевают выпустить аппаратов не меньше, чем раньше. Плюс, возможно, действительно, прием «туз в рукаве» — к концу жизни платформы выпускают какой-нибудь новый аппарат на ней, с более оптимизированным софтом, и выкачивают таким образом еще немного денег из старого железа.

Неспроста же практически всегда у кастомных прошивок энергопотребление ниже, чем у стандартных. У НТС вон, в стандартных прошивках было что-то (не помню что именно, то ли скрипт, то ли модуль ядра), запрещавший понижать частоту процессора. Убираешь его — сразу дольше работает, причем проблем никаких не возникает.

Багфиксы там, с виду, не то чтобы фиксы, а скорее тюнинг-оптимизация, на уровне «а что если не просыпаться на этот сигнал, а на этот наоборот, просыпаться?». Да и автор решил похоже привлечь народ для массового тестирования.
Отличное ядро) сижу на нем) спасибо Ezekeel!
Т.е. у вас Nexus S с патчами от Ezekeel? Тогда расскажите хоть насколько выросла автономность в реальных условиях. Сколько стал жить телефон?
дольше стал жить, на пол дня. при активном использовании держит 1.8 дня
А какой режим работы?
3g\edge, Wifi, игры, музыка, продолжительность звонков?

P.S. у меня Nexus One, на MIUI он живет 3 суток с постоянно включенным EDGE, +wifi около 30 минут в день. + 2 часа разговоров в день.
Синхронизация включена?
Да, конечно, синхронизация включена, есть 1 виджет погоды от yr.no на 7 дней. Почта приходит сразу.
А sleep of death наблюдается?
Всегда включен EDGE и синхронизация. 5 часов переписки в WhatsApp, Twitter, почта, 4 часа Wi-Fi.
не наблюдается, только если играться с UV.
У меня на стоковых значениях CM иногда наблюдается, особенно на smartassV2 и это крайне печально.
у меня ondemand работает.
Прошил GLaDoS, вроде как более отзывчиво стало, что удивительно. Потестируем время работы.
cfs или bfs?
cfs и был cfs.
Вот, небольшой тест
До разрыва это стоковое ядро CM7.1 nightly, после разрыва это glados. Действительно наклон немного меньше :) Из-за чего такой дроп — не знаю. И да, Wi-Fi был включен, не знаю почему он не отображается до разрыва.

i.imgur.com/4cdhT.jpg
что вы называете разрывом?
Ну там на графике посередине разрыв
отличное ядро, думаю)
Скажите, а как заменяется ядро на телефоне?
Есть ли туториалы по этому?
На Xperia x10i встречал кто патчик такой?
Дело не в gtalk. Неправильный гтолк не даёт ядру войти в этот режим, но если этого режима нет, то правильный гтолк не поможет.
как тогда проверить есть этот режим или нет?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории