嵌入式系统中的 Xorg--泄漏内存?

嵌入式系统中的 Xorg--泄漏内存?

我正在开发一个运行自定义 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 中更改以防止出现此问题,或者我的版本不兼容?很少有人为这个错误而苦苦挣扎,这让我怀疑我犯了一些配置错误。

相关内容