[Toybox] [PATCH] ps: drop dependency on Android's libprocessgroup.
T.J. Mercier
tjmercier at google.com
Mon Aug 26 08:14:29 PDT 2024
On Fri, Aug 23, 2024 at 3:52 PM enh <enh at google.com> wrote:
>
> This dependency keeps getting hairier and hairier (json!) and the
> current system for policy scheduling is actually quite different from
> the original anyway.
> ---
> lib/portability.h | 14 --------------
> toys/posix/ps.c | 33 ++++++++++++++++++++++++++++-----
> 2 files changed, 28 insertions(+), 19 deletions(-)
Hi,
I assume this mailing list is supposed to be Content-Type: text/plain?
> + else if (!strcmp(s, "system-background")) strcpy(tb->pcy, " ");
Is this empty for compatibility with the existing output?
system_server is a "fun" case but I think this new toybox code should
still report the same info. It has threads in different cgroups (all
under the same pid of course):
husky:/dev/cpuset/system-background # cat cgroup.procs | xargs ps -o
pid,pcy,comm,cmd
PID PCY COMM CMD
492 logd logd
493 lmkd lmkd
503 hwservicemanager hwservicemanage
504 vndservicemanager vndservicemanag
574 android.hardware.composer.+ binder:574_3
727 tombstoned tombstoned
976 android.hardware.sensors-s+ binder:976_3
985 fg app_process64 system_server
1475 storaged storaged
1483 dmd dmd
1581 gatekeeperd gatekeeperd
1637 logcat logcat
husky:/dev/cpuset/system-background # cat /proc/985/cgroup
3:cpuset:/foreground
2:cpu:/
1:blkio:/
0::/uid_1000/pid_985
husky:/ # grep cpuset /proc/`pidof system_server`/task/*/cgroup
/proc/985/task/1028/cgroup:3:cpuset:/foreground
/proc/985/task/1029/cgroup:3:cpuset:/foreground
/proc/985/task/1031/cgroup:3:cpuset:/foreground
/proc/985/task/1032/cgroup:3:cpuset:/foreground
/proc/985/task/1033/cgroup:3:cpuset:/foreground
/proc/985/task/1034/cgroup:3:cpuset:/foreground
/proc/985/task/1035/cgroup:3:cpuset:/foreground
/proc/985/task/1036/cgroup:3:cpuset:/foreground
/proc/985/task/1037/cgroup:3:cpuset:/foreground
/proc/985/task/1038/cgroup:3:cpuset:/foreground
/proc/985/task/1049/cgroup:3:cpuset:/foreground
/proc/985/task/1050/cgroup:3:cpuset:/foreground
/proc/985/task/1051/cgroup:3:cpuset:/foreground
/proc/985/task/1052/cgroup:3:cpuset:/foreground
/proc/985/task/1053/cgroup:3:cpuset:/foreground
/proc/985/task/1054/cgroup:3:cpuset:/foreground
/proc/985/task/1055/cgroup:3:cpuset:/top-app
/proc/985/task/1056/cgroup:3:cpuset:/top-app
/proc/985/task/1057/cgroup:3:cpuset:/top-app
/proc/985/task/1058/cgroup:3:cpuset:/foreground
/proc/985/task/1074/cgroup:3:cpuset:/system-background
/proc/985/task/1075/cgroup:3:cpuset:/foreground
/proc/985/task/1083/cgroup:3:cpuset:/foreground
/proc/985/task/1084/cgroup:3:cpuset:/foreground
/proc/985/task/1089/cgroup:3:cpuset:/foreground
/proc/985/task/1090/cgroup:3:cpuset:/foreground
/proc/985/task/1092/cgroup:3:cpuset:/foreground
/proc/985/task/1094/cgroup:3:cpuset:/foreground
/proc/985/task/1095/cgroup:3:cpuset:/foreground
/proc/985/task/1096/cgroup:3:cpuset:/foreground
/proc/985/task/1097/cgroup:3:cpuset:/foreground
/proc/985/task/1101/cgroup:3:cpuset:/foreground
/proc/985/task/1104/cgroup:3:cpuset:/foreground
/proc/985/task/1106/cgroup:3:cpuset:/foreground
/proc/985/task/1107/cgroup:3:cpuset:/foreground
/proc/985/task/1108/cgroup:3:cpuset:/foreground
/proc/985/task/1109/cgroup:3:cpuset:/foreground
/proc/985/task/1110/cgroup:3:cpuset:/foreground
/proc/985/task/1111/cgroup:3:cpuset:/foreground
/proc/985/task/1112/cgroup:3:cpuset:/foreground
/proc/985/task/1113/cgroup:3:cpuset:/foreground
/proc/985/task/1114/cgroup:3:cpuset:/foreground
/proc/985/task/1115/cgroup:3:cpuset:/foreground
/proc/985/task/1117/cgroup:3:cpuset:/foreground
/proc/985/task/1124/cgroup:3:cpuset:/foreground
/proc/985/task/1126/cgroup:3:cpuset:/foreground
/proc/985/task/1127/cgroup:3:cpuset:/foreground
/proc/985/task/1131/cgroup:3:cpuset:/foreground
/proc/985/task/1615/cgroup:3:cpuset:/foreground
/proc/985/task/1617/cgroup:3:cpuset:/foreground
/proc/985/task/1621/cgroup:3:cpuset:/foreground
/proc/985/task/1659/cgroup:3:cpuset:/foreground
/proc/985/task/1660/cgroup:3:cpuset:/foreground
/proc/985/task/1661/cgroup:3:cpuset:/foreground
/proc/985/task/1662/cgroup:3:cpuset:/foreground
/proc/985/task/1663/cgroup:3:cpuset:/foreground
/proc/985/task/1664/cgroup:3:cpuset:/foreground
/proc/985/task/1665/cgroup:3:cpuset:/foreground
/proc/985/task/1668/cgroup:3:cpuset:/foreground
/proc/985/task/1669/cgroup:3:cpuset:/foreground
/proc/985/task/1672/cgroup:3:cpuset:/system-background
/proc/985/task/1673/cgroup:3:cpuset:/foreground
/proc/985/task/1674/cgroup:3:cpuset:/foreground
/proc/985/task/1675/cgroup:3:cpuset:/foreground
/proc/985/task/1676/cgroup:3:cpuset:/foreground
/proc/985/task/1677/cgroup:3:cpuset:/foreground
/proc/985/task/1678/cgroup:3:cpuset:/foreground
/proc/985/task/1854/cgroup:3:cpuset:/foreground
/proc/985/task/1855/cgroup:3:cpuset:/foreground
/proc/985/task/1859/cgroup:3:cpuset:/foreground
/proc/985/task/1860/cgroup:3:cpuset:/foreground
/proc/985/task/1871/cgroup:3:cpuset:/foreground
/proc/985/task/1872/cgroup:3:cpuset:/top-app
/proc/985/task/1873/cgroup:3:cpuset:/top-app
/proc/985/task/1883/cgroup:3:cpuset:/foreground
/proc/985/task/1886/cgroup:3:cpuset:/foreground
/proc/985/task/1887/cgroup:3:cpuset:/foreground
/proc/985/task/1888/cgroup:3:cpuset:/foreground
/proc/985/task/1889/cgroup:3:cpuset:/foreground
/proc/985/task/1890/cgroup:3:cpuset:/foreground
/proc/985/task/1897/cgroup:3:cpuset:/foreground
/proc/985/task/1898/cgroup:3:cpuset:/foreground
/proc/985/task/1900/cgroup:3:cpuset:/foreground
/proc/985/task/1905/cgroup:3:cpuset:/foreground
/proc/985/task/1906/cgroup:3:cpuset:/foreground
/proc/985/task/1911/cgroup:3:cpuset:/foreground
/proc/985/task/1913/cgroup:3:cpuset:/foreground
/proc/985/task/1922/cgroup:3:cpuset:/foreground
/proc/985/task/1930/cgroup:3:cpuset:/foreground
/proc/985/task/1933/cgroup:3:cpuset:/foreground
/proc/985/task/1941/cgroup:3:cpuset:/foreground
/proc/985/task/1959/cgroup:3:cpuset:/foreground
/proc/985/task/1964/cgroup:3:cpuset:/foreground
/proc/985/task/1966/cgroup:3:cpuset:/foreground
/proc/985/task/1967/cgroup:3:cpuset:/foreground
/proc/985/task/1968/cgroup:3:cpuset:/foreground
/proc/985/task/1969/cgroup:3:cpuset:/foreground
/proc/985/task/1971/cgroup:3:cpuset:/foreground
/proc/985/task/1972/cgroup:3:cpuset:/foreground
/proc/985/task/1978/cgroup:3:cpuset:/foreground
/proc/985/task/1979/cgroup:3:cpuset:/foreground
/proc/985/task/1980/cgroup:3:cpuset:/foreground
/proc/985/task/1981/cgroup:3:cpuset:/foreground
/proc/985/task/1984/cgroup:3:cpuset:/foreground
/proc/985/task/1985/cgroup:3:cpuset:/foreground
/proc/985/task/1986/cgroup:3:cpuset:/foreground
/proc/985/task/1989/cgroup:3:cpuset:/foreground
/proc/985/task/1990/cgroup:3:cpuset:/foreground
/proc/985/task/1991/cgroup:3:cpuset:/foreground
/proc/985/task/1992/cgroup:3:cpuset:/foreground
/proc/985/task/1993/cgroup:3:cpuset:/foreground
/proc/985/task/1994/cgroup:3:cpuset:/foreground
/proc/985/task/1997/cgroup:3:cpuset:/foreground
/proc/985/task/1998/cgroup:3:cpuset:/foreground
/proc/985/task/2000/cgroup:3:cpuset:/foreground
/proc/985/task/2001/cgroup:3:cpuset:/foreground
/proc/985/task/2002/cgroup:3:cpuset:/foreground
/proc/985/task/2003/cgroup:3:cpuset:/foreground
/proc/985/task/2005/cgroup:3:cpuset:/foreground
/proc/985/task/2006/cgroup:3:cpuset:/foreground
/proc/985/task/2007/cgroup:3:cpuset:/foreground
/proc/985/task/2010/cgroup:3:cpuset:/foreground
/proc/985/task/2011/cgroup:3:cpuset:/foreground
/proc/985/task/2012/cgroup:3:cpuset:/foreground
/proc/985/task/2013/cgroup:3:cpuset:/foreground
/proc/985/task/2014/cgroup:3:cpuset:/foreground
/proc/985/task/2015/cgroup:3:cpuset:/foreground
/proc/985/task/2018/cgroup:3:cpuset:/foreground
/proc/985/task/2019/cgroup:3:cpuset:/foreground
/proc/985/task/2020/cgroup:3:cpuset:/foreground
/proc/985/task/2021/cgroup:3:cpuset:/foreground
/proc/985/task/2024/cgroup:3:cpuset:/foreground
/proc/985/task/2025/cgroup:3:cpuset:/foreground
/proc/985/task/2026/cgroup:3:cpuset:/foreground
/proc/985/task/2028/cgroup:3:cpuset:/foreground
/proc/985/task/2029/cgroup:3:cpuset:/foreground
/proc/985/task/2030/cgroup:3:cpuset:/foreground
/proc/985/task/2031/cgroup:3:cpuset:/foreground
/proc/985/task/2033/cgroup:3:cpuset:/foreground
/proc/985/task/2038/cgroup:3:cpuset:/foreground
/proc/985/task/2039/cgroup:3:cpuset:/foreground
/proc/985/task/2041/cgroup:3:cpuset:/foreground
/proc/985/task/2042/cgroup:3:cpuset:/foreground
/proc/985/task/2045/cgroup:3:cpuset:/foreground
/proc/985/task/2046/cgroup:3:cpuset:/foreground
/proc/985/task/2047/cgroup:3:cpuset:/foreground
/proc/985/task/2048/cgroup:3:cpuset:/foreground
/proc/985/task/2050/cgroup:3:cpuset:/foreground
/proc/985/task/2051/cgroup:3:cpuset:/foreground
/proc/985/task/2052/cgroup:3:cpuset:/foreground
/proc/985/task/2053/cgroup:3:cpuset:/foreground
/proc/985/task/2054/cgroup:3:cpuset:/foreground
/proc/985/task/2056/cgroup:3:cpuset:/foreground
/proc/985/task/2060/cgroup:3:cpuset:/foreground
/proc/985/task/2062/cgroup:3:cpuset:/foreground
/proc/985/task/2066/cgroup:3:cpuset:/foreground
/proc/985/task/2069/cgroup:3:cpuset:/system-background
/proc/985/task/2075/cgroup:3:cpuset:/foreground
/proc/985/task/2076/cgroup:3:cpuset:/foreground
/proc/985/task/2077/cgroup:3:cpuset:/foreground
/proc/985/task/2078/cgroup:3:cpuset:/foreground
/proc/985/task/2082/cgroup:3:cpuset:/foreground
/proc/985/task/2086/cgroup:3:cpuset:/foreground
/proc/985/task/2089/cgroup:3:cpuset:/foreground
/proc/985/task/2113/cgroup:3:cpuset:/foreground
/proc/985/task/2126/cgroup:3:cpuset:/foreground
/proc/985/task/2127/cgroup:3:cpuset:/foreground
/proc/985/task/2173/cgroup:3:cpuset:/foreground
/proc/985/task/2183/cgroup:3:cpuset:/foreground
/proc/985/task/2211/cgroup:3:cpuset:/system-background
/proc/985/task/2232/cgroup:3:cpuset:/foreground
/proc/985/task/2247/cgroup:3:cpuset:/foreground
/proc/985/task/2248/cgroup:3:cpuset:/foreground
/proc/985/task/2414/cgroup:3:cpuset:/foreground
/proc/985/task/2417/cgroup:3:cpuset:/foreground
/proc/985/task/2419/cgroup:3:cpuset:/foreground
/proc/985/task/2421/cgroup:3:cpuset:/foreground
/proc/985/task/2422/cgroup:3:cpuset:/foreground
/proc/985/task/2423/cgroup:3:cpuset:/foreground
/proc/985/task/2425/cgroup:3:cpuset:/foreground
/proc/985/task/2426/cgroup:3:cpuset:/foreground
/proc/985/task/2428/cgroup:3:cpuset:/foreground
/proc/985/task/2471/cgroup:3:cpuset:/foreground
/proc/985/task/2527/cgroup:3:cpuset:/top-app
/proc/985/task/2563/cgroup:3:cpuset:/foreground
/proc/985/task/2565/cgroup:3:cpuset:/foreground
/proc/985/task/2567/cgroup:3:cpuset:/foreground
/proc/985/task/2568/cgroup:3:cpuset:/foreground
/proc/985/task/2569/cgroup:3:cpuset:/foreground
/proc/985/task/2571/cgroup:3:cpuset:/foreground
/proc/985/task/2799/cgroup:3:cpuset:/foreground
/proc/985/task/2856/cgroup:3:cpuset:/top-app
/proc/985/task/2860/cgroup:3:cpuset:/top-app
/proc/985/task/2864/cgroup:3:cpuset:/foreground
/proc/985/task/2865/cgroup:3:cpuset:/foreground
/proc/985/task/2882/cgroup:3:cpuset:/foreground
/proc/985/task/2883/cgroup:3:cpuset:/foreground
/proc/985/task/2884/cgroup:3:cpuset:/foreground
/proc/985/task/2885/cgroup:3:cpuset:/foreground
/proc/985/task/2886/cgroup:3:cpuset:/foreground
/proc/985/task/2887/cgroup:3:cpuset:/foreground
/proc/985/task/2888/cgroup:3:cpuset:/foreground
/proc/985/task/2889/cgroup:3:cpuset:/foreground
/proc/985/task/2890/cgroup:3:cpuset:/foreground
/proc/985/task/2905/cgroup:3:cpuset:/foreground
/proc/985/task/2989/cgroup:3:cpuset:/foreground
/proc/985/task/3013/cgroup:3:cpuset:/foreground
/proc/985/task/3018/cgroup:3:cpuset:/foreground
/proc/985/task/3020/cgroup:3:cpuset:/foreground
/proc/985/task/3022/cgroup:3:cpuset:/foreground
/proc/985/task/3063/cgroup:3:cpuset:/foreground
/proc/985/task/3071/cgroup:3:cpuset:/foreground
/proc/985/task/3112/cgroup:3:cpuset:/foreground
/proc/985/task/3113/cgroup:3:cpuset:/foreground
/proc/985/task/3116/cgroup:3:cpuset:/foreground
/proc/985/task/3200/cgroup:3:cpuset:/foreground
/proc/985/task/3220/cgroup:3:cpuset:/foreground
/proc/985/task/3223/cgroup:3:cpuset:/foreground
/proc/985/task/3224/cgroup:3:cpuset:/foreground
/proc/985/task/3225/cgroup:3:cpuset:/foreground
/proc/985/task/3226/cgroup:3:cpuset:/foreground
/proc/985/task/3229/cgroup:3:cpuset:/foreground
/proc/985/task/3230/cgroup:3:cpuset:/foreground
/proc/985/task/3280/cgroup:3:cpuset:/foreground
/proc/985/task/3293/cgroup:3:cpuset:/foreground
/proc/985/task/3294/cgroup:3:cpuset:/foreground
/proc/985/task/3649/cgroup:3:cpuset:/foreground
/proc/985/task/3708/cgroup:3:cpuset:/foreground
/proc/985/task/3737/cgroup:3:cpuset:/foreground
/proc/985/task/3835/cgroup:3:cpuset:/foreground
/proc/985/task/3836/cgroup:3:cpuset:/foreground
/proc/985/task/3840/cgroup:3:cpuset:/foreground
/proc/985/task/3841/cgroup:3:cpuset:/foreground
/proc/985/task/4828/cgroup:3:cpuset:/foreground
/proc/985/task/4838/cgroup:3:cpuset:/foreground
/proc/985/task/4977/cgroup:3:cpuset:/foreground
/proc/985/task/5188/cgroup:3:cpuset:/foreground
/proc/985/task/5765/cgroup:3:cpuset:/foreground
/proc/985/task/5988/cgroup:3:cpuset:/foreground
/proc/985/task/5998/cgroup:3:cpuset:/foreground
/proc/985/task/7793/cgroup:3:cpuset:/foreground
/proc/985/task/7995/cgroup:3:cpuset:/foreground
/proc/985/task/985/cgroup:3:cpuset:/foreground
> + if ((s = strstr(line, ":cpuset:/"))) {
So this ignores the old schedtune case from get_sched_policy, however
I think that's ok because schedtune is an out of tree driver only in
Android 4.19 kernels which are EOL in 4 months at the end of this
December.
> + else if (!strcmp(s, "foreground-window")) strcpy(tb->pcy, "wi");
I think this should be "foreground_window". Underscore instead of
hyphen for that one. Maybe we should fix that one on our side since
it's unlike all the others, and not actually in use yet.
> else strcpy(tb->pcy, "?");
Should this be two ?s to maintain the column width?
This solution will work as long as Android continues to use cpuset v1.
A v2 upgrade should happen at some point, but it's not clear when.
New policy names and abbreviations will have to be manually synced
with this if any are added (which should be rare):
https://cs.android.com/android/platform/superproject/main/+/main:system/core/rootdir/init.rc;l=360?q=mkdir.*%2Fdev%2Fcpuset
Best,
T.J. from the Android team
More information about the Toybox
mailing list