Merge branch 'development' of pccluster.org:mckernel into development
This commit is contained in:
@@ -64,7 +64,6 @@ static inline int futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval,
|
||||
return oldval;
|
||||
}
|
||||
|
||||
#ifdef POSTK_DEBUG_ARCH_DEP_8 /* arch depend hide */
|
||||
static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr)
|
||||
{
|
||||
int op = (encoded_op >> 28) & 7;
|
||||
@@ -128,7 +127,6 @@ static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr)
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif /* !POSTK_DEBUG_ARCH_DEP_8 */
|
||||
|
||||
static inline int get_futex_value_locked(uint32_t *dest, uint32_t *from)
|
||||
{
|
||||
|
||||
@@ -48,6 +48,9 @@ if ls /dev/mcos* 1>/dev/null 2>&1; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Allow ihkmond to flush kmsg buffer
|
||||
sleep 2.0
|
||||
|
||||
# Query IHK-SMP resources and release them
|
||||
if ! ${SBINDIR}/ihkconfig 0 query cpu > /dev/null; then
|
||||
echo "error: querying cpus" >&2
|
||||
@@ -62,17 +65,23 @@ if [ "${cpus}" != "" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! ${SBINDIR}/ihkconfig 0 query mem > /dev/null; then
|
||||
echo "error: querying memory" >&2
|
||||
exit 1
|
||||
fi
|
||||
#if ! ${SBINDIR}/ihkconfig 0 query mem > /dev/null; then
|
||||
# echo "error: querying memory" >&2
|
||||
# exit 1
|
||||
#fi
|
||||
#
|
||||
#mem=`${SBINDIR}/ihkconfig 0 query mem`
|
||||
#if [ "${mem}" != "" ]; then
|
||||
# if ! ${SBINDIR}/ihkconfig 0 release mem $mem > /dev/null; then
|
||||
# echo "error: releasing memory" >&2
|
||||
# exit 1
|
||||
# fi
|
||||
#fi
|
||||
|
||||
mem=`${SBINDIR}/ihkconfig 0 query mem`
|
||||
if [ "${mem}" != "" ]; then
|
||||
if ! ${SBINDIR}/ihkconfig 0 release mem $mem > /dev/null; then
|
||||
echo "error: releasing memory" >&2
|
||||
exit 1
|
||||
fi
|
||||
# Release all memory
|
||||
if ! ${SBINDIR}/ihkconfig 0 release mem "all" > /dev/null; then
|
||||
echo "error: releasing memory" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove delegator if loaded
|
||||
|
||||
@@ -9,7 +9,6 @@ IHK_BASE=$(src)/../../../../ihk
|
||||
|
||||
obj-m += mcctrl.o
|
||||
|
||||
# POSTK_DEBUG_ARCH_DEP_1, arch depend "-mcmodel"
|
||||
# POSTK_DEBUG_ARCH_DEP_83, arch depend translate_rva_to_rpa() move
|
||||
ccflags-y := -I$(IHK_BASE)/linux/include \
|
||||
-I$(IHK_BASE)/linux/include/ihk/arch/$(ARCH) \
|
||||
@@ -24,9 +23,8 @@ ccflags-y := -I$(IHK_BASE)/linux/include \
|
||||
-I$(src)/../../../kernel/include \
|
||||
-DMCEXEC_PATH=\"$(BINDIR)/mcexec\"
|
||||
|
||||
ifneq ($(ARCH), arm64)
|
||||
ccflags-y += -mno-red-zone -mcmodel=kernel
|
||||
endif
|
||||
# depending arch
|
||||
include @abs_builddir@/arch/$(ARCH)/Makefile
|
||||
|
||||
mcctrl-y := driver.o control.o ikc.o syscall.o procfs.o binfmt_mcexec.o
|
||||
mcctrl-y += sysfs.o sysfs_files.o arch/$(ARCH)/archdeps.o
|
||||
|
||||
@@ -1 +1 @@
|
||||
# dummy file
|
||||
ccflags-y += -mno-red-zone -mcmodel=kernel
|
||||
|
||||
@@ -632,6 +632,7 @@ static long mcexec_get_cpuset(ihk_os_t os, unsigned long arg)
|
||||
|
||||
pli->task = current;
|
||||
pli->ready = 0;
|
||||
pli->timeout = 0;
|
||||
init_waitqueue_head(&pli->pli_wq);
|
||||
|
||||
pli_next = NULL;
|
||||
@@ -693,11 +694,50 @@ static long mcexec_get_cpuset(ihk_os_t os, unsigned long arg)
|
||||
dprintk("%s: pid: %d, waiting in list\n",
|
||||
__FUNCTION__, task_tgid_vnr(current));
|
||||
mutex_unlock(&pe->lock);
|
||||
ret = wait_event_interruptible(pli->pli_wq, pli->ready);
|
||||
/* Timeout period: 10 secs + (#procs * 0.1sec) */
|
||||
ret = wait_event_interruptible_timeout(pli->pli_wq,
|
||||
pli->ready,
|
||||
msecs_to_jiffies(10000 + req.nr_processes * 100));
|
||||
mutex_lock(&pe->lock);
|
||||
if (ret != 0) {
|
||||
|
||||
/* First timeout task? Wake up everyone else,
|
||||
* but tell them we timed out */
|
||||
if (ret == 0) {
|
||||
printk("%s: error: pid: %d, timed out, waking everyone\n",
|
||||
__FUNCTION__, task_tgid_vnr(current));
|
||||
while (!list_empty(&pe->pli_list)) {
|
||||
pli_next = list_first_entry(&pe->pli_list,
|
||||
struct process_list_item, list);
|
||||
list_del(&pli_next->list);
|
||||
pli_next->ready = 1;
|
||||
pli_next->timeout = 1;
|
||||
wake_up_interruptible(&pli_next->pli_wq);
|
||||
}
|
||||
|
||||
/* Reset process counter to start state */
|
||||
pe->nr_processes = -1;
|
||||
ret = -ETIMEDOUT;
|
||||
goto put_and_unlock_out;
|
||||
}
|
||||
|
||||
/* Interrupted or woken up by someone else due to time out? */
|
||||
if (ret < 0 || pli->timeout) {
|
||||
if (ret > 0) {
|
||||
printk("%s: error: pid: %d, job startup timed out\n",
|
||||
__FUNCTION__, task_tgid_vnr(current));
|
||||
ret = -ETIMEDOUT;
|
||||
}
|
||||
goto put_and_unlock_out;
|
||||
}
|
||||
|
||||
/* Incorrect wakeup state? */
|
||||
if (!pli->ready) {
|
||||
printk("%s: error: pid: %d, not ready but woken?\n",
|
||||
__FUNCTION__, task_tgid_vnr(current));
|
||||
ret = -EINVAL;
|
||||
goto put_and_unlock_out;
|
||||
}
|
||||
|
||||
dprintk("%s: pid: %d, woken up\n",
|
||||
__FUNCTION__, task_tgid_vnr(current));
|
||||
}
|
||||
|
||||
@@ -304,6 +304,7 @@ struct node_topology {
|
||||
|
||||
struct process_list_item {
|
||||
int ready;
|
||||
int timeout;
|
||||
struct task_struct *task;
|
||||
struct list_head list;
|
||||
wait_queue_head_t pli_wq;
|
||||
|
||||
@@ -117,78 +117,9 @@
|
||||
#include <arch/system.h>
|
||||
#endif
|
||||
|
||||
#ifdef POSTK_DEBUG_ARCH_DEP_8 /* arch depend hide */
|
||||
#else
|
||||
static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr)
|
||||
{
|
||||
int op = (encoded_op >> 28) & 7;
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
#ifdef __UACCESS__
|
||||
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
|
||||
return -EFAULT;
|
||||
#endif
|
||||
|
||||
switch (op) {
|
||||
case FUTEX_OP_SET:
|
||||
__futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
|
||||
break;
|
||||
case FUTEX_OP_ADD:
|
||||
__futex_atomic_op1("lock; xaddl %0, %2", ret, oldval,
|
||||
uaddr, oparg);
|
||||
break;
|
||||
case FUTEX_OP_OR:
|
||||
__futex_atomic_op2("orl %4, %3", ret, oldval, uaddr, oparg);
|
||||
break;
|
||||
case FUTEX_OP_ANDN:
|
||||
__futex_atomic_op2("andl %4, %3", ret, oldval, uaddr, ~oparg);
|
||||
break;
|
||||
case FUTEX_OP_XOR:
|
||||
__futex_atomic_op2("xorl %4, %3", ret, oldval, uaddr, oparg);
|
||||
break;
|
||||
default:
|
||||
ret = -ENOSYS;
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
switch (cmp) {
|
||||
case FUTEX_OP_CMP_EQ:
|
||||
ret = (oldval == cmparg);
|
||||
break;
|
||||
case FUTEX_OP_CMP_NE:
|
||||
ret = (oldval != cmparg);
|
||||
break;
|
||||
case FUTEX_OP_CMP_LT:
|
||||
ret = (oldval < cmparg);
|
||||
break;
|
||||
case FUTEX_OP_CMP_GE:
|
||||
ret = (oldval >= cmparg);
|
||||
break;
|
||||
case FUTEX_OP_CMP_LE:
|
||||
ret = (oldval <= cmparg);
|
||||
break;
|
||||
case FUTEX_OP_CMP_GT:
|
||||
ret = (oldval > cmparg);
|
||||
break;
|
||||
default:
|
||||
ret = -ENOSYS;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* arch depend hide */
|
||||
#endif // __KERNEL__
|
||||
#endif // _ASM_X86_FUTEX_H
|
||||
|
||||
|
||||
|
||||
#define FUTEX_HASHBITS 8 /* 256 entries in each futex hash tbl */
|
||||
|
||||
#define FUT_OFF_INODE 1 /* We set bit 0 if key has a reference on inode */
|
||||
|
||||
@@ -1466,14 +1466,6 @@ static int remap_one_page(void *arg0, page_table_t pt, pte_t *ptep,
|
||||
dkprintf("remap_one_page(%p,%p,%p %#lx,%p,%d)\n",
|
||||
arg0, pt, ptep, *ptep, pgaddr, pgshift);
|
||||
|
||||
/* XXX: NYI: large pages */
|
||||
if (pgsize != PAGE_SIZE) {
|
||||
error = -E2BIG;
|
||||
ekprintf("remap_one_page(%p,%p,%p %#lx,%p,%d):%d\n",
|
||||
arg0, pt, ptep, *ptep, pgaddr, pgshift, error);
|
||||
goto out;
|
||||
}
|
||||
|
||||
off = args->off + ((uintptr_t)pgaddr - args->start);
|
||||
pte_make_fileoff(off, 0, pgsize, &apte);
|
||||
|
||||
@@ -1509,6 +1501,7 @@ int remap_process_memory_range(struct process_vm *vm, struct vm_range *range,
|
||||
{
|
||||
struct rfp_args args;
|
||||
int error;
|
||||
unsigned int retval;
|
||||
|
||||
dkprintf("remap_process_memory_range(%p,%p,%#lx,%#lx,%#lx)\n",
|
||||
vm, range, start, end, off);
|
||||
@@ -1519,6 +1512,13 @@ int remap_process_memory_range(struct process_vm *vm, struct vm_range *range,
|
||||
args.off = off;
|
||||
args.memobj = range->memobj;
|
||||
|
||||
retval = __sync_val_compare_and_swap(&range->pgshift, 0, PAGE_SHIFT);
|
||||
if (retval != 0 && retval != PAGE_SHIFT) {
|
||||
error = -E2BIG;
|
||||
ekprintf("%s: pgshift is too big (%d) failed:%d\n", __func__, retval, error);
|
||||
goto out;
|
||||
}
|
||||
|
||||
error = visit_pte_range(vm->address_space->page_table, (void *)start,
|
||||
(void *)end, range->pgshift, VPTEF_DEFAULT,
|
||||
&remap_one_page, &args);
|
||||
|
||||
164
test/proc_sys_checker/file_format_check.pl
Executable file
164
test/proc_sys_checker/file_format_check.pl
Executable file
@@ -0,0 +1,164 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use utf8;
|
||||
use Encode qw/encode decode/;
|
||||
|
||||
sub count_occurence {
|
||||
my $err_num = 0;
|
||||
my $fn = shift();
|
||||
my @pattern = @_;
|
||||
my $lineno = 0;
|
||||
|
||||
if (open(DATAFILE, "< $fn")) {
|
||||
while (my $line = <DATAFILE>) {
|
||||
my $check = 0;
|
||||
chomp $line;
|
||||
for (my $i = 0; $i <= $#pattern; $i++) {
|
||||
if ($line =~ /$pattern[$i]/) {
|
||||
$freq[$filecnt][$i]++;
|
||||
$check = 1;
|
||||
if ($loc[$i][$blockno] == 1) {
|
||||
$blockno++;
|
||||
}
|
||||
$loc[$i][$blockno] = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
$lineno++;
|
||||
if ($check == 0) {
|
||||
$no_match[$err_num] = $lineno;
|
||||
$err_num++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
return $err_num;
|
||||
}
|
||||
|
||||
if (@ARGV != 1) {
|
||||
print "Usage: file_format_check.pl filename\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
my @pattern1 = ();
|
||||
my @pattern2 = ();
|
||||
my $n = 1;
|
||||
my $checkflg = 0;
|
||||
|
||||
open(DATAFILE, "< $ARGV[0]") or die("Error:$!");
|
||||
|
||||
while (my $line = <DATAFILE>) {
|
||||
chomp $line;
|
||||
if ($n == 1) {
|
||||
$checkfilepath = $line;
|
||||
} elsif ($n == 2) {
|
||||
$checkmode = $line;
|
||||
} elsif ($checkflg == 1) {
|
||||
push @pattern2, $line;
|
||||
} elsif ($line =~ /^$/) {
|
||||
$checkflg = 1;
|
||||
} else {
|
||||
push @pattern1, $line;
|
||||
push @pattern_check, 0;
|
||||
}
|
||||
$n++;
|
||||
}
|
||||
|
||||
my $fname = "";
|
||||
my $fnameflg = 0;
|
||||
my $rtn_code = 0;
|
||||
my $total_errcnt = 0;
|
||||
my $my_tid = $$;
|
||||
my $tmp_cmdls = "ls $checkfilepath";
|
||||
my $cmdls = "ls $checkfilepath";
|
||||
$cmdls =~ s/#pid#/$my_tid/g;
|
||||
|
||||
if ($tmp_cmdls eq $cmdls) {
|
||||
$fnameflg = 1;
|
||||
}
|
||||
if ($checkmode < 1 || $checkmode > 3) {
|
||||
$checkmode = 1;
|
||||
}
|
||||
|
||||
my $cmdexec = `$cmdls`;
|
||||
my @list = split(/\n/, $cmdexec);
|
||||
|
||||
$filecnt = 0;
|
||||
foreach my $parts(@list) {
|
||||
$errcnt = 0;
|
||||
$freq = ();
|
||||
$loc = ();
|
||||
$no_match = ();
|
||||
$blockno = 0;
|
||||
|
||||
# パターン検証サブルーチンコール
|
||||
my $rtn_code = &count_occurence($parts, @pattern1, @pattern2);
|
||||
|
||||
if ($rtn_code == -1) {
|
||||
$err_msg = "$err_msg Err(ファイルが存在しませんでした)\n";
|
||||
$errcnt = 1;
|
||||
} else {
|
||||
for (my $i = 0; $i <= $#no_match; $i++) {
|
||||
$err_msg = "$err_msg Err(対象ファイルの$no_match[$i]行目がどのパターンにも合致しませんでした)\n";
|
||||
$errcnt++;
|
||||
}
|
||||
# pattern1
|
||||
if ($checkmode == 1) {
|
||||
for (my $i = 0; $i <= $#pattern1; $i++) {
|
||||
if ($freq[$filecnt][$i] == 0) {
|
||||
$err_msg = "$err_msg Err(チェックパターン($pattern1[$i])に一致する行が存在しませんでした)\n";
|
||||
$errcnt++;
|
||||
} elsif ($freq[$filecnt][$i] > 1) {
|
||||
$err_msg = "$err_msg Err(チェックパターン($pattern1[$i])に一致する行が複数回存在しました)\n";
|
||||
$errcnt++;
|
||||
}
|
||||
}
|
||||
# pattern2
|
||||
} elsif ($checkmode == 2) {
|
||||
for (my $i = 0; $i <= $#pattern1; $i++) {
|
||||
if ($freq[$filecnt][$i] == 0) {
|
||||
$err_msg = "$err_msg Err(チェックパターン($pattern1[$i])に一致する行が存在しませんでした)\n";
|
||||
$errcnt++;
|
||||
}
|
||||
}
|
||||
# pattern3
|
||||
} elsif ($checkmode == 3) {
|
||||
$count = $freq[$filecnt][0];
|
||||
for (my $i = 0; $i <= $#pattern1; $i++) {
|
||||
if ($freq[$filecnt][$i] == 0) {
|
||||
$err_msg = "$err_msg Err(全ブロックでチェックパターン($pattern1[$i])が存在しませんでした)\n";
|
||||
$errcnt++;
|
||||
} elsif ($freq[$filecnt][$i] != $count) {
|
||||
for (my $j = 0; $j <= $blockno; $j++) {
|
||||
if ($loc[$i][$j] != 1) {
|
||||
$bno = $j + 1;
|
||||
$err_msg = "$err_msg Err(${bno}ブロック目でチェックパターン($pattern1[$i])に一致する行が存在しませんでした)\n";
|
||||
$errcnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($fnameflg == 0) {
|
||||
$fname = $checkfilepath;
|
||||
} else {
|
||||
$fname = $parts;
|
||||
}
|
||||
if ($errcnt == 0) {
|
||||
print "[OK] $fname\n";
|
||||
} else {
|
||||
print "[NG] $fname\n";
|
||||
$err_msg = encode('UTF-8', $err_msg);
|
||||
print "$err_msg";
|
||||
system("cat $parts > NG_`basename $ARGV[0]`");
|
||||
}
|
||||
$total_errcnt = $total_errcnt + $errcnt;
|
||||
$filecnt++;
|
||||
}
|
||||
if ($total_errcnt == 0) {
|
||||
exit(0);
|
||||
} else {
|
||||
exit($total_errcnt);
|
||||
}
|
||||
14
test/proc_sys_checker/file_format_check.sh
Executable file
14
test/proc_sys_checker/file_format_check.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
#file_format_check.sh
|
||||
|
||||
filename="./input"
|
||||
|
||||
if [ "x$1" != "x" ]; then
|
||||
filename=$1
|
||||
fi
|
||||
|
||||
cat /dev/null > outfile
|
||||
cat ${filename} | while read line
|
||||
do
|
||||
./file_format_check.pl $line >> outfile
|
||||
done
|
||||
35
test/proc_sys_checker/input
Normal file
35
test/proc_sys_checker/input
Normal file
@@ -0,0 +1,35 @@
|
||||
./proc/proc_stat
|
||||
./proc/proc_pid_cgroup
|
||||
./proc/proc_pid_cmdline
|
||||
./proc/proc_pid_cpuset
|
||||
./proc/proc_pid_maps
|
||||
./proc/proc_pid_smaps
|
||||
./proc/proc_pid_stat
|
||||
./proc/proc_pid_status
|
||||
./proc/proc_pid_task_thid_stat
|
||||
./sys/cpu_offline
|
||||
./sys/cpu_online
|
||||
./sys/cpu_possible
|
||||
./sys/cpu_present
|
||||
./sys/cpu_cpu_online
|
||||
./sys/cpu_cpu_cache_index_level
|
||||
./sys/cpu_cpu_cache_index_type
|
||||
./sys/cpu_cpu_cache_index_size
|
||||
./sys/cpu_cpu_cache_index_coherency_line_size
|
||||
./sys/cpu_cpu_cache_index_number_of_sets
|
||||
./sys/cpu_cpu_cache_index_physical_line_partition
|
||||
./sys/cpu_cpu_cache_index_ways_of_associativity
|
||||
./sys/cpu_cpu_cache_index_shared_cpu_map
|
||||
./sys/cpu_cpu_cache_index_shared_cpu_list
|
||||
./sys/cpu_cpu_topology_physical_package_id
|
||||
./sys/cpu_cpu_topology_core_id
|
||||
./sys/cpu_cpu_topology_core_siblings
|
||||
./sys/cpu_cpu_topology_core_siblings_list
|
||||
./sys/cpu_cpu_topology_thread_siblings
|
||||
./sys/cpu_cpu_topology_thread_siblings_list
|
||||
./sys/node_online
|
||||
./sys/node_possible
|
||||
./sys/node_node_distance
|
||||
./sys/node_node_cpumap
|
||||
./sys/pci_local_cpus
|
||||
./sys/pci_local_cpulist
|
||||
4
test/proc_sys_checker/proc/proc_pid_cgroup
Normal file
4
test/proc_sys_checker/proc/proc_pid_cgroup
Normal file
@@ -0,0 +1,4 @@
|
||||
/proc/#pid#/cgroup
|
||||
1
|
||||
|
||||
^[\d]+[:][\w=,]+[:][/\w\-.@]+
|
||||
3
test/proc_sys_checker/proc/proc_pid_cmdline
Normal file
3
test/proc_sys_checker/proc/proc_pid_cmdline
Normal file
@@ -0,0 +1,3 @@
|
||||
/proc/#pid#/cmdline
|
||||
1
|
||||
^[\s\w/\-\(\).=:\[\]@]+
|
||||
4
test/proc_sys_checker/proc/proc_pid_cpuset
Normal file
4
test/proc_sys_checker/proc/proc_pid_cpuset
Normal file
@@ -0,0 +1,4 @@
|
||||
/proc/#pid#/cpuset
|
||||
1
|
||||
|
||||
^[/][\w/\-]*
|
||||
3
test/proc_sys_checker/proc/proc_pid_maps
Normal file
3
test/proc_sys_checker/proc/proc_pid_maps
Normal file
@@ -0,0 +1,3 @@
|
||||
/proc/#pid#/maps
|
||||
2
|
||||
^[\da-f]+[\-][\da-f]+\s[rwxsp\-]{4}\s[\da-f]+\s[\d]{2}[:][\d]{2}\s[\d]+([\s]+\[heap\]|[\s]+\[vdso\]|[\s]+\[stack\]|[\s]+\[stack:[\d]+\]|[\s]+\[vsyscall\]|[\s]+/[\w/\-.]+|\s)
|
||||
20
test/proc_sys_checker/proc/proc_pid_smaps
Normal file
20
test/proc_sys_checker/proc/proc_pid_smaps
Normal file
@@ -0,0 +1,20 @@
|
||||
/proc/#pid#/smaps
|
||||
3
|
||||
^[\da-f]+[\-][\da-f]+\s[rwxsp\-]{4}\s[\da-f]+\s[\d]{2}[:][\d]{2}\s[\d]+([\s]+\[heap\]|[\s]+\[vdso\]|[\s]+\[stack\]|[\s]+\[stack:[\d]+\]|[\s]+\[vsyscall\]|[\s]+/[\w/\-.]+|\s)
|
||||
^Size:[\s]+[\d]+\skB
|
||||
^Rss:[\s]+[\d]+\skB
|
||||
^Pss:[\s]+[\d]+\skB
|
||||
^Shared_Clean:[\s]+[\d]+\skB
|
||||
^Shared_Dirty:[\s]+[\d]+\skB
|
||||
^Private_Clean:[\s]+[\d]+\skB
|
||||
^Private_Dirty:[\s]+[\d]+\skB
|
||||
^Referenced:[\s]+[\d]+\skB
|
||||
^Anonymous:[\s]+[\d]+\skB
|
||||
^AnonHugePages:[\s]+[\d]+\skB
|
||||
^Swap:[\s]+[\d]+\skB
|
||||
^KernelPageSize:[\s]+[\d]+\skB
|
||||
^MMUPageSize:[\s]+[\d]+\skB
|
||||
^Locked:[\s]+[\d]+\skB
|
||||
^VmFlags:[\s]+([\l]{2}\s)*
|
||||
|
||||
^Nonlinear:[\s]+[\d]+\skB
|
||||
3
test/proc_sys_checker/proc/proc_pid_stat
Normal file
3
test/proc_sys_checker/proc/proc_pid_stat
Normal file
@@ -0,0 +1,3 @@
|
||||
/proc/#pid#/stat
|
||||
1
|
||||
^[\d]+\s\([\w/\-.:]+\)\s[R|S|D|T|t|X|Z]\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+
|
||||
44
test/proc_sys_checker/proc/proc_pid_status
Normal file
44
test/proc_sys_checker/proc/proc_pid_status
Normal file
@@ -0,0 +1,44 @@
|
||||
/proc/#pid#/status
|
||||
1
|
||||
^Name:\t[\w]+
|
||||
^State:\t(R \(running\)|S \(sleeping\)|D \(disk sleep\)|T \(stopped\)|t \(tracing stop\)|X \(dead\)|Z \(zombie\))
|
||||
^Tgid:\t[\d]+
|
||||
^Ngid:\t[\d]+
|
||||
^Pid:\t[\d]+
|
||||
^PPid:\t[\d]+
|
||||
^TracerPid:\t[\d]+
|
||||
^Uid:\t[\d]+\t[\d]+\t[\d]+\t[\d]+
|
||||
^Gid:\t[\d]+\t[\d]+\t[\d]+\t[\d]+
|
||||
^FDSize:\t[0-9]+
|
||||
^Groups:\t(([\d]+)(\s))*
|
||||
^VmPeak:[\s]+[\d]{1,8}\skB
|
||||
^VmSize:[\s]+[\d]{1,8}\skB
|
||||
^VmLck:[\s]+[\d]{1,8}\skB
|
||||
^VmPin:[\s]+[\d]{1,8}\skB
|
||||
^VmHWM:[\s]+[\d]{1,8}\skB
|
||||
^VmRSS:[\s]+[\d]{1,8}\skB
|
||||
^VmData:[\s]+[\d]{1,8}\skB
|
||||
^VmStk:[\s]+[\d]{1,8}\skB
|
||||
^VmExe:[\s]+[\d]{1,8}\skB
|
||||
^VmLib:[\s]+[\d]{1,8}\skB
|
||||
^VmPTE:[\s]+[\d]{1,8}\skB
|
||||
^VmSwap:[\s]+[\d]{1,8}\skB
|
||||
^Threads:\t[\d]+
|
||||
^SigQ:\t[\d]+/[\d]+
|
||||
^SigPnd:\t[\da-f]+
|
||||
^ShdPnd:\t[\da-f]+
|
||||
^SigBlk:\t[\da-f]+
|
||||
^SigIgn:\t[\da-f]+
|
||||
^SigCgt:\t[\da-f]+
|
||||
^CapInh:\t[\da-f]+
|
||||
^CapPrm:\t[\da-f]+
|
||||
^CapEff:\t[\da-f]+
|
||||
^CapBnd:\t[\da-f]+
|
||||
^Cpus_allowed:\t[\da-f,]+
|
||||
^Cpus_allowed_list:\t[\d,\-]+
|
||||
^Mems_allowed:\t[\da-f,]+
|
||||
^Mems_allowed_list:\t[\d,\-]+
|
||||
^voluntary_ctxt_switches:\t[\d]+
|
||||
^nonvoluntary_ctxt_switches:\t[\d]+
|
||||
|
||||
^Seccomp:[\s]+[\d]+
|
||||
3
test/proc_sys_checker/proc/proc_pid_task_thid_stat
Normal file
3
test/proc_sys_checker/proc/proc_pid_task_thid_stat
Normal file
@@ -0,0 +1,3 @@
|
||||
/proc/#pid#/task/#pid#/stat
|
||||
1
|
||||
^[\d]+\s\([\w]+\)\s[R|S|D|T|t|X|Z]\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\d]+\s[\-]*[\d]+
|
||||
12
test/proc_sys_checker/proc/proc_stat
Normal file
12
test/proc_sys_checker/proc/proc_stat
Normal file
@@ -0,0 +1,12 @@
|
||||
/proc/stat
|
||||
1
|
||||
^cpu\s((\s)([\d]+)){10}
|
||||
^intr((\s)([\d]+))+
|
||||
^ctxt\s[\d]+
|
||||
^btime\s[\d]+
|
||||
^processes\s[\d]+
|
||||
^procs_running\s[\d]+
|
||||
^procs_blocked\s[\d]+
|
||||
^softirq((\s)([\d]+)){11}
|
||||
|
||||
^cpu[\d]+((\s)([\d]+)){10}
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/coherency_line_size
|
||||
1
|
||||
^[\d]+
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_level
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_level
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/level
|
||||
1
|
||||
^[\d]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/number_of_sets
|
||||
1
|
||||
^[\d]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/physical_line_partition
|
||||
1
|
||||
^[\d]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/shared_cpu_list
|
||||
1
|
||||
^[\d,\-]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/shared_cpu_map
|
||||
1
|
||||
^[\da-f,]+
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_size
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_size
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/size
|
||||
1
|
||||
^[\d]+K
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_type
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_cache_index_type
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/type
|
||||
1
|
||||
^(Instruction|Data|Unified|Unknown)
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/cache/index[0-1]/ways_of_associativity
|
||||
1
|
||||
^[\d]+
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_online
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_online
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu1/online
|
||||
1
|
||||
^[0-1]
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_topology_core_id
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_topology_core_id
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/core_id
|
||||
1
|
||||
^[\d]+
|
||||
3
test/proc_sys_checker/sys/cpu_cpu_topology_core_siblings
Normal file
3
test/proc_sys_checker/sys/cpu_cpu_topology_core_siblings
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/core_siblings
|
||||
1
|
||||
^[\da-f,]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/core_siblings_list
|
||||
1
|
||||
^[\d,\-]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/physical_package_id
|
||||
1
|
||||
^[\d]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/thread_siblings
|
||||
1
|
||||
^[\da-f,]+
|
||||
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/cpu0/topology/thread_siblings_list
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/cpu_offline
Normal file
3
test/proc_sys_checker/sys/cpu_offline
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/offline
|
||||
2
|
||||
^[\d,\-]*
|
||||
3
test/proc_sys_checker/sys/cpu_online
Normal file
3
test/proc_sys_checker/sys/cpu_online
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/online
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/cpu_possible
Normal file
3
test/proc_sys_checker/sys/cpu_possible
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/possible
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/cpu_present
Normal file
3
test/proc_sys_checker/sys/cpu_present
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/cpu/present
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/node_node_cpumap
Normal file
3
test/proc_sys_checker/sys/node_node_cpumap
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/node/node0/cpumap
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/node_node_distance
Normal file
3
test/proc_sys_checker/sys/node_node_distance
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/node/node0/distance
|
||||
1
|
||||
^[\d\s]+
|
||||
3
test/proc_sys_checker/sys/node_online
Normal file
3
test/proc_sys_checker/sys/node_online
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/node/online
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/node_possible
Normal file
3
test/proc_sys_checker/sys/node_possible
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/system/node/possible
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/pci_local_cpulist
Normal file
3
test/proc_sys_checker/sys/pci_local_cpulist
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/pci0000:00/0000:00:00.0/local_cpulist
|
||||
1
|
||||
^[\d,\-]+
|
||||
3
test/proc_sys_checker/sys/pci_local_cpus
Normal file
3
test/proc_sys_checker/sys/pci_local_cpus
Normal file
@@ -0,0 +1,3 @@
|
||||
/sys/devices/pci0000:00/0000:00:00.0/local_cpus
|
||||
1
|
||||
^[\da-f,]+
|
||||
Reference in New Issue
Block a user