Uploaded image for project: ' AGL Development'
  1. AGL Development
  2. SPEC-2583

low-can creates so many file descriptors for one device

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • None
    • None
    • GG7.0.2

      Hi, when I look into low-can service, find low-can service creates so many file descriptors.

      I guess low-can service open CAN socket for one signal (one low-can-subscription object) so if one message ID has 7 signal for example, it opens can device 7 times and hold discriptors. Then there are a lot of file descriptors.

      Each low-can-subscription object looking events then checks the events is for the object.

      Is this right ?

      IMO, this affects performance.

      In products, there are over 1000 messages. So, IMHO, it is necessary to refactor low-can service to look one file descriptor then distribute target event .

       

      The below is the sample result with lsof command.

       

      root# lsof -p 2431
      COMMAND    PID USER   FD      TYPE             DEVICE SIZE/OFF  NODE NAME
      afbd-agl- 2431 root  cwd       DIR              179,1     4096    23 /home/0/app-data/agl-service-can-low-level
      afbd-agl- 2431 root  rtd       DIR              179,1     4096     2 /
      afbd-agl- 2431 root  txt       REG              179,1   317400 11951 /usr/bin/afb-daemon
      afbd-agl- 2431 root  mem       REG              179,1  7113416 28451 /var/local/lib/afm/applications/agl-service-can-low-level/7.90/lib/afb-low-can.so
      afbd-agl- 2431 root  mem       REG              179,1   661992   780 /lib/libm-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1    83784   729 /lib/libz.so.1.2.11
      afbd-agl- 2431 root  mem       REG              179,1    79696  1180 /lib/libgcc_s.so.1
      afbd-agl- 2431 root  mem       REG              179,1  1575296  4320 /usr/lib/libstdc++.so.6.0.24
      afbd-agl- 2431 root  mem       REG              179,1   456640  4544 /usr/lib/libcynara-commons.so.0.14.10
      afbd-agl- 2431 root  mem       REG              179,1    47032  4521 /usr/lib/libcynara-client-commons.so.0.14.10
      afbd-agl- 2431 root  mem       REG              179,1   132936 10975 /usr/lib/liblzma.so.5.2.3
      afbd-agl- 2431 root  mem       REG              179,1    22568  1272 /lib/libcap.so.2.25
      afbd-agl- 2431 root  mem       REG              179,1    72224   761 /lib/libresolv-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1  1304648  1280 /lib/libc-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1    27352  1183 /lib/librt-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1    10264  1271 /lib/libdl-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1   124896 11139 /usr/lib/libmagic.so.1.0.0
      afbd-agl- 2431 root  mem       REG              179,1    55272 11063 /usr/lib/libcynara-client.so.0.14.10
      afbd-agl- 2431 root  mem       REG              179,1  1777712  3855 /usr/lib/libcrypto.so.1.0.2
      afbd-agl- 2431 root  mem       REG              179,1    18312  1314 /lib/libuuid.so.1.3.0
      afbd-agl- 2431 root  mem       REG              179,1    96072  4236 /usr/lib/libmicrohttpd.so.12.43.0
      afbd-agl- 2431 root  mem       REG              179,1   529056  1308 /lib/libsystemd.so.0.19.0
      afbd-agl- 2431 root  mem       REG              179,1    38680  5958 /usr/lib/libjson-c.so.2.0.2
      afbd-agl- 2431 root  mem       REG              179,1    97712  1177 /lib/libpthread-2.26.so
      afbd-agl- 2431 root  mem       REG              179,1   124560   733 /lib/ld-2.26.so
      afbd-agl- 2431 root    0r      CHR                1,3      0t0  1047 /dev/null
      afbd-agl- 2431 root    1u     unix 0xffff80006adf9680      0t0 10164 type=STREAM
      afbd-agl- 2431 root    2u     unix 0xffff80006adf9680      0t0 10164 type=STREAM
      afbd-agl- 2431 root    3u     unix 0xffff80006acecd80      0t0  9503 /run/user/0/apis/ws/low-can type=STREAM
      afbd-agl- 2431 root    4u      DIR              179,1     4096 28443 /var/local/lib/afm/applications/agl-service-can-low-level/7.90
      afbd-agl- 2431 root    5u     unix 0xffff80006adf5b00      0t0 10890 type=STREAM
      afbd-agl- 2431 root    6u  a_inode               0,10        0  1044 [eventfd]
      afbd-agl- 2431 root    7u  a_inode               0,10        0  1044 [eventpoll]
      afbd-agl- 2431 root    8u      DIR              179,1     4096 10504 /usr/lib/afb/monitoring
      afbd-agl- 2431 root    9u      DIR              179,1     4096 28443 /var/local/lib/afm/applications/agl-service-can-low-level/7.90
      afbd-agl- 2431 root   10u  a_inode               0,10        0  1044 [eventpoll]
      afbd-agl- 2431 root   11u     IPv4              11295      0t0   TCP *:31017 (LISTEN)
      afbd-agl- 2431 root   12u     unix 0xffff80006aed2880      0t0 11918 /run/user/0/apis/ws/low-can type=STREAM
      afbd-agl- 2431 root   13u     unix 0xffff80006aed0d80      0t0 11931 /run/user/0/apis/ws/low-can type=STREAM
      afbd-agl- 2431 root   14u     sock                0,8      0t0 11937 protocol: CAN_BCM
      afbd-agl- 2431 root   15u     sock                0,8      0t0 11938 protocol: CAN_BCM
      afbd-agl- 2431 root   16u     sock                0,8      0t0 11939 protocol: CAN_BCM
      afbd-agl- 2431 root   17u     sock                0,8      0t0 11940 protocol: CAN_BCM
      afbd-agl- 2431 root   18u     sock                0,8      0t0 11941 protocol: CAN_BCM
      afbd-agl- 2431 root   19u     sock                0,8      0t0 11942 protocol: CAN_BCM
      afbd-agl- 2431 root   20u     sock                0,8      0t0 11943 protocol: CAN_BCM
      afbd-agl- 2431 root   21u     sock                0,8      0t0 11944 protocol: CAN_BCM
      afbd-agl- 2431 root   22u     sock                0,8      0t0 11945 protocol: CAN_BCM
      afbd-agl- 2431 root   23u     sock                0,8      0t0 11950 protocol: CAN_BCM
      afbd-agl- 2431 root   24u     sock                0,8      0t0 11951 protocol: CAN_BCM
      afbd-agl- 2431 root   25u     sock                0,8      0t0 11952 protocol: CAN_BCM
      afbd-agl- 2431 root   26u     sock                0,8      0t0 11953 protocol: CAN_BCM
      afbd-agl- 2431 root   27u     sock                0,8      0t0 11954 protocol: CAN_BCM
      afbd-agl- 2431 root   28u     sock                0,8      0t0 11955 protocol: CAN_BCM
      afbd-agl- 2431 root   29u     sock                0,8      0t0 11956 protocol: CAN_BCM
      afbd-agl- 2431 root   30u     sock                0,8      0t0 11957 protocol: CAN_BCM
      afbd-agl- 2431 root   31u     sock                0,8      0t0 11958 protocol: CAN_BCM
      afbd-agl- 2431 root   32u     sock                0,8      0t0 11959 protocol: CAN_BCM
      afbd-agl- 2431 root   33u     sock                0,8      0t0 11960 protocol: CAN_BCM
      afbd-agl- 2431 root   34u     sock                0,8      0t0 11961 protocol: CAN_BCM
      afbd-agl- 2431 root   35u     sock                0,8      0t0 11962 protocol: CAN_BCM
      afbd-agl- 2431 root   36u     sock                0,8      0t0 11963 protocol: CAN_BCM
      afbd-agl- 2431 root   37u     sock                0,8      0t0 11964 protocol: CAN_BCM
      afbd-agl- 2431 root   38u     sock                0,8      0t0 11965 protocol: CAN_BCM
      afbd-agl- 2431 root   39u     sock                0,8      0t0 11966 protocol: CAN_BCM
      afbd-agl- 2431 root   40u     sock                0,8      0t0 11967 protocol: CAN_BCM
      afbd-agl- 2431 root   41u     sock                0,8      0t0 11968 protocol: CAN_BCM
      afbd-agl- 2431 root   42u     sock                0,8      0t0 11973 protocol: CAN_BCM
      afbd-agl- 2431 root   43u     sock                0,8      0t0 11974 protocol: CAN_BCM
      afbd-agl- 2431 root   44u     sock                0,8      0t0 11975 protocol: CAN_BCM
      afbd-agl- 2431 root   45u     sock                0,8      0t0 11976 protocol: CAN_BCM
      afbd-agl- 2431 root   46u     sock                0,8      0t0 11977 protocol: CAN_BCM
      afbd-agl- 2431 root   47u     sock                0,8      0t0 11978 protocol: CAN_BCM
      afbd-agl- 2431 root   48u     sock                0,8      0t0 11979 protocol: CAN_BCM
      afbd-agl- 2431 root   49u     sock                0,8      0t0 11980 protocol: CAN_BCM
      afbd-agl- 2431 root   50u     sock                0,8      0t0 11981 protocol: CAN_BCM
      afbd-agl- 2431 root   51u     sock                0,8      0t0 11982 protocol: CAN_BCM
      afbd-agl- 2431 root   52u     sock                0,8      0t0 11983 protocol: CAN_BCM
      afbd-agl- 2431 root   53u     sock                0,8      0t0 11984 protocol: CAN_BCM
      afbd-agl- 2431 root   54u     sock                0,8      0t0 11986 protocol: CAN_BCM
      afbd-agl- 2431 root   55u     sock                0,8      0t0 11987 protocol: CAN_BCM
      afbd-agl- 2431 root   56u     sock                0,8      0t0 11989 protocol: CAN_BCM
      afbd-agl- 2431 root   57u     sock                0,8      0t0 11990 protocol: CAN_BCM
      afbd-agl- 2431 root   58u     sock                0,8      0t0 11991 protocol: CAN_BCM
      afbd-agl- 2431 root   59u     sock                0,8      0t0 11992 protocol: CAN_BCM
      afbd-agl- 2431 root   60u     sock                0,8      0t0 11993 protocol: CAN_BCM
      afbd-agl- 2431 root   61u     sock                0,8      0t0 11994 protocol: CAN_BCM
      afbd-agl- 2431 root   62u     sock                0,8      0t0 11995 protocol: CAN_BCM
      

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            claneys Romain Forlot
            knimitz Kazumasa Mitsunari
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: