kmem.sh: track kmem.py changes - enable kernel data structure accounting by default, add --user option for user-mode data only - add --verbose flag to enable msgs about skipped objects Change-Id: I3d27839ea6889a4cc29d6ca4ab0524381e6c9ee6
diff --git a/kmem.sh b/kmem.sh index 24dd2b7..b6e4d69 100755 --- a/kmem.sh +++ b/kmem.sh
@@ -25,14 +25,11 @@ # stack CAmkES per-thread stack # bootinfo Bootinfo page passed by the rooteserver # mmio MMIO region (backed by devivce memory) -# copyregion VSpace region (w/o backing memory) # -# Note mmio + copyregion sections do not count against memory usage as -# they are allocated from dedicated memory that does not have physical +# Note mmio sections do not count against memory usage as they are +# allocated from dedicated memory that does not have physical # memory backing. # -# TODO: account for system resources -# # ROOTDIR must be set to the top of the shodan development tree # (as done by build/setup.sh). @@ -48,10 +45,12 @@ # Default is a summary of release build. DETAILS="" BUILD="release" +KERNEL="--kernel" +VERBOSE="" function parseargv { - local usage="Usage: kmem.sh [-h|--help] [-d|--details] [-D|--debug] [-R|--release] [-s|--summary]" - local args=$(getopt -o dDRs --long details,debug,release,summary,help -n kmem.sh -- "$@") + local usage="Usage: kmem.sh [-h|--help] [-d|--details] [-D|--debug] [-R|--release] [-s|--summary] [-u|--user] [-v|--verbose]" + local args=$(getopt -o dDRsuv --long details,debug,release,summary,user,verbose,help -n kmem.sh -- "$@") set -- $args @@ -77,6 +76,16 @@ shift ;; + -u|--user) + KERNEL="" + shift + ;; + + -v|--verbose) + VERBOSE="--verbose" + shift + ;; + --) shift break @@ -94,4 +103,4 @@ CANTRIP_OUT="${ROOTDIR}/out/cantrip/${TARGET}/${BUILD}" PYTHONPATH="${PYTHONPATH}:${ROOTDIR}/cantrip/projects/capdl/python-capdl-tool" -exec python3 "${ROOTDIR}/cantrip/tools/seL4/kmem-tool/kmem.py" --object-state "${CANTRIP_OUT}/object-final.pickle" ${DETAILS} +exec python3 "${ROOTDIR}/cantrip/tools/seL4/kmem-tool/kmem.py" --object-state "${CANTRIP_OUT}/object-final.pickle" ${DETAILS} ${KERNEL} ${VERBOSE}