Тим Берд (Tim Bird), инженер компании Sony и участник группы разработки встраиваемых систем в Linux Foundation, направил в список рассылки Linux-ядра письмо (https://lkml.org/lkml/2011/12/19/508) с анонсом проекта Android Mainlining, цель которого продвинуть в ядро Linux патчи, необходимые для работы платформы Android.
К проекту уже присоединились некоторые независимые разработчики, а также компании, занимающиеся производством встраиваемой и мобильной техники. Для координации работы создана страница на сайте elinux.org (http://elinux.org/Android_Mainlining_Project), на которой опубликован список патчей, состояние проекта на текущий момент, а также преимущества, которые он даст производителям устройств:
- Возможность использования последней версии ядра Linux при портировании Android;
- Концентрация усилий на одном ядре при разработке драйверов устройств;
- Упрощение процедуры разработки и сопровождения кода.
Также на сайте опубликован порядок действий, который необхо...URL: https://lkml.org/lkml/2011/12/19/508
Новость: http://www.opennet.me/opennews/art.shtml?num=32630
Так вроде бы ядро только-только вычистили от блокировок. И снова хотят их туда запихнуть? Или это какие-то другие блокировки?
Не, это другие
Не, это не про то.Здесь речь идёт о блокировке подсистемы ядра целиком по команде из userland'а, там же написано: управление питанием линуксового ядра должно быть заблокировано, если, например, идёт разговор по телефону.
Если, например, идет разговор по телефону(gsm/3g/cdma), то почему ядру нельзя усыпить wifi или usb? Какую-то кривую логику пытаются засунуть в ядро.
новость целиком прочитай
Это не те блокировки, о которых вы говорите
> Или это какие-то другие блокировки?И впрямь другие:
http://lwn.net/Articles/318611/
http://lwn.net/Articles/319860/
http://lwn.net/Articles/385103/
Этих патчей никогда не будет в обычном ядре из твоего дистрибутива. Успокойся.
90% кода ведра не используются и даже не включаются в известные дистрибутивы (в их пользовательские версии)
> Этих патчей никогда не будет в обычном ядре из твоего дистрибутива. Успокойся.Тоже мне кассандра.
> 90% кода ведра не используются и даже не включаются в известные дистрибутивы
> (в их пользовательские версии)Вы прежде чем такую чепуху рассказывать -- потрудились бы хоть грубую оценку сделать...
$ for i in config-3*; do echo $i: $((100*`fgrep -c "not set" $i`/`wc -l < $i`)); done
config-3.0.0-2-486: 14
config-3.1.0-2-default: 8
config-3.1.5-6.fc16.i686: 16
config-3.1.5-std-def-alt1: 8Это соответственно ядра из репозиториев debian, opensuse, fedora, altlinux. Цифра показывает процентное отношение количества строк, содержащих заведомо отключенные драйверы или подсистемы, к общему количеству строк в конфигурации -- и из-за подсистем занижена, но для ядер общего назначения достаточно показательна; скажем, для моего ядра тонкого клиента (с пачкой отключенных _подсистем_ вроде wireless/v4l) она составляет 32%.
>Реализация LMK (low memory killer), управляющего принудительным завершением приложений в случае нехватки памяти;Вот только этого мне еще на серверах не хватало.
Есть же OOM-killer, его никто не отменял. На ваших серверах он, скорее всего, есть
Так, блин.. Ну всегда же можно собрать ядро без поддержки того, что считаете мусором. Не вижу в этом проблеммы.
Что делает самодельное дерьмо на твоих серверах? Ты уверен, что ты сисадмин?
Линуксоид! Это звучит гордо! Как же ты линуксоид если не умеешь собирать ядро?
> Линуксоид! Это звучит гордо!Да ну.
> Как же ты линуксоид если не умеешь собирать ядро?
А мы линуксоводы. Хоть и умеем, да не злоупотребляем.
Злоупотреблять не нужно, а оптимизацию никто не отменял
> Что делает самодельное дерьмо на твоих серверах?ещё и патчи специфические есть. и да, если что-то можно поменять через sysctl - никто не будет лезть собирать своё. а если нет?
> Реализация LMK (low memory killer), управляющего принудительным завершением приложений в случае нехватки памяти;Есть же setrlimit: http://linux.die.net/man/2/setrlimit
> RLIMIT_DATA
> The maximum size of the process's data segment (initialized data, uninitialized data, and heap).
Тут видимо речь идет о глабальном лимите памяти. Я, правда, не очень понимаю, чем это отличается от добавления константы типа
MAX_MEMORY_USAGE = 95 // %
в OOM-killer. Ну да ладно, ссылки читать лень.
Как будет выглядеть система управление памятью от Андроида на сервере:
- Апач своими форками выжрал всю память!
- Ну что ж. Придется убить... ssh-демона.
**демонический смех**
Ты ведь знаешь как себя ведет штатный OOM Killer?
Нет. Расскажите.
Он конфигуряем, приколитесь. В том плане что ему можно указать что вот ssh - в последнюю очередь, а вот опача - пожалуйста гаси себе.
OOM достаточно умен и сам по себе. Например, если флешевый процесс начал усиленно выжирать мозги, то при нехватке память OOM убьет именно его, а не процесс firefox-а, который при этом может занимать раза в 2-3 больше, чем уже разжиревший на момент срабатывания OOM-а флешевый процесс.
ну-ну, рассказывайте дальше про то, что по дефолту oom_kill_allocating_task = 1, рассказывайте.Debian, default config:
root@hs01:~# sysctl -a |grep allo
vm.oom_kill_allocating_task = 0
> 2-3 больше, чем уже разжиревший на момент срабатывания OOM-а флешевый процесс.это всё так за исключением того что на сервере не будет ни лисы ни простигоспади флэша. а речь именно о серверах в данном случае.
Забавно.. даже производители девайсов/чипов/прочей фигни понимают, что пилить дровишки под два разных ядра еще то веселое занятие. но гуглу видимо нравится, раз с их стороны не было достаточного интереса в продвижении патчей в апстрим.Надеюсь это все не заглохнет, как в прошлый раз.
>но гуглу видимо нравится, раз с их стороны не было достаточного интереса в продвижении патчей в апстрим.Гугл это тот же майкрософт, не заинтересованный в развитии конкурентов.
>Реализация LMK (low memory killer), управляющего принудительным завершением приложений в случае нехватки памяти;На десктопе тож бы не помешал. Сейчас 2 гига памяти, отключил своп, но всеравно при нехватки памяти только резет спасает...
# sysctl -w vm.overcommit_memory=1 иль 2Хотя при нехватки памяти обычно включают своп, а не выключают. :D
>sysctl -w vm.overcommit_memory=1 иль 2Спасибо, попоробую.
>Хотя при нехватки памяти обычно включают своп, а не выключают. :D
У меня медленный винт и когда дело доходит до свопа все сильно плохо. Мне лучше, чтоб программу, отьедающую память, просто прибило.
>>sysctl -w vm.overcommit_memory=1 иль 2
> Спасибо, попоробую.
>>Хотя при нехватки памяти обычно включают своп, а не выключают. :D
> У меня медленный винт и когда дело доходит до свопа все сильно
> плохо. Мне лучше, чтоб программу, отьедающую память, просто прибило.Ты не переживай, как тока память появится, приложения начнут использовать оперативку,
Вероятность попадания в своп настраивается через # sysctl vm.swappiness= от 0 до 100
По дефолту, по-моему 60, 10 и меньше это уже на случай "совсем жопа, пора в своп".
cachepressure тоже полезная вещь.
он написал, что винт медленный, если кэш зачистить тоже плохо будет
> он написал, что винт медленныйнабор флопиков, ага.
> # sysctl -w vm.overcommit_memory=1 иль 2
> Хотя при нехватки памяти обычно включают своп, а не выключают. :Dтак-то оно так, но есть нехорошие программисты с нехорошими программами, и при уходе своп поднагрузкой процесс коллапсирования вполне себе ускоряется. это не отменяет тобой сказанного, естессно, просто "штрихи к портрету"
> На десктопе тож бы не помешал. Сейчас 2 гига памяти, отключил своп,
> но всеравно при нехватки памяти только резет спасает…а) это что же надо делать, чтобы двух гигабайт памяти не хватало?
б) чукча не читатель; для нечитателей придумали винду — почему ты сидишь на своей бубунте?
> wakelocks - механизм блокировок для системы управления питанием, позволяющих
> предотвратить переход в спящий режим в ситуациях, когда это недопустимо
> (например, активен разговор по телефону),Это надо делать в драйверах устройств, например, нах...я мне 1GHz, когда я болтаю по телефону!?
> ashmem - реализация разделяемой памяти, позволяющая маркировать незакреплённые страницы памяти,
Допилить Андроид, чтоб умел KERNEL_SAMEPAGE
> binder - используемый в Android механизм межпроцессного взаимодействия;
pipe/shm/signals/socket/ МАЛО???
> USB-драйвер для эмуляции хранилища;
Напурква? Подключать образы, дампы,... как устройства?
Так для этого Олег Нестеров NBD придумал, ещё лет 5 назад.> Реализация LMK (low memory killer),
Как уже писали OOM-killer уже есть.
> ram console - возможность сохранить вывод консоли в специальной области ОЗУ,
> к которой можно получить доступ после перезагрузки в режиме диагностики;Баян, тут FAQ недавно был - Как посмотреть дамп после ребута.
> Драйвер для управления памятью графической карты для чипов ION.
Меняемся - Сони выкупает все дрова у NVidia и открывает под GPL,
а мы уломаем Пингвина включить всё это барахло в ванилу.
> нах...я мне 1GHz, когда я болтаю по телефону!?Насколько я понял, имеется в виду блокировка отключения устройств, а не руления их производительностью.
> Напурква?
Чтобы предоставлять доступ к шаре через USB любому шиндовсу. В прочем, в связи с отсутствием на большинстве ноутов и нетбуков usb-slave, будет задействовано мало.
> OOM-killer уже есть.
Который киляет первый запросивши память процесс. Прозреваю в LMK более разумный механизм, раз его запилили.
>> нах...я мне 1GHz, когда я болтаю по телефону!?
> Насколько я понял, имеется в виду блокировка отключения устройств, а не руления
> их производительностью.Это понятно, я про то, что нужно запрещать устройству засыпать,
а не блокировать попытки это сделать.>> Напурква?
> Чтобы предоставлять доступ к шаре через USB любому шиндовсу. Впрочем, в
> связи с отсутствием на большинстве ноутов и нетбуков usb-slave, будет задействовано
> мало.Для этого MTP придумали, спеки открыты.
>> OOM-killer уже есть.
> Который киляет первый запросивши память процесс.
> Прозреваю в LMK более разумный механизм, раз его запилили.Сделать его разумным можно только одним способом - маркировать
процессы которые нельзя убивать, или наоборот, только те,
которые можно (аналог killall5 от юзера). По вкусу добавлять, какие-то
доп. признаки, типа самое не нагруженное, редко используемое,...Но и в том и в другом случае, причиной запора может стать
именно неприкасаемое приложение.--
Вот как работает Жабовский гарбадж-коллектор?
Ему вообще известно, какую память можно выкидывать?
OOM-киллер и так довольно умный сейчас, он знает активное или не активное приложение, сколько оно работало, сколько памяти отожрало. Кто чей родитель. Выставляет балы и кто там больше всех набрал того и мочит.
> OOM-киллер и так довольно умный сейчас, он знает активное или не активное
> приложение, сколько оно работало, сколько памяти отожрало. Кто чей родитель. Выставляет
> балы и кто там больше всех набрал того и мочит.Так это может быть правоверный, кошерный, честноработающий mysql :)
Не, я за маркировку.... Если уж системное приложение или драйвер нагинают
систему, то это только через препарацию кода спасёт. Короча, все наши
рассуждения приведут к разработке архитектуры микроядра. :)
> Так это может быть правоверный, кошерный, честноработающий mysql :)Вероятность этого уничтожающе мала. Поскольку mysql как правило работает со старта системы и не склонен к увеличению потребления памяти, у него scоre очень маленький.
>> Так это может быть правоверный, кошерный, честноработающий mysql :)
> Вероятность этого уничтожающе мала. Поскольку mysql как правило работает со старта системы
> и не склонен к увеличению потребления памяти, у него scоre очень
> маленький.Тю! Уверен?
А юзерские сессии - они на Великом Небесном Сервере выполняются, Дооооооооо......
Отсыпь, а?
>> Так это может быть правоверный, кошерный, честноработающий mysql :)
> Вероятность этого уничтожающе мала. Поскольку mysql как правило работает со старта системы
> и не склонен к увеличению потребления памяти, у него scоre очень
> маленький.PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
51400 mysql 286 44 0 8457M 3853M ucond 6 148.7H 123.54% mysqldА при запуске системы хавает виртуалки около 300М...
> --
> Вот как работает Жабовский гарбадж-коллектор?
> Ему вообще известно, какую память можно выкидывать?Канэщьна. Освобожденную, прикинь?
> Это надо делать в драйверах устройств, например, нах...я мне 1GHz, когда я
> болтаю по телефону!?Запрет засыпания не означает что частотой проца перестали рулить.
> Допилить Андроид, чтоб умел KERNEL_SAMEPAGE
Как он относится к страницам памяти которые можно отнять? Хотя гугл конечно гении. Сперва поднасрали себе своей явой которой 512Мб мало а потом изгаляются пытаясь пролечить полный ахтунг с памятью на уровне ядра. Вот прям щаз, если памяти не хватит конечно же она магически появится от этих изгалений. Вот и работает андроид где несколько прог запущено через ту еще задницу.
> pipe/shm/signals/socket/ МАЛО???
#error Not Invented Here!!!
>> USB-драйвер для эмуляции хранилища;
> Напурква? Подключать образы, дампы,... как устройства?Пробросить SD карту и внутреннюю память телефона на комп как mass storage. N900 так же делает. Очень удобно на самом деле - у тебя до кучи еще и флешка/картридер как бонус.
> Так для этого Олег Нестеров NBD придумал, ещё лет 5 назад.
Угу, попробуй сие к виндозной машине подключить? И как, получается? А вот юсб драйвер для эмуляции хранилища покажет это хосту что это, якобы, usb-диск. Со стороны писюка оно будет скушано как стандартный mass storage соответственно. И оно всеми понимается как якобы такая usb-флеха. Хоть это и телефон на самом деле :)
>> Реализация LMK (low memory killer),
> Как уже писали OOM-killer уже есть.NIH!
> Баян, тут FAQ недавно был - Как посмотреть дамп после ребута.
NIH!!!
>> Драйвер для управления памятью графической карты для чипов ION.
> Меняемся - Сони выкупает все дрова у NVidia и открывает под GPL,Соня это тебе не гугл который за 120 лямов утку с кодеками купил :)
> а мы уломаем Пингвина включить всё это барахло в ванилу.Угу. Меняемся: ты мне экскурсию на луну оплачиваешь, туда и обратно. А я тебе печеньки :)
>> ashmem - реализация разделяемой памяти, позволяющая маркировать незакреплённые страницы памяти,
> Допилить Андроид, чтоб умел KERNEL_SAMEPAGEКогда KSM перестанет усиленно выжирать ресурсы ЦП, тогда и поговорим. Да и, вообще, KSM не поможет, т.к. он для другого сделан.
>> binder - используемый в Android механизм межпроцессного взаимодействия;
> pipe/shm/signals/socket/ МАЛО???Перестаньте уже ерунду болтать.
http://cs736-android.pbworks.com/w/page/5834468/IPC%20B...>> USB-драйвер для эмуляции хранилища;
> Напурква? Подключать образы, дампы,... как устройства?
> Так для этого Олег Нестеров NBD придумал, ещё лет 5 назад.А зачем делать лишние слои абстракции и гонять NBD over TCP over IP over USB, тем более, что NBD - демон юзерспейсный?
>> Реализация LMK (low memory killer),
> Как уже писали OOM-killer уже есть.Для трансциндентного подхода к управлению процессами он не годится.
>> ram console - возможность сохранить вывод консоли в специальной области ОЗУ,
>> к которой можно получить доступ после перезагрузки в режиме диагностики;
> Баян, тут FAQ недавно был - Как посмотреть дамп после ребута.На устройстве без хранилища с возможностью записи? Хватит уже мерять все по своим двум локалхостам. Есть бездисковые серверы и мобильные устройства, где Ваши мерки не годятся.
>> Драйвер для управления памятью графической карты для чипов ION.
> Меняемся - Сони выкупает все дрова у NVidia и открывает под GPL,
> а мы уломаем Пингвина включить всё это барахло в ванилу.Без комментариев
Судя по коментам Вы вааще не в теме. Не пишите больше, займитесь разведением пчёл.
Интересно, что же Вам таки не понравилось в моих комментах?
ммм
главное чтобы проверяли все патчи на патентную чистоту
а то потом затаскают по судам ...
Кого затаскают, Торвальдса? Он не продаёт ядро в своих девайсах, соответственно доказать финансовый ущерб от ядра Linux, (который просто есть в открытом виде в интернетах) в суде будет довольно сложно.
Как цеплялись, так и всё равно будут ко всяким вендорам, которые продают устройства с андроидом, и прочим СПО. Даже если ничего и не нарушать, всё равно найдут к чему прицепиться.
> главное чтобы проверяли все патчи на патентную чистотуэто настолько сложно, что почти невозможно.
Насчет LMK и OOM Killer. Дело в том, что в Android завершение процессов по недостатку памяти - это абсолютно нормальная ситуация, о которой приложение, перед тем, как быть убитым, получает уведомление, позволяющее ему сохранить свое состояние. Насколько я в курсе, OOM Killer такого функционала не обеспечивает.
> Дело в том, что в Android завершение
> процессов по недостатку памяти — это абсолютно нормальная ситуацияа в *нормальных* системах это ЧП.
Да, т.к. процессы молча убиваются без уведомления.
> Да, т.к. процессы молча убиваются без уведомления.где? с какого испугу? ну, разве что там, где буратины используют жабу, которой вечно то памяти не хватает, то процессоров, то всего вместе.
Мы говорим про завершение процессов при недостатке памяти, не? OOM в данный ситуации прибивает без предупреждения, LMK посылает сигнал процессу.
А Вы почему-то съехали на жабу (которая, между прочим, ограничивает как раз использование памяти всегда, читайте про соответствующие настройки и про особенности работы JVM с памятью).
> Мы говорим про завершение процессов при недостатке памяти, не?не. мы говорим, что для ведроида убитие процесса из-за того, что ему не хватило памяти — *штатная* ситуация. а для нормальной системы это ЧП.
"Концентрация усилий на одном ядре при разработке драйверов устройств;"
Как можно обьединить усилия для работы над пропатченным и непропатченным ядром?