• Pavel Emelyanov's avatar
    proc: Keep /proc/self cached separately from /proc/pid · abeae267
    Pavel Emelyanov authored
    When dumping tasks we do a lot of open_proc()-s and to
    speed this up the /proc/pid directory is opened first
    and the fd is kept cached. So next open_proc()-s do just
    openat(cached_fd, name).
    
    The thing is that we sometimes call open_proc(PROC_SELF)
    in between and proc helpers cache the /proc/self too. As
    the result we have a bunch of
    
      open(/proc/pid)
      close()
      open(/proc/self)
      close()
    
    see-saw-s in the middle of dumping tasks.
    
    To fix this we may cache the /proc/self separately from
    the /proc/pid descriptor. This eliminates quite a lot
    of pointless open-s and close-s.
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    abeae267
util.c 14.2 KB