Re: Fuite memoire Xorg debian 12

Top Page

Reply to this message
Author: Jérôme Kieffer
Date:  
To: guilde
CC: guilde
Subject: Re: Fuite memoire Xorg debian 12
Bonjour Olivier,

Merci de ta réponse

>     Je n'ai pas de connaissance spécifique de ce chipset, mais voici 
> quelques idées:
> - pour ce qui est du swap, pourquoi ne pas tout simplement pas le 
> désactiver ? Attention, tu peux toujours avoir un partition de swap, 
> utilisée pour le "hibernate", mais si tu supprimes l'entrée swap dans le 
> /etc/fstab, il ne sera pas utilisé. L'avantage, c'est que tu n'abîmeras 
> pas ton DD, et ta machine ne swapera pas. Par contre, en cas 
> sur-consommation de mémoire, c'est le process qui consomme le plus qui 
> sera tué, et donc tu planteras xorg. Tu peux le faire redémarrer 
> automatiquement. Tu peux aussi utiliser earlyoom pour le kill predictif 
> ... Ca, c'est pour le workaround "moche".


oui, ce sera plus rapide que de rebooter la machine. mais ca reste du work-around.
Pour le SSD, il est (encore) en pleine forme. D'ailleur quand ca swap, la
machine ne ralenti quasiment pas, signe que ce sont des données
statiques qui sont générées, genre des logs ou des evenements qui sont
jamais utilisés... et la fuite memoire est pas immense. J'ai jamais
fait tourner valgrind sur le serveur X.

> - pour ce qui est de la vidéo, je ne connais pas XCB. Par contre, il y a
> d'autres trucs pas mal sur ces chipsets vidéos, concernant la
> décompression par le chipset lui-même. On parle notamment de "VDPAU" :
> https://www.freedesktop.org/wiki/Software/VDPAU/ .
> Le noms ne sont pas super clairs dans les paquets Debian, aussi "vdpau"
> est souvent associé à NVIDIA, tandis que "va" est lié à Intel. Il y a
> aussi l'acronyme vaapi . Plus de doc ici :
> https://doc.ubuntu-fr.org/vaapi
> https://wiki.archlinux.org/title/Hardware_video_acceleration


J'ai regardé les doc, et visiblement tout semble OK coté des decodeurs hardware.
Le materiel est limité au MPEG2 et H264, au prochain upgrade de codec,
ca marchera plus (je suis prévenu). Par contre les flux transmis ce
jour sont en H264 et la puce est tout à fait à même de les decoder.
C'est la partie affichage qui semble être le facteur limitant.
En OpenGL, on est même pas à 1 image/second mais en XV, c'est bon
(charge systeme <1)

tv@neron:~$ cat vainfo.log
libva info: VA-API version 1.17.0
libva info: Trying to open
/usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init
function __vaDriverInit_1_17 libva error:
/usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed libva info:
va_openDriver() returns 1 libva info: Trying to open
/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init
function __vaDriverInit_1_8 libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile
- 2.4.1 vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Simple            :    VAEntrypointEncSlice
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointEncSlice
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointEncSlice
      VAProfileH264StereoHigh         :    VAEntrypointVLD
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
      VAProfileNone                   :    VAEntrypointVideoProc
      VAProfileJPEGBaseline           :    VAEntrypointVLD


tv@neron:~$ cat vainfo.log
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Simple            :    VAEntrypointEncSlice
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointEncSlice
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointEncSlice
      VAProfileH264StereoHigh         :    VAEntrypointVLD
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
      VAProfileNone                   :    VAEntrypointVideoProc
      VAProfileJPEGBaseline           :    VAEntrypointVLD
tv@neron:~$ cat vdpauinfo.log 
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
display: :0.0   screen: 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU


Video surface:

name   width height types
-------------------------------------------
420     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
420_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 


Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                   --- not supported ---
MPEG2_MAIN                     --- not supported ---
H264_BASELINE                  51 16384  2048  2048
H264_MAIN                      51 16384  2048  2048
H264_HIGH                      51 16384  2048  2048
VC1_SIMPLE                     --- not supported ---
VC1_MAIN                       --- not supported ---
VC1_ADVANCED                   --- not supported ---
MPEG4_PART2_SP                 --- not supported ---
MPEG4_PART2_ASP                --- not supported ---
DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      51 16384  2048  2048
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
VP9_PROFILE_0                  --- not supported ---
VP9_PROFILE_1                  --- not supported ---
VP9_PROFILE_2                  --- not supported ---
VP9_PROFILE_3                  --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---
HEVC_MAIN_444_10               --- not supported ---
HEVC_MAIN_444_12               --- not supported ---
AV1_MAIN                       --- not supported ---
AV1_HIGH                       --- not supported ---
AV1_PROFESSIONAL               --- not supported ---


Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  
R8G8B8A8         16384 16384    y  
R10G10B10A2      16384 16384    y  
B10G10R10A2      16384 16384    y  
A8               16384 16384    y  


Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384


Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             -
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  -
SHARPNESS                        -
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -


parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              -  
VIDEO_SURFACE_HEIGHT             -  
CHROMA_TYPE                      -  
LAYERS                           -  


attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 -  
CSC_MATRIX                       -  
NOISE_REDUCTION_LEVEL            -  
SHARPNESS_LEVEL                  -  
LUMA_KEY_MIN_LUMA                -  
LUMA_KEY_MAX_LUMA                -  



> - Personnellement j'utilise indépendamment vlc ou mpv pour voir des
> vidéos. J'apprécie vlc, mais mpv semble donner de meilleurs résultats
> pour l'utilisation de la décompression hardware. Tu peux aussi regarder
> du coté de mplayer (il me semble que mpv est un de ses fork, ou utilise
> son code).


C'est essentiellement pour des stream en rtsp depuis la freebox, mpv
n'a pas l'air de fonctionner "out of the box". Je fais un test avec
ffplay, il est capable de lire la video (load=0.8), je vais voir si il
y a une fuite de memoire dans quelques heures.

A++
--
Jérôme Kieffer