Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
— Замечаем, что свободная память куда-то внезапно съёбывается. killall -STOP firefox-bin — Уходим с воркспейса с браузером. Память возвращается. Firefox всё ещё в T state. — Возвращаемся в предыдущий воркспейс. Память опять куда-то девается. — Дампим smaps_rollup всех процессов, сравниваем. Разница копеечная. Неважно, Rss, Pss, firefox-bin, Xorg, i3 — да вообще всех метрик и по всем процессам. — Дампим meminfo. Разница только в гигабайтищах, на которые похудели MemFree и MemAvailable. slabinfo и df -h /dev/shm на таком фоне даже нет смысла сравнивать (но всё равно сравниваем и не видим ничего интересного). Что, бля, происходит нахуй?!
Рекомендовали: @l29ah @ccahnha @bga_
#CM3X4K / @enterprize / 157 дней назад

А чё если приаттачить strace к firefox-bin и посмотреть, чё он с этой памятью делает? Как вариант, юзнуть wxHexEditor или xxd, чтобы посмотреть снепшоты памяти firefox-bin в состоянии "на экране" и "на другом спейсе". Оно не может улетать в своп, когда не на активном спейсе?
#CM3X4K/MOX / @bazar / 156 дней назад
@bazar а что если таблеток навернуть?
#CM3X4K/VQ8 / @anonymous --> #CM3X4K/MOX / 156 дней назад
@bazar Он ничего не может делать, он SIGSTOP-нут
#CM3X4K/BRC / @enterprize --> #CM3X4K/MOX / 156 дней назад
@enterprize https://stackoverflow.com/a/2143572 > That will suspend execution of the process. It won't immediately free the memory used by it, but as memory is required for other processes the memory used by the stopped process will be gradually swapped out.
#CM3X4K/3JR / @bazar --> #CM3X4K/BRC / 156 дней назад
@bazar Ииииии? Какое это отношение имеет к происходящему? В meminfo показатели про своп не меняются.
#CM3X4K/5DT / @enterprize --> #CM3X4K/3JR / 156 дней назад
@enterprize Глазами посмотри на память. Сними hexdump с firefox-bin в обоих случаях. Если он примерно одинаковый на обоих спейсах, то проблема в meminfo. Ты что-то вроде MAC используешь? Возможно, на другом спейсе meminfo не может получить доступ к ff-bin. Возможно, система просто проёбывает контекст сигстопнутого процесса на другом спейсе, т.е. в оперативке оно лежит, а система не видит, что оно примаплено к какому-то процессу.
#CM3X4K/82G / @bazar --> #CM3X4K/5DT / 156 дней назад

https://lxr.missinglinkelectronics.com/linux/mm/page_alloc.c#L5773
https://lxr.missinglinkelectronics.com/linux/+ident=115735849
https://lxr.missinglinkelectronics.com/linux/+ident=99232837
https://lxr.missinglinkelectronics.com/linux/+ident=118983860

Если у тебя NUMA или 32-битная система, то, вероятно, память может почему-то менять формальный тип в зависимости от того, в какую зону она попадает (есть она в текущих таблицах трансляции, или нет). А так любой кусок кода менеджера памяти может по своему разумению циферку взять и переписать.

Более вероятно, что у тебя либо процессы пихаются в какую-то cgroup в зависимости от видимости на экране, либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц, и они помечаются свободными.

#CM3X4K/74B / @ceyt / 156 дней назад
гат шом блинк //срэад
#CM3X4K/DR0 / @anonymous / 155 дней назад
Ещё наблюдение: MemFree увеличивается, если поскрывать окна через xdotool windowunmap, и скукоживается, если их вернуть. При, опять же, SIGSTOP-нутом браузере и неизменности метрик всех процессов.
#CM3X4K/FSH / @enterprize / 155 дней назад
@ceyt > Если у тебя NUMA Нода только одна > или 32-битная система $ uname -m x86_64 > Более вероятно, что у тебя либо процессы пихаются в какую-то cgroup в зависимости от видимости на экране Такой автоматизации нет, да и если бы была, то непонятно, почему должна влиять, у cgroups же своя параллельная бухгалтерия. > либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц, и они помечаются свободными Dirty/Writeback что на одном, что на другом воркспейсе одни и те же, да и вообще околонулевые, а MemFree гигабайтами меняется.
#CM3X4K/GA1 / @enterprize --> #CM3X4K/74B / 155 дней назад
@enterprize >> либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц Это, кстати, ещё и не объясняет скукоживание MemFree при переключении назад.
#CM3X4K/UHF / @enterprize --> #CM3X4K/GA1 / 155 дней назад
@enterprize xrestop
#CM3X4K/JHV / @l29ah --> #CM3X4K/FSH / 155 дней назад

