why Xorg occupy more than 40G virtual memory?

We use JetPack 3.3 and found Xorg occupy more than 40G virtual memory. The worse case is we meet Xorg crash issue.

Is it normal that Xorg cost too much virtual memory? And the crash issue may relative with this issue?

  • top command
top - 10:40:27 up 3 days, 22:49,  2 users,  load average: 4.54, 4.35, 4.17
Tasks: 286 total,   4 running, 281 sleeping,   0 stopped,   1 zombie
%Cpu(s): 25.3 us,  5.9 sy,  0.0 ni, 66.5 id,  0.1 wa,  0.0 hi,  2.2 si,  0.0 st
KiB Mem :  8036760 total,   567952 free,  1091812 used,  6376996 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  6616640 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                           
 4599 worker    20   0  270384 182388  19552 R  88.9  2.3  98:12.87 python3                                                                           
23095 root      20   0   63004  58468   9524 R  88.9  0.7   0:00.99 check-new-relea                                                                                                                                         
  776 root      20   0 48.134g  32480  17064 S  11.1  0.4 542:48.83 Xorg
  • dmesg info
[    3.780563] fuse init (API version 7.23)
[    3.796608] logitech-djreceiver 0003:046D:C52B.0003: hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-3530000.xhci-1/input2
[    3.930517] input: Logitech M325 as /devices/3530000.xhci/usb1/1-1/1-1:1.2/0003:046D:C52B.0003/0003:046D:400A.0004/input/input4
[    3.942304] logitech-hidpp-device 0003:046D:400A.0004: input,hidraw1: USB HID v1.11 Mouse [Logitech M325] on usb-3530000.xhci-1:1
[    3.957458] usbcore: registered new interface driver xsens_mt
[    3.964068] usbserial: USB Serial support registered for xsens_mt
[    3.969559] input: Logitech K360 as /devices/3530000.xhci/usb1/1-1/1-1:1.2/0003:046D:C52B.0003/0003:046D:4004.0005/input/input5
[    3.969869] logitech-hidpp-device 0003:046D:4004.0005: input,hidraw2: USB HID v1.11 Keyboard [Logitech K360] on usb-3530000.xhci-1:2
[    3.993747] xsens_mt 1-2:1.1: xsens_mt converter detected
[    3.999324] usb 1-2: xsens_mt converter now attached to ttyUSB0
[    4.157287] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    4.567437] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    4.575316] tegra-pcie 10003000.pcie-controller: link 2 down, ignoring
[    4.581987] tegra-pcie 10003000.pcie-controller: PCIE: no end points detected
[    4.591670] tegra-pcie 10003000.pcie-controller: PCIE: Disable power rails
[    4.601882] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 5
[    4.609052] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work ignore firmware MBOX_CMD_DEC_SSPI_CLOCK request
[    5.443859] eqos 2490000.ether_qos eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[    5.452856] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.685423] tegradc 15210000.nvdisplay: blank - powerdown
[    7.692136] tegradc 15210000.nvdisplay: hdmi: plugged
[    7.699973] tegradc 15210000.nvdisplay: blank - powerdown
[   12.819450] tegradc 15210000.nvdisplay: hdmi: unplugged
[   12.824790] tegradc 15210000.nvdisplay: blank - powerdown
[   13.528376] tegradc 15210000.nvdisplay: blank - powerdown
[   13.534062] tegradc 15210000.nvdisplay: hdmi: plugged
[   13.541501] tegradc 15210000.nvdisplay: blank - powerdown
[   15.615134] mttcan c310000.mttcan can0: Bitrate set
[   15.622207] mttcan c310000.mttcan can0: Bitrate set
[   15.628772] mttcan_controller_config: ctrlmode 0
[   15.633714] mttcan c310000.mttcan can0: Bitrate set
[   15.640599] mttcan c320000.mttcan can1: Bitrate set
[   15.647167] mttcan c320000.mttcan can1: Bitrate set
[   15.654446] mttcan_controller_config: ctrlmode 0
[   15.659212] mttcan c320000.mttcan can1: Bitrate set
[   15.687463] ip_tables: (C) 2000-2006 Netfilter Core Team
[   16.112324] EXT4-fs (sda): recovery complete
[   16.117481] EXT4-fs (sda): mounted filesystem with ordered data mode. Opts: (null)
[   18.667255] tegradc 15210000.nvdisplay: hdmi: unplugged
[   18.672614] tegradc 15210000.nvdisplay: blank - powerdown
[   19.371807] tegradc 15210000.nvdisplay: blank - powerdown
[   19.377521] tegradc 15210000.nvdisplay: hdmi: plugged
[   19.384193] tegradc 15210000.nvdisplay: blank - powerdown
[   19.641206] CPU1: Booted secondary processor [4e0f0030]
[   19.672322] CPU2: Booted secondary processor [4e0f0030]
[   24.503167] tegradc 15210000.nvdisplay: hdmi: unplugged
[   24.508443] tegradc 15210000.nvdisplay: blank - powerdown
[   25.203064] tegradc 15210000.nvdisplay: blank - powerdown
[   25.208707] tegradc 15210000.nvdisplay: hdmi: plugged
[   25.214813] tegradc 15210000.nvdisplay: blank - powerdown
[   30.343111] tegradc 15210000.nvdisplay: hdmi: unplugged
[   30.348395] tegradc 15210000.nvdisplay: blank - powerdown
[   31.034992] tegradc 15210000.nvdisplay: blank - powerdown
[   31.040659] tegradc 15210000.nvdisplay: hdmi: plugged
[   31.046815] tegradc 15210000.nvdisplay: blank - powerdown
[   36.171013] tegradc 15210000.nvdisplay: hdmi: unplugged
[   36.176288] tegradc 15210000.nvdisplay: blank - powerdown
[   36.870962] tegradc 15210000.nvdisplay: blank - powerdown
[   36.876615] tegradc 15210000.nvdisplay: hdmi: plugged
[   36.882771] tegradc 15210000.nvdisplay: blank - powerdown
[   42.006963] tegradc 15210000.nvdisplay: hdmi: unplugged
[   42.012328] tegradc 15210000.nvdisplay: blank - powerdown
[   42.710858] tegradc 15210000.nvdisplay: blank - powerdown
[   42.716526] tegradc 15210000.nvdisplay: hdmi: plugged
[   42.722583] tegradc 15210000.nvdisplay: blank - powerdown
[   47.850890] tegradc 15210000.nvdisplay: hdmi: unplugged
[   47.856179] tegradc 15210000.nvdisplay: blank - powerdown
[   48.546837] tegradc 15210000.nvdisplay: blank - powerdown
[   48.552557] tegradc 15210000.nvdisplay: hdmi: plugged
[   48.558671] tegradc 15210000.nvdisplay: blank - powerdown
[   53.686843] tegradc 15210000.nvdisplay: hdmi: unplugged
[   53.692122] tegradc 15210000.nvdisplay: blank - powerdown
[   54.386799] tegradc 15210000.nvdisplay: blank - powerdown
[   54.392513] tegradc 15210000.nvdisplay: hdmi: plugged
[   54.398546] tegradc 15210000.nvdisplay: blank - powerdown
[   59.522772] tegradc 15210000.nvdisplay: hdmi: unplugged
[   59.528054] tegradc 15210000.nvdisplay: blank - powerdown
[   60.222726] tegradc 15210000.nvdisplay: blank - powerdown
[   60.228393] tegradc 15210000.nvdisplay: hdmi: plugged
[   60.234506] tegradc 15210000.nvdisplay: blank - powerdown
[   65.362689] tegradc 15210000.nvdisplay: hdmi: unplugged
[   65.368047] tegradc 15210000.nvdisplay: blank - powerdown
[   66.058631] tegradc 15210000.nvdisplay: blank - powerdown
[   66.064311] tegradc 15210000.nvdisplay: hdmi: plugged
[   66.070450] tegradc 15210000.nvdisplay: blank - powerdown
[   71.198575] tegradc 15210000.nvdisplay: hdmi: unplugged
[   71.203931] tegradc 15210000.nvdisplay: blank - powerdown
[   71.898589] tegradc 15210000.nvdisplay: blank - powerdown
[   71.904255] tegradc 15210000.nvdisplay: hdmi: plugged
[   71.910424] tegradc 15210000.nvdisplay: blank - powerdown
[   77.034505] tegradc 15210000.nvdisplay: hdmi: unplugged
[   77.039857] tegradc 15210000.nvdisplay: blank - powerdown
[   77.734493] tegradc 15210000.nvdisplay: blank - powerdown
[   77.740175] tegradc 15210000.nvdisplay: hdmi: plugged
[   77.746236] tegradc 15210000.nvdisplay: blank - powerdown
[   82.870422] tegradc 15210000.nvdisplay: hdmi: unplugged
[   82.875710] tegradc 15210000.nvdisplay: blank - powerdown
[   83.574514] tegradc 15210000.nvdisplay: blank - powerdown
[   83.580220] tegradc 15210000.nvdisplay: hdmi: plugged
[   83.586409] tegradc 15210000.nvdisplay: blank - powerdown
[   88.710372] tegradc 15210000.nvdisplay: hdmi: unplugged
[   88.715718] tegradc 15210000.nvdisplay: blank - powerdown
[   89.410409] tegradc 15210000.nvdisplay: blank - powerdown
[   89.416041] tegradc 15210000.nvdisplay: hdmi: plugged
[   89.422151] tegradc 15210000.nvdisplay: blank - powerdown
[   94.550294] tegradc 15210000.nvdisplay: hdmi: unplugged
[   94.555583] tegradc 15210000.nvdisplay: blank - powerdown
[   95.250296] tegradc 15210000.nvdisplay: blank - powerdown
[   95.255946] tegradc 15210000.nvdisplay: hdmi: plugged
[   95.262067] tegradc 15210000.nvdisplay: blank - powerdown
[  100.390220] tegradc 15210000.nvdisplay: hdmi: unplugged
[  100.395504] tegradc 15210000.nvdisplay: blank - powerdown
[  101.082179] tegradc 15210000.nvdisplay: blank - powerdown
[  101.087853] tegradc 15210000.nvdisplay: hdmi: plugged
[  101.093966] tegradc 15210000.nvdisplay: blank - powerdown
[  106.222155] tegradc 15210000.nvdisplay: hdmi: unplugged
[  106.227507] tegradc 15210000.nvdisplay: blank - powerdown
[  106.918079] tegradc 15210000.nvdisplay: blank - powerdown
[  106.923720] tegradc 15210000.nvdisplay: hdmi: plugged
[  106.929821] tegradc 15210000.nvdisplay: blank - powerdown
[  112.058058] tegradc 15210000.nvdisplay: hdmi: unplugged
[  112.063342] tegradc 15210000.nvdisplay: blank - powerdown
[  112.762046] tegradc 15210000.nvdisplay: blank - powerdown
[  112.767739] tegradc 15210000.nvdisplay: hdmi: plugged
[  112.773848] tegradc 15210000.nvdisplay: blank - powerdown
[  117.901998] tegradc 15210000.nvdisplay: hdmi: unplugged
[  117.907360] tegradc 15210000.nvdisplay: blank - powerdown
[  118.597887] tegradc 15210000.nvdisplay: blank - powerdown
[  118.603588] tegradc 15210000.nvdisplay: hdmi: plugged
[  118.609810] tegradc 15210000.nvdisplay: blank - powerdown
[  123.737972] tegradc 15210000.nvdisplay: hdmi: unplugged
[  123.744396] tegradc 15210000.nvdisplay: blank - powerdown
[  124.437923] tegradc 15210000.nvdisplay: blank - powerdown
[  124.443602] tegradc 15210000.nvdisplay: hdmi: plugged
[  124.449640] tegradc 15210000.nvdisplay: blank - powerdown
[  129.573857] tegradc 15210000.nvdisplay: hdmi: unplugged
[  129.579217] tegradc 15210000.nvdisplay: blank - powerdown
[  130.269817] tegradc 15210000.nvdisplay: blank - powerdown
[  130.275437] tegradc 15210000.nvdisplay: hdmi: plugged
[  130.281608] tegradc 15210000.nvdisplay: blank - powerdown
[  135.413812] tegradc 15210000.nvdisplay: hdmi: unplugged
[  135.419171] tegradc 15210000.nvdisplay: blank - powerdown
[  136.117802] tegradc 15210000.nvdisplay: blank - powerdown
[  136.123450] tegradc 15210000.nvdisplay: hdmi: plugged
[  136.129634] tegradc 15210000.nvdisplay: blank - powerdown
[  141.257707] tegradc 15210000.nvdisplay: hdmi: unplugged
[  141.262986] tegradc 15210000.nvdisplay: blank - powerdown
[  141.965734] tegradc 15210000.nvdisplay: blank - powerdown
[  141.971408] tegradc 15210000.nvdisplay: hdmi: plugged
[  141.977563] tegradc 15210000.nvdisplay: blank - powerdown
[  147.109630] tegradc 15210000.nvdisplay: hdmi: unplugged
[  147.114915] tegradc 15210000.nvdisplay: blank - powerdown
[  147.809687] tegradc 15210000.nvdisplay: blank - powerdown
[  147.815369] tegradc 15210000.nvdisplay: hdmi: plugged
[  147.821594] tegradc 15210000.nvdisplay: blank - powerdown
[  152.965532] tegradc 15210000.nvdisplay: hdmi: unplugged
[  152.970889] tegradc 15210000.nvdisplay: blank - powerdown
[  153.673556] tegradc 15210000.nvdisplay: blank - powerdown
[  153.679291] tegradc 15210000.nvdisplay: hdmi: plugged
[  153.685348] tegradc 15210000.nvdisplay: blank - powerdown
[  158.829483] tegradc 15210000.nvdisplay: hdmi: unplugged
[  158.834836] tegradc 15210000.nvdisplay: blank - powerdown
[  159.533489] tegradc 15210000.nvdisplay: blank - powerdown
[  159.539151] tegradc 15210000.nvdisplay: hdmi: plugged
[  159.545231] tegradc 15210000.nvdisplay: blank - powerdown
[  164.689435] tegradc 15210000.nvdisplay: hdmi: unplugged
[  164.694806] tegradc 15210000.nvdisplay: blank - powerdown
[  165.417406] tegradc 15210000.nvdisplay: blank - powerdown
[  165.423017] tegradc 15210000.nvdisplay: hdmi: plugged
[  165.429138] tegradc 15210000.nvdisplay: blank - powerdown
[  170.573325] tegradc 15210000.nvdisplay: hdmi: unplugged
[  170.578682] tegradc 15210000.nvdisplay: blank - powerdown
[  171.273274] tegradc 15210000.nvdisplay: blank - powerdown
[  171.278943] tegradc 15210000.nvdisplay: hdmi: plugged
[  171.285228] tegradc 15210000.nvdisplay: blank - powerdown
[  176.433235] tegradc 15210000.nvdisplay: hdmi: unplugged
[  176.438589] tegradc 15210000.nvdisplay: blank - powerdown
[  177.201298] tegradc 15210000.nvdisplay: blank - powerdown
[  177.209575] tegradc 15210000.nvdisplay: unblank
[  177.209591] PD DISP0 index2 UP
[  177.210426] PD DISP1 index3 UP
[  177.210528] PD DISP2 index4 UP
[  177.211621] Parent Clock set for DC plld2
[  177.214967] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[  178.242030] Unable to handle kernel paging request at virtual address ffffff8009f01000
[  178.242032] pgd = ffffffc1e26cd000
[  178.242036] [ffffff8009f01000] *pgd=0000000000000000, *pud=0000000000000000
[  178.242039] Internal error: Oops: 96000047 [#1] PREEMPT SMP
[  178.242051] Modules linked in: ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat iptable_filter ip_tables xsens_mt(O) fuse bcmdhd pci_tegra bluedroid_pm
[  178.242057] CPU: 0 PID: 730 Comm: Xorg Tainted: G           O    4.4.38+ #1
[  178.242059] Hardware name: quill (DT)
[  178.242061] task: ffffffc07b36f080 ti: ffffffc1e2414000 task.ti: ffffffc1e2414000
[  178.242068] PC is at bitfill_aligned+0x8c/0x110
[  178.242071] LR is at cfb_fillrect+0x15c/0x2e0
[  178.242072] pc : [<ffffffc0003b8634>] lr : [<ffffffc0003b8424>] pstate: 20000045
[  178.242074] sp : ffffffc1e2417950
[  178.242076] x29: ffffffc1e2417950 x28: ffffffc001490b38 
[  178.242078] x27: ffffffc1ebbbf000 x26: 0000000000000480 
[  178.242080] x25: ffffff8005702e00 x24: 0000000000000020 
[  178.242082] x23: ffffffc1e2417a08 x22: ffffffc0003b85a8 
[  178.242083] x21: 00000000ffff6a00 x20: 0000000000000000 
[  178.242085] x19: 0000000000000000 x18: 0000000000000000 
[  178.242087] x17: 0000000000000008 x16: 0000000000000010 
[  178.242088] x15: ffffffc0014a5128 x14: 0000000000000010 
[  178.242090] x13: 0000000000000008 x12: 0000000000000008 
[  178.242091] x11: 0000000000000008 x10: 0000000000000008 
[  178.242093] x9 : 000000000000ff00 x8 : ffffffffffffffff 
[  178.242095] x7 : 0000000000000000 x6 : ffffff8025701b40 
[  178.242097] x5 : 0000000000000040 x4 : 0000000003fffda8 
[  178.242098] x3 : 0000000000000000 x2 : 0000000000000000 
[  178.242100] x1 : ffffff8009f01000 x0 : ffffffffffffffff 

[  178.242102] Process Xorg (pid: 730, stack limit = 0xffffffc1e2414020)
[  178.242103] Call trace:
[  178.242106] [<ffffffc0003b8634>] bitfill_aligned+0x8c/0x110
[  178.242113] [<ffffffc00045f65c>] tegra_fb_fillrect+0xc/0x18
[  178.242118] [<ffffffc0003ac84c>] bit_clear_margins+0xa4/0xa8
[  178.242121] [<ffffffc0003a6270>] fbcon_clear_margins+0x68/0x90
[  178.242123] [<ffffffc0003aa138>] fbcon_switch+0x368/0x580
[  178.242127] [<ffffffc000498a18>] redraw_screen+0x160/0x250
[  178.242128] [<ffffffc0003a9688>] fbcon_blank+0x1c8/0x288
[  178.242131] [<ffffffc000499f3c>] do_unblank_screen+0xbc/0x190
[  178.242134] [<ffffffc00048f82c>] complete_change_console+0x5c/0xe8
[  178.242136] [<ffffffc000490c5c>] vt_ioctl+0x13a4/0x1408
[  178.242139] [<ffffffc000482e34>] tty_ioctl+0x1ec/0xd78
[  178.242144] [<ffffffc0001db35c>] do_vfs_ioctl+0x34c/0x5f0
[  178.242146] [<ffffffc0001db68c>] SyS_ioctl+0x8c/0xa0
[  178.242151] [<ffffffc000084ff0>] el0_svc_naked+0x24/0x28
[  178.242494] ---[ end trace fb57597c19177bc2 ]---
[  705.584122] usb 1-1: USB disconnect, device number 3
[  707.682459] usb 1-1: new full-speed USB device number 4 using xhci-tegra
[  707.814742] usb 1-1: feature bit otg_vbus_off set
[  707.814747] usb 1-1: New USB device found, idVendor=046d, idProduct=c52b
[  707.814751] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  707.814754] usb 1-1: Product: USB Receiver
[  707.814756] usb 1-1: Manufacturer: Logitech
[  707.822458] logitech-djreceiver 0003:046D:C52B.0008: hidra

53216142,

Please try to use rel-28.3 or rel-32.2.1 release.

FYI, a reserved address space is not necessarily the same as actually using that space. Actual occupied space is far far lower, at 0.04% of physical RAM. This is not a problem and unlikely to have any relation to any crash. EDIT: Maybe that is 0.04% of the virtual, but either way the amount is trivial compared to the address space Xorg has an ability to use.

Run a serial console to the unit, and start logging (“dmesg --follow”). Then stop logging after a crash and look at the last bit of the log.