On 07/01/2018 10:11 PM, Mathieu Westphal wrote:
Hello list,

I am working on a complex Qt/OpenGL Application.
Xorg starts leaking in VRAM when i'm using the application and never release the memory, until I restart X of course.

$ nvidia-smi

I think you are looking at output from an nvidia tool and not memory
for the system and processes as a whole.

The version of Xorg does not matter, tested a few.
The version of the driver does not matter, as long as it's nvidia, tested 340, 384, 390

Using 384.98 here.  Very stable.

However I think you are looking at output from nvidia-smi here and not
actual process data from the /proc/$PID/stat where $PID is the pid of
your X process.

For example :

sed$ ps -ef |  grep "bin\/X"
root 2488 2429 3 Jun15 tty1 13:32:18 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-TVlXTy/database -seat seat0 -nolisten tcp vt1

sed$ cat /proc/2488/stat
2488 (X) S 2429 2488 2488 1025 2488 4202752 15866906 3576 170 0 4111107 762600 6 3 20 0 2 0 4079 569253888 46342 18446744073709551615 1 1 0 0 0 0 0 3149824 1098933967 18446744073709551615 0 0 17 1 0 0 1192 0 0 0 0 0 0 0 0 0 0
sed$

The actual rss ( Resident Set Size ) is what you should have a look at.
According to PROC(5) you can get that from "stat" under /proc for a
given pid. That is field 24 here :

sed$ cat /proc/2488/stat | awk '{ print $24 }'
46342

These are pages of memory and that reports :

    Resident Set Size: number of pages the process has in real memory.
    This is just the pages which count toward text, data, or stack
    space.  This does not include pages  which  have  not  been
    demand-loaded in, or which are swapped out.


Your page size may be 8192 bytes or 4096 bytes or something else:

sed$ getconf -a | grep "PAGE"
PAGESIZE                           4096
PAGE_SIZE                          4096
_AVPHYS_PAGES                      95456
_PHYS_PAGES                        8187584

nix$ getconf -a | grep "PAGE"
PAGESIZE                           65536
PAGE_SIZE                          65536
_AVPHYS_PAGES                      89121
_PHYS_PAGES                        95356


So while the nvidia-smi tool may seem to tell you that a process needs more memory in the GPU it isn't telling you much about the process running on your system.

sed$ nvidia-smi -q -d POWER,TEMPERATURE,PIDS

==============NVSMI LOG==============

Timestamp                           : Mon Jul  2 17:17:10 2018
Driver Version                      : 384.98

Attached GPUs                       : 1
GPU 00000000:86:00.0
    Temperature
        GPU Current Temp            : 40 C
        GPU Shutdown Temp           : 102 C
        GPU Slowdown Temp           : 97 C
        GPU Max Operating Temp      : 80 C
        Memory Current Temp         : N/A
        Memory Max Operating Temp   : N/A
    Power Readings
        Power Management            : Supported
        Power Draw                  : 16.28 W
        Power Limit                 : 110.00 W
        Default Power Limit         : 110.00 W
        Enforced Power Limit        : 110.00 W
        Min Power Limit             : 100.00 W
        Max Power Limit             : 130.00 W
    Power Samples
        Duration                    : N/A
        Number of Samples           : N/A
        Max                         : N/A
        Min                         : N/A
        Avg                         : N/A
    Processes
        Process ID                  : 2488
            Type                    : G
            Name                    : /usr/bin/X
            Used GPU Memory         : 218 MiB
        Process ID                  : 13211
            Type                    : G
            Name                    : /opt/firefox/firefox
            Used GPU Memory         : 21 MiB
        Process ID                  : 32110
            Type                    : G
            Name                    : /opt/firefox/firefox
            Used GPU Memory         : 21 MiB
        Process ID                  : 32668
            Type                    : G
            Name                    : /opt/firefox/firefox
            Used GPU Memory         : 2 MiB

sed$

Cute .. but not your actual process memory usage in your system.

Dennis
_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: https://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Reply via email to