Actually it's not the "top" of the output that's interesting. The
snapshot #1 just shows where memory went initially on start-up (to
loading images). That doesn't represent the ongoing growth problem
though. You need to scroll down to later snapshots in the ms_print
output to see where the growth is coming from, like snapshot 51:

 47 68,075,238,605       72,060,280       63,908,218     8,152,062            0
 48 70,175,452,080       73,101,400       64,835,851     8,265,549            0
 49 71,750,692,416       74,288,744       65,927,330     8,361,414            0
 50 72,800,335,769       75,355,616       66,877,167     8,478,449            0
 51 73,849,979,162       81,425,416       72,853,026     8,572,390            0
89.47% (72,853,026B) (heap allocation functions) malloc/new/new[], --alloc-fns, 
etc.
->19.72% (16,059,766B) 0x58BF577: g_malloc (in 
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1)
| ->17.59% (14,320,777B) 0x58D70F4: g_slice_alloc (in 
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1)
| | ->13.29% (10,825,417B) 0x58D7587: g_slice_alloc0 (in 
/lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1)
| | | ->05.48% (4,459,320B) 0x564F7E4: g_type_create_instance (in 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5400.1)
| | | | ->04.96% (4,040,752B) 0x5630096: ??? (in 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5400.1)
| | | | | ->04.84% (3,937,672B) 0x6C05829: ??? (in 
/usr/lib/x86_64-linux-gnu/mutter/libmutter-clutter-1.so)
| | | | | | ->04.55% (3,708,152B) 0x5630CF5: ??? (in 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5400.1)
| | | | | | | ->02.97% (2,417,720B) 0x5631FBC: g_object_newv (in 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5400.1)
| | | | | | | | ->02.97% (2,417,720B) 0x6911B0C: ??? (in 
/usr/lib/libgjs.so.0.0.0)
| | | | | | | |   ->02.97% (2,417,720B) 0xE0BBD5B: ??? (in 
/usr/lib/x86_64-linux-gnu/libmozjs-52.so.0.0.0)
| | | | | | | |     ->02.97% (2,417,720B) 0xE0BBF87: ??? (in 
/usr/lib/x86_64-linux-gnu/libmozjs-52.so.0.0.0)
| | | | | | | |       ->02.97% (2,417,720B) 0xDF51842: 
JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, 
JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (in 
/usr/lib/x86_64-linux-gnu/libmozjs-52.so.0.0.0)
| | | | | | | |         ->02.97% (2,417,720B) 0x692B2A4: 
gjs_call_function_value (in /usr/lib/libgjs.so.0.0.0)
| | | | | | | |           ->02.97% (2,417,720B) 0x6910454: ??? (in 
/usr/lib/libgjs.so.0.0.0)

So you then need debug symbols for libraries like:
  /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5400.1
  /usr/lib/x86_64-linux-gnu/mutter/libmutter-clutter-1.so
  /usr/lib/libgjs.so.0.0.0
  /usr/lib/x86_64-linux-gnu/libmozjs-52.so.0.0.0

Which sounds like it's getting closer to the core of the problem.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gnome-shell in Ubuntu.
https://bugs.launchpad.net/bugs/1672297

Title:
  gnome-shell uses lots of memory, and grows over time

Status in GNOME Shell:
  Unknown
Status in gnome-shell package in Ubuntu:
  Triaged

