Я работаю над встроенной системой, на которой работает пользовательская платформа Linux, и похоже, что процесс Xorg пропускает память. Согласно top, виртуальная память Xorg увеличивается до тех пор, пока система не выйдет из строя. Согласно / proc / $ pid / status, его VmPeak будет бесконтрольно расти, но его VmSize останется небольшим. Содержимое / proc / $ pid / status следующее:
Name: Xorg
State: S (sleeping)
Tgid: 610
Pid: 610
PPid: 605
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups: 0
VmPeak: 102628 kB
VmSize: 18020 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 8172 kB
VmRSS: 8172 kB
VmData: 2140 kB
VmStk: 136 kB
VmExe: 1808 kB
VmLib: 10064 kB
VmPTE: 116 kB
VmSwap: 0 kB
Threads: 1
SigQ: 1/16047
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000301000
SigCgt: 00000001d18066cf
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 2839
nonvoluntary_ctxt_switches: 109
Моя теория заключается в том, что gtkextra (в частности, gtkplot) неправильно очищает свой буфер растровых изображений, поскольку утечка происходит только тогда, когда объект, созданный с помощью gtkplot, отображается на экране. Я везде искал документацию о несовместимости или о том, что кто-то еще столкнулся с этой ошибкой и оказался пустым, и я надеюсь, что в xorg.conf есть какой-то флаг, который я могу переключить, чтобы исправить проблему, но я ' м, не то чтобы затаив дыхание. Я использую версию xorg / xserver 1.11.2, а версию gtkextra - 3.0.1. У меня такой вопрос: есть ли какое-то известное значение конфигурации, которое я мог бы изменить в xorg.conf, чтобы предотвратить эту проблему, или мои версии несовместимы? Редкость людей, борющихся с этой ошибкой, заставляет меня подозревать, что я делаю некоторую ошибку конфигурации.