library <stat>: remove that PIDS_WCHAN_ADDR enumerator
Removing the Item_table 'stat' oldflags for WCHAN_ADDR
was wrong since that 'stat' field is not a constant 0.
Rather, it could assume these 3 values: -1, 0, and +1.
I have not been able to pin down a '-1' result, but it
probably means some sort of permission error (-EPERM).
The '1' or '0' values were supposed to distinguish the
tasks that were or were not blocked (whether there was
a wchan address). However, in practice there is little
correlation between those values and availability of a
kernel symbol in /proc/$$/wchan (perhaps due to race).
Anyway, the real point is that a 'stat' wchan does not
now intentionally contain an address. Thus, outputting
'ffffff', '-' or '1' in programs like ps is senseless.
So this patch just eliminates PIDS_WCHAN_ADDR from our
item enumerators leaving only the PIDS_WCHAN_NAME guy.
Now the new library can't be blamed for bad addresses!
Reference(s):
. removed Item_table 'oldflags'
commit c4aa6c0ab4
. linux removal of wchan addresses
commit b2f73922d119686323f14fbbe46587f863852328
Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
f3ec7f0032
commit
912075605b
@ -251,7 +251,6 @@ REG_set(VM_STACK, ul_int, vm_stack)
|
||||
REG_set(VM_SWAP, ul_int, vm_swap)
|
||||
setDECL(VM_USED) { (void)I; R->result.ul_int = P->vm_swap + P->vm_rss; }
|
||||
REG_set(VSIZE_PGS, ul_int, vsize)
|
||||
REG_set(WCHAN_ADDR, ul_int, wchan)
|
||||
setDECL(WCHAN_NAME) { (void)I; R->result.str = strdup(lookup_wchan(P->tid)); }
|
||||
|
||||
#undef setDECL
|
||||
@ -500,7 +499,6 @@ static struct {
|
||||
{ RS(VM_SWAP), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
|
||||
{ RS(VM_USED), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
|
||||
{ RS(VSIZE_PGS), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
|
||||
{ RS(WCHAN_ADDR), 0, NULL, QS(ul_int), 0, TS(ul_int) }, // oldflags: was f_stat, but linux obsoleted
|
||||
{ RS(WCHAN_NAME), 0, FF(str), QS(str), 0, TS(str) }, // oldflags: tid already free
|
||||
|
||||
// dummy entry corresponding to PIDS_logical_end ...
|
||||
|
@ -144,7 +144,6 @@ enum pids_item {
|
||||
PIDS_VM_SWAP, // ul_int
|
||||
PIDS_VM_USED, // ul_int
|
||||
PIDS_VSIZE_PGS, // ul_int
|
||||
PIDS_WCHAN_ADDR, // ul_int
|
||||
PIDS_WCHAN_NAME // str
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user