[PATCH 0/1] fhandler_process.cc(format_process_stat): fix /proc/pid/stat issues

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Tue May 10 14:44:41 GMT 2022


Noticed some issues with x86 32 bit procps and checked /proc/pid/stat which
looked misaligned compared to x86_64 64 bit, due to int64_t format mismatches.
There were also issues with the tty_nr encoding (uses ctty which has major in
top 16 bits and minor in bottom 16 bits, where tty_nr is specified to have
major in bits 15:8 and minor across 31:20 and 7:0) and rsslim units in bytes
not pages.
This patch fixes those issues.
Below are the old and new /proc/pid/stat values and decoded listings for 32
bit; only tty_nr and rsslim values changed in 64 bit; tty_nr listing decoding
was also changed after.

==> proc-pid-stat-old-32.log <==
1025 (bash) S 1024 1025 1025 8912896 -1 0 147513 147513 0 0 49546 0 45000 49546 45000 0 20 0 0 4115675647 0 7397376

==> proc-pid-stat-new-32.log <==
27991 (bash) S 1 27991 1025 34816 -1 0 9662 9662 0 0 312 562 312 562 20 0 0 0 5113740411 7241728 2901 1413120

==> proc-pid-stat-list-old-32.log <==
CLK_TCK 1000 PAGE_SIZE 65536 boot time 5110786.43
 1 pid                1025 process
 2 comm             (bash) executable
 3 state                 S ?
 4 ppid               1024 parent
 5 pgrp               1025 group
 6 session            1025 id
 7 tty_nr         136    0 15:8,31:20,7:0
 8 tpgid                -1 group
 9 flags                 0 sys
10 minflt           147425 minor
11 cminflt          147425 minorchild
12 majflt                0 major
13 cmajflt               0 majorchild
14 utime            49.546 user
15 stime             0.000 sys
16 cutime           44.984 userchild
17 cstime           49.546 syschild
18 priority          44984 0..39->-20..19
19 nice                  0 -20..19
20 num_threads          20 threads
21 itrealvalue           0 timer
22 starttime   59 3:39:46.430 start
23 vsize        4115675647 memory
24 rss                   0 pages
25 rsslim          7397376 limit

==> proc-pid-stat-list-new-32.log <==
CLK_TCK 1000 PAGE_SIZE 65536 boot time 5114365.42
 1 pid               27991 process
 2 comm             (bash) executable
 3 state                 S ?
 4 ppid                  1 parent
 5 pgrp              27991 group
 6 session            1025 id
 7 tty_nr         136    0 15:8,31:20,7:0
 8 tpgid                -1 group
 9 flags                 0 sys
10 minflt             9662 minor
11 cminflt            9662 minorchild
12 majflt                0 major
13 cmajflt               0 majorchild
14 utime             0.312 user
15 stime             0.562 sys
16 cutime            0.312 userchild
17 cstime            0.562 syschild
18 priority             20 0..39->-20..19
19 nice                  0 -20..19
20 num_threads           0 threads
21 itrealvalue           0 timer
22 starttime     10:25.009 start
23 vsize           7241728 memory
24 rss                2901 pages
25 rsslim          1413120 limit

Brian Inglis (1):
  fhandler_process.cc(format_process_stat): fix /proc/pid/stat issues

 winsup/cygwin/fhandler_process.cc | 33 +++++++++++++++++++------------
 1 file changed, 20 insertions(+), 13 deletions(-)

-- 
2.36.0



More information about the Cygwin-patches mailing list