@enterprize Вариант А: запись в ядре выдаёт просто выдаёт последнюю записанную циферку, кто бы и с какими целями бы её ни поменял. Возможно, какой-то кусок менеджера памяти ради простоты переводит все страницы какой-то категории в свободно выкидываемые, зная, что уже при следующем переключении планировщика активность процесса или обработка переключения контекстов восстановит нужное, а тут процесс стоит. Тогда что-то похожее должно наблюдаться и с другими нормально работающими программами, если их притормозить.

Вариант Б: i3 для не выводимых на экран окон WM_STATE задаёт в withdrawn. Вероятно, X-сервер при этом помечает какие-то ресурсы и буферы как более не нужные (или, возможно, им вызываются какие-то callback'и в GDK или в прочих используемых Firefox прокладках). Если где-то между приложением и X-сервером происходит утечка памяти, эти страницы могут попадать в произвольные списки, и X-сервер может вызывать совершенно бессмысленные функции менеджера памяти для произвольных указателей внутри общего выделенного пространства. Вероятно, только отсутствие необходимости возврата страниц в систему спасает тебя от мгновенного segfault, и если специально сожрать тестовой программой «свободную» память в момент похудения, всё рухнет после разморозки работы.

#CM3X4K/L8Z / @ceyt --> #CM3X4K/GA1 / 155 дней назад
@l29ah О, вот это уже интереснее: сейчас i3 pxm mem увеличился на 4.5G, вполне соразмерно падению MemFree (4.9G). Почему при этом в /proc/$(pidof X)/smaps_rollup я вижу только падение Rss/Pss на жалкие 13M?
#CM3X4K/FSK / @enterprize --> #CM3X4K/JHV / 154 дня назад
@enterprize Лол, примерно на эти же 13M выросли Swap/SwapPss, то есть по сути не поменялось вообще ничего.
#CM3X4K/FHX / @enterprize --> #CM3X4K/FSK / 154 дня назад
@enterprize Переходи на xmonad.
#CM3X4K/Z1Z / @l29ah --> #CM3X4K/FSK / 154 дня назад
@l29ah Я с него ушёл ещё лет 15 назад, потому что динамический тайлинг неудобен.
#CM3X4K/JZH / @enterprize --> #CM3X4K/Z1Z / 154 дня назад
@enterprize А что удобно?
#CM3X4K/AS1 / @l29ah --> #CM3X4K/JZH / 154 дня назад
@l29ah Ручной тайлинг с табами. Тут кроме i3 и notion вспомнить некого.
#CM3X4K/RT3 / @enterprize --> #CM3X4K/AS1 / 154 дня назад
Похоже, память пошла на сраные текстуры сраных веб-страничек, не влезающие в видеопамять. Смена суммы байтиков GTT в /sys/kernel/debug/dri/0/amdgpu_gem_info очень хорошо коррелирует со сменой MemAvailable как при смене воркспейса/windowunmap, так и после SIGCONT с последующим ожиданием похудения наглой рыжей морды. В первом случае ещё и совпадает изменение i3 pxm mem в xrestop, при этом в amdgpu_gem_info худеют/пухнут иксы. Непонятно только, схуяли вообще задевает бухгалтерию i3wm, если он сам и не композитор, и picom-ов при этом никаких не запущено.
#CM3X4K/LI5 / @enterprize / 54 дня назад
@enterprize И, да, я официально ебал такое «ускорение» браузеров.
#CM3X4K/IB3 / @enterprize --> #CM3X4K/LI5 / 54 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.