Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
kgraft
kgr.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kgr.sh of Package kgraft
#!/bin/bash # Check kGraft patching status # Libor Pechacek <lpechacek@suse.com> unset VERBOSE function kgr_in_progress() { [ "$(cat /sys/kernel/kgraft/in_progress)" -ne 0 ] } function kgr_poke_processes() { for PROC in /proc/[0-9]*; do if [ "$(cat $PROC/kgr_in_progress)" -ne 0 ]; then PID=$(echo $PROC | cut -d/ -f3) if [ -n "$VERBOSE" ]; then echo "sending $PID STOP/CONT" fi kill -STOP $PID kill -CONT $PID fi done } function kgr_dump_blocking_processes() { unset PIDS for PROC in /proc/[0-9]*; do if [ "$(cat $PROC/kgr_in_progress)" -ne 0 ]; then DIR=${PROC%/kgr_in_progress} PID=${DIR#/proc/} if [ -n "$VERBOSE" ]; then COMM="$(cat $DIR/cmdline | tr \0 \ )" # fallback to the command name, for example for kernel threads [ -z "$COMM" ] && COMM="[$(cat $DIR/comm | tr \0 \ )]" echo "$PID $COMM" if [ ${VERBOSE:-0} -gt 1 ]; then cat $DIR/stack | sed 's/^/ /' fi else echo $PID fi PIDS="$PIDS $PID" fi done if [ -z "$PIDS" -a -n "$VERBOSE" ]; then echo "no processes with kgr_in_progress set" fi } function kgr_status() { if kgr_in_progress ; then echo "in_progress" else echo "ready" fi } function kgr_patches() { unset PATCHES_FOUND for d in /sys/kernel/kgraft/*; do [ ! -d "$d" ] && continue PATCH_NAME=${d#/sys/kernel/kgraft/} PATCH_MOD=$(readlink $d/owner) PATCH_MOD=${PATCH_MOD#../../../module/} echo -n "${PATCH_MOD}" if [ -n "$VERBOSE" ]; then echo " ($PATCH_NAME)" else echo fi PATCHES_FOUND=1 done if [ -z "$PATCHES_FOUND" -a -n "$VERBOSE" ]; then echo "no patch" fi } USAGE="Usage: $0 [-h][-v] COMMAND Query and manipulate kGraft patching status. Commands: status: display the overall status of kGraft patching patches: display the list of loaded patches blocking: list processes that are preventing kGraft patching from finishing poke: move forward with the kGraft patching by sending STOP and CONT signal to the pending processes Options: -h print this help -v more detailed output Report bugs at https://bugzilla.suse.com/." PKGVERSION="@@VERSION@@" while getopts vh-: opt do case $opt$OPTARG in -help|h) exec echo "$USAGE" ;; -version) exec echo "kgr $PKGVERSION" ;; v) VERBOSE=$((${VERBOSE:-0} + 1)) ;; *) echo "$0: try '$0 --help'" >&2; exit 1 ;; esac done shift `expr $OPTIND - 1` if [ $# -ne 1 ]; then echo "Error: unknown command, try --help" >&2 exit 1 fi case $1 in blocking) kgr_dump_blocking_processes ;; poke) kgr_poke_processes ;; status) kgr_status ;; patches) kgr_patches ;; *) echo "unknown command \`$1'" esac
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor