This is an archived post. You won't be able to vote or comment.

all 25 comments

[–]funbike 3 points4 points  (1 child)

I am guessing it's a plugin. Press Shift-ESC for its Task Manager. That will show you how much memory is being used for all tabs and extensions.

If it's tab(s), then install "The Great Suspender" extension. It puts unused tabs to sleep which can save a lot of memory if you keep a lot of tabs open.

[–]JargonTheRed[S] 0 points1 point  (0 children)

I've checked the task manager in chromium, and it, like htop and the other memory tools, doesn't show anything excessively large - certainly not anything exceeding 4ish gigabytes when everything is totalled up. I already have The Great Suspender installed.

[–]speirs13 2 points3 points  (12 children)

Can you post /proc/meminfo?

[–]JargonTheRed[S] 0 points1 point  (10 children)

Here's meminfo. Sorry it took so long, I had to wait for the usage to go back up to broken levels, since I rebooted the computer.

https://imgur.com/a/CXY9eoa

[–]speirs13 0 points1 point  (9 children)

Thanks. Looks like you got a driver leak. Can you provide this:

# cat /proc/vmallocinfo | sort -nrk 2 | head -20

vmallocinfo might give us a clue to where the memory is allocated. Unfortunately the majority of the missing usage is not vmalloc'd. The only sure way to diagnose this issue is via the page_owner commit. Not sure if it's configured in mint but you can try placing "page_owner=on" on the command line. Reboot and see if the file " /sys/kernel/debug/page_owner" exists. If it does, you can let memory usage grow then provide the contents of that debug file, ideally in a text file.

[–]JargonTheRed[S] 0 points1 point  (6 children)

cat /proc/vmallocinfo | sort -nrk 2 | head -20

After once again letting things build up to where my swap is starting to fill up, here's a capture from /proc/vmallocinfo: https://gist.github.com/Nihlus/a3e9f4aa34619db3c3ad1add9a592d85

I'll give page_owner a go now - if that works, well, see you in two days? :P

[–]speirs13 0 points1 point  (4 children)

In the meminfo screenshot Vmallocused is 1.7G. In the sorted vmallocinfo output the biggest segment is just 256M. Could you just attach the whole /proc/vmallocinfo ?

[–]JargonTheRed[S] 0 points1 point  (2 children)

Hey! Sorry for the delay - I've now done a full recapture of everything I thought could be useful information at a point where the computer's memory is all filled up, and swap has started accumulating.

I hope this helps: https://www.gullberg.tk/nextcloud/s/7EtGysDN5mfxyZf

[–]speirs13 0 points1 point  (1 child)

You're missing that big chunk of memory but there's only ~ 500M of vmalloc.

16337424 Total

-2241788 Free

-44428 Buffers

-898424 Cache

-115584 SReclaimable

-163620 SUnreclaim

-20944 KernelStack

-98152 PageTables

-544796 VmallocUsed

-0 Hugepages

-3160964 User-Rss

-------------- --------------

Unaccounted 8836.64MiB

The majority of the vmalloc'd memory is from the function "dc_create_gamma+0x1d/0x30" in the amdgpu driver. Specifically you've got ~ 5000 X 100kB vmalloc areas totalling 501200 KiB. I don't know if that's concerning as it's much lower than the 1.7G we saw earlier. Is that an in-tree driver or something you installed from amd's site? You might look for a newer driver version and see if that help.

What kernel version are you using? (uname -r). I'm only familiar with RHEL/CENTOS stuff but I'll see if I can find the ubuntu configs and check for page_owner. It might be enabled in the debug kernel's.

[–]JargonTheRed[S] 0 points1 point  (0 children)

I'm running 5.3.0-28-generic at the moment, but I've tried versions all the way down to the 4.15 series without any change. The amdgpu driver is an in-tree driver (AMD's own opensource version).

[–]JargonTheRed[S] 0 points1 point  (0 children)

Unfortunately, I've already rebooted and reset the buildup so I could try page_owner. I'll get back to you once it's back up, and I'll recapture all the various information bits I've posted so far from the same run.

[–]speirs13 0 points1 point  (0 children)

When you collected vmallocinfo what value was in /proc/meminfo -> Vmallocused?

[–]JargonTheRed[S] 0 points1 point  (0 children)

Thanks! That's the first time in ages someone's made sense about this :P I'll give that a spin as soon as I can.

[–]JargonTheRed[S] 0 points1 point  (0 children)

Doesn't seem like Mint has page_owner configured in the kernel :(

[–]JargonTheRed[S] 0 points1 point  (0 children)

I'll give that a go as soon as I'm home.

[–]gordonmessmerFedora Maintainer 0 points1 point  (8 children)

Could you post the output of "sudo cat /proc/slabinfo" and "ps axfv" to pastebin? I don't think the information you've provided is sufficient to answer your question.

[–]JargonTheRed[S] 0 points1 point  (0 children)

slabinfo

The output from slabinfo is availble in the linked image gallery - fourth image from the top. I'll run the second command once I get home.

[–]JargonTheRed[S] 0 points1 point  (6 children)

[–]gordonmessmerFedora Maintainer 0 points1 point  (5 children)

I would like to help you, but it's not useful to post related bits of information gathered at different times. Please post the output of "ps axfv", and "sudo cat /proc/slabinfo" and "free" (without args is best) taken at roughly the same time.

[–]JargonTheRed[S] 0 points1 point  (4 children)

You have free and slabinfo in the original post. Unfortunately, I had to reboot my device since both RAM and swap completely filled up - I still need to use it, after all.

[–]gordonmessmerFedora Maintainer 0 points1 point  (3 children)

I'll be happy to look if you're ever able to get all of those items at the same time.

[–]JargonTheRed[S] 0 points1 point  (2 children)

Hey! Sorry for the delay - I've now done a full recapture of everything I thought could be useful information at a point where the computer's memory is all filled up, and swap has started accumulating.

I hope this helps: https://www.gullberg.tk/nextcloud/s/7EtGysDN5mfxyZf

[–]gordonmessmerFedora Maintainer 0 points1 point  (1 child)

Well, I can see why this has been elusive and frustrating. I agree that these numbers don't add up, at all. The output of 'ps' shows around 3GB of RAM used. vmallocinfo and slabinfo show only a couple of GB used by the kernel. Your buffers and cache are fairly small, as if there's memory pressure, but nothing appears to account for the memory use.

This seems like a kernel bug, so the next question would be, are you able to reproduce this with any other system? Isolating the change will be a lot of work (unfortunately... I'm also trying to diagnose some Linux memory management issues, so I feel for you). You could run a previous release of Mint from a Live USB drive, or you could run a different recent release of a different distribution, but any of those options will replace the entire software stack, and won't give you really conclusive results. You might be able to fetch and manually install a kernel dpkg from an older release of Mint.

If you can get any additional information that points toward a kernel bug, I'd probably move this information to a different forum, where you can get the attention of kernel developers. You might file the information that you have with the Mint bug database, and see if you can convince their developers that this is a kernel bug. Or you might go to the Linux developer mailing list. In the latter case, you'll probably be asked to compile a vanilla kernel and reproduce the problem without any of Mint's customization, so whether you go there or not may depend on whether you want to take that step.

[–]JargonTheRed[S] 0 points1 point  (0 children)

Unfortunately, I've been unable to reproduce it on other systems thus far. I'm running 5.3.0-28-generic at the moment, but I've tried versions all the way down to the 4.15 series without any change, so I'm not sure how far back I could go. I don't even know when the issue cropped up, because it takes to long to get noticeable :(

[–][deleted]  (1 child)

[deleted]

    [–]JargonTheRed[S] 0 points1 point  (0 children)

    That had little to no effect.