• Linus Torvalds's avatar
    Merge tag 'time-namespace-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 6d93a197
    Linus Torvalds authored
    Pull time namespace updates from Christian Brauner:
     "When time namespaces were introduced we missed to virtualize the
      'btime' field in /proc/stat. This confuses tasks which are in another
      time namespace with a virtualized boottime which is common in some
      container workloads. This contains Michael's series to fix 'btime'
      which Thomas asked me to take through my tree.
    
      To fix 'btime' virtualization we simply subtract the offset of the
      time namespace's boottime from btime before printing the stats. Note
      that since start_boottime of processes are seconds since boottime and
      the boottime stamp is now shifted according to the time namespace's
      offset, the offset of the time namespace also needs to be applied
      before the process stats are given to userspace. This avoids that
      processes shown by tools such as 'ps' appear as time travelers in the
      corresponding time namespace.
    
      Selftests are included to verify that btime virtualization in
      /proc/stat works as expected"
    
    * tag 'time-namespace-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
      namespace: make timens_on_fork() return nothing
      selftests/timens: added selftest for /proc/stat btime
      fs/proc: apply the time namespace offset to /proc/stat btime
      timens: additional helper functions for boottime offset handling
    6d93a197
stat.c 6.22 KB