Bug description:
  gnome-shell's RSS is growing by 1 MiB every few minutes, and is now at
  almost 2 GiB.

  user      3039  1.8 16.1 4302340 1968476 tty2  Sl+  Mar09 120:17
  /usr/bin/gnome-shell

  strace output is voluminous; here is a representative sample:

  poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}])
  writev(5, [{"\231\n\10\0\n\0 
\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0", 32}], 1) = 32
  poll([{fd=5, events=POLLIN}], 1, -1)    = 1 ([{fd=5, revents=POLLIN}])
  recvmsg(5, {msg_name(0)=NULL, 
msg_iov(1)=[{"\1\0{\224\0\0\0\0H\0\0\0\0\23\266\32\0\0\0\0\201\242\204\0\0\0\0\0\261.\0\0",
 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
  recvmsg(5, 0x7fff60efac90, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(5, 0x7fff60efac90, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}])
  writev(5, [{"\212\5\4\0a\2228\0y\3\5\0%\3\27\4\231\6\5\0\n\0 
\0a\2228\0\0\0\0\0"..., 36}, {NULL, 0}, {"", 0}], 3) = 36
  poll([{fd=5, events=POLLIN}], 1, -1)    = 1 ([{fd=5, revents=POLLIN}])
  recvmsg(5, {msg_name(0)=NULL, 
msg_iov(1)=[{"\1\0}\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
  recvmsg(5, 0x7fff60efac90, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}])
  writev(5, [{"\212\n\2\0a\2228\0", 8}, {NULL, 0}, {"", 0}], 3) = 8
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 
(Timeout)
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 
(Timeout)
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  open("/proc/self/stat", O_RDONLY)       = 36
  fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
  fcntl(36, F_GETFL)                      = 0x8000 (flags O_RDONLY|O_LARGEFILE)
  fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
  read(36, "3039 (gnome-shell) R 2930 2917 2"..., 4096) = 354
  read(36, "", 3072)                      = 0
  close(36)                               = 0
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 117885) = 
1 ([{fd=4, revents=POLLIN}])
  read(4, "\1\0\0\0\0\0\0\0", 16)         = 8
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, {msg_name(0)=NULL, 
msg_iov(1)=[{"[\2\327&h\0@\0i\0@\0(nu\22\n\0I\0\336\2\232\1\265\0038\2\362\2\355\1",
 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 
(Timeout)
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
  recvmsg(12, 0x7fff60efaed0, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 1 
([{fd=4, revents=POLLIN}])
  read(4, "\1\0\0\0\0\0\0\0", 16)         = 8
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  open("/proc/self/stat", O_RDONLY)       = 36
  fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
  fcntl(36, F_GETFL)                      = 0x8000 (flags O_RDONLY|O_LARGEFILE)
  fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
  read(36, "3039 (gnome-shell) R 2930 2917 2"..., 4096) = 354
  read(36, "", 3072)                      = 0
  close(36)                               = 0
  recvmsg(5, 0x7fff60efb020, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efb000, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, 
{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, 
events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, 
events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, 
events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 1) = 0 
(Timeout)
  recvmsg(5, 0x7fff60efb040, 0)           = -1 EAGAIN (Resource temporarily 
unavailable)
  poll([{fd=12, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=12, revents=POLLOUT}])
  writev(12, [{"\217\3\4\0i\0@\0\0\0\0\0\0\0\0\0+\0\1\0", 20}, {NULL, 0}, {"", 
0}], 3) = 20
  poll([{fd=12, events=POLLIN}], 1, -1)   = 1 ([{fd=12, revents=POLLIN}])
  recvmsg(12, {msg_name(0)=NULL, 
msg_iov(1)=[{"\1\2\331&\0\0\0\0\250\0`\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
  recvmsg(12, 0x7fff60efaf60, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  recvmsg(12, 0x7fff60efaf60, 0)          = -1 EAGAIN (Resource temporarily 
unavailable)
  ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efa960) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efa910) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efa900) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_PWRITE, 0x7fff60efa9b0) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efac50) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efaba0) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SW_FINISH, 0x7fff60efad30) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SW_FINISH, 0x7fff60efae30) = 0
  ioctl(6, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0x69, 0x40), 0x7fff60efadb0) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efae30) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efadb0) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efad80) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efad70) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efad90) = 0
  ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efae90) = 0

  ProblemType: Bug
  DistroRelease: Ubuntu 17.04
  Package: gnome-shell 3.23.91-0ubuntu4
  ProcVersionSignature: Ubuntu 4.10.0-11.13-generic 4.10.1
  Uname: Linux 4.10.0-11-generic x86_64
  ApportVersion: 2.20.4-0ubuntu2
  Architecture: amd64
  Date: Mon Mar 13 19:17:51 2017
  DisplayManager: gdm3
  InstallationDate: Installed on 2016-12-02 (100 days ago)
  InstallationMedia: Ubuntu-GNOME 16.10 "Yakkety Yak" - Release amd64 
(20161012.1)
  ProcEnviron:
   LANGUAGE=en_AU:en
   TERM=xterm-256color
   PATH=(custom, no user)
   LANG=en_AU.UTF-8
   SHELL=/bin/bash
  SourcePackage: gnome-shell
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/gnome-shell/+bug/1672297/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to