aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--README.md6
-rw-r--r--dashboard/config/akaros/config87
-rw-r--r--docs/akaros/README.md21
-rw-r--r--docs/akaros/found_bugs.md11
-rw-r--r--docs/found_bugs.md2
-rw-r--r--docs/pseudo_syscalls.md1
-rw-r--r--docs/setup.md1
-rw-r--r--docs/syscall_descriptions.md2
-rw-r--r--executor/common.h54
-rw-r--r--executor/common_akaros.h35
-rw-r--r--executor/executor.cc17
-rw-r--r--executor/executor_akaros.h25
-rw-r--r--pkg/build/akaros.go131
-rw-r--r--pkg/build/build.go1
-rw-r--r--pkg/cover/report_test.go2
-rw-r--r--pkg/csource/gen.go1
-rw-r--r--pkg/csource/generated.go84
-rw-r--r--pkg/host/host_akaros.go15
-rw-r--r--pkg/osutil/osutil_akaros.go40
-rw-r--r--pkg/report/akaros.go195
-rw-r--r--pkg/report/report.go1
-rw-r--r--pkg/report/testdata/akaros/report/014
-rw-r--r--pkg/report/testdata/akaros/report/139
-rw-r--r--pkg/report/testdata/akaros/report/220
-rw-r--r--pkg/report/testdata/akaros/report/3145
-rw-r--r--pkg/report/testdata/akaros/report/46
-rw-r--r--pkg/report/testdata/akaros/report/544
-rw-r--r--pkg/report/testdata/akaros/report/683
-rw-r--r--pkg/report/testdata/akaros/report/769
-rw-r--r--pkg/report/testdata/akaros/report/825
-rw-r--r--pkg/vcs/akaros.go27
-rw-r--r--pkg/vcs/vcs.go2
-rw-r--r--sys/akaros/dev.txt151
-rw-r--r--sys/akaros/dev_amd64.const5
-rw-r--r--sys/akaros/gen/empty.go6
-rw-r--r--sys/akaros/init.go34
-rw-r--r--sys/akaros/sys.txt185
-rw-r--r--sys/akaros/sys_amd64.const163
-rw-r--r--sys/akaros/test/openat3
-rw-r--r--sys/sys.go1
-rw-r--r--sys/syz-extract/akaros.go45
-rw-r--r--sys/syz-extract/extract.go1
-rw-r--r--sys/targets/targets.go23
-rw-r--r--tools/docker/env/Dockerfile1
-rw-r--r--tools/syz-stress/stress.go9
-rw-r--r--vm/qemu/qemu.go8
47 files changed, 18 insertions, 1829 deletions
diff --git a/Makefile b/Makefile
index acfc48fd0..d7fe91f01 100644
--- a/Makefile
+++ b/Makefile
@@ -87,11 +87,6 @@ ifeq ("$(TARGETOS)", "test")
TARGETGOARCH := $(HOSTARCH)
endif
-ifeq ("$(TARGETOS)", "akaros")
- TARGETGOOS := $(HOSTOS)
- TARGETGOARCH := $(HOSTARCH)
-endif
-
ifeq ("$(TARGETOS)", "fuchsia")
TARGETGOOS := $(HOSTOS)
TARGETGOARCH := $(HOSTARCH)
@@ -355,7 +350,6 @@ presubmit_arch_windows: descriptions
presubmit_arch_executor: descriptions
env TARGETOS=linux TARGETARCH=amd64 SYZ_CLANG=yes $(MAKE) executor
- env TARGETOS=akaros TARGETARCH=amd64 $(MAKE) executor
env TARGETOS=fuchsia TARGETARCH=amd64 $(MAKE) executor
env TARGETOS=fuchsia TARGETARCH=arm64 $(MAKE) executor
env TARGETOS=test TARGETARCH=64 $(MAKE) executor
diff --git a/README.md b/README.md
index 607147fd5..a8c48e35f 100644
--- a/README.md
+++ b/README.md
@@ -8,11 +8,11 @@
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
`syzkaller` (`[siːzˈkɔːlə]`) is an unsupervised coverage-guided kernel fuzzer.\
-Supported OSes: `Akaros`, `FreeBSD`, `Fuchsia`, `gVisor`, `Linux`, `NetBSD`, `OpenBSD`, `Windows`.
+Supported OSes: `FreeBSD`, `Fuchsia`, `gVisor`, `Linux`, `NetBSD`, `OpenBSD`, `Windows`.
Mailing list: [syzkaller@googlegroups.com](https://groups.google.com/forum/#!forum/syzkaller) (join on [web](https://groups.google.com/forum/#!forum/syzkaller) or by [email](mailto:syzkaller+subscribe@googlegroups.com)).
-Found bugs: [Akaros](docs/akaros/found_bugs.md), [Darwin/XNU](docs/darwin/README.md), [FreeBSD](docs/freebsd/found_bugs.md), [Linux](docs/linux/found_bugs.md), [NetBSD](docs/netbsd/found_bugs.md), [OpenBSD](docs/openbsd/found_bugs.md), [Windows](docs/windows/README.md).
+Found bugs: [Darwin/XNU](docs/darwin/README.md), [FreeBSD](docs/freebsd/found_bugs.md), [Linux](docs/linux/found_bugs.md), [NetBSD](docs/netbsd/found_bugs.md), [OpenBSD](docs/openbsd/found_bugs.md), [Windows](docs/windows/README.md).
## Documentation
@@ -20,7 +20,6 @@ Initially, syzkaller was developed with Linux kernel fuzzing in mind, but now
it's being extended to support other OS kernels as well.
Most of the documentation at this moment is related to the [Linux](docs/linux/setup.md) kernel.
For other OS kernels check:
-[Akaros](docs/akaros/README.md),
[Darwin/XNU](docs/darwin/README.md),
[FreeBSD](docs/freebsd/README.md),
[Fuchsia](docs/fuchsia/README.md),
@@ -29,6 +28,7 @@ For other OS kernels check:
[Starnix](docs/starnix/README.md),
[Windows](docs/windows/README.md),
[gVisor](docs/gvisor/README.md).
+[Akaros](docs/akaros/README.md),
- [How to install syzkaller](docs/setup.md)
- [How to use syzkaller](docs/usage.md)
diff --git a/dashboard/config/akaros/config b/dashboard/config/akaros/config
deleted file mode 100644
index c0855242c..000000000
--- a/dashboard/config/akaros/config
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Akaros/x86 Kernel Configuration
-#
-CONFIG_64BIT=y
-CONFIG_RUN_INIT_SCRIPT=y
-CONFIG_INIT_SCRIPT_PATH_AND_ARGS="/init.sh"
-CONFIG_X86=y
-CONFIG_X86_64=y
-
-#
-# x86 Options
-#
-# CONFIG_PCI_VERBOSE is not set
-# CONFIG_NOFASTCALL_FSBASE is not set
-
-#
-# x86 Hacks
-#
-# CONFIG_LOUSY_LAPIC_TIMER is not set
-CONFIG_NOMTRRS=y
-# CONFIG_KB_CORE0_ONLY is not set
-# CONFIG_X86_DISABLE_KEYBOARD is not set
-# CONFIG_ENABLE_LEGACY_USB is not set
-CONFIG_NETWORKING=y
-
-#
-# Drivers
-#
-# CONFIG_BNX2X is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
-# CONFIG_MLX4_INFINIBAND is not set
-CONFIG_REGRESS=y
-CONFIG_DEVVARS=y
-# CONFIG_DEVVARS_TEST is not set
-
-#
-# Filesystems
-#
-CONFIG_KFS=y
-CONFIG_KFS_PATHS="kern/kfs"
-CONFIG_KFS_CPIO_BIN=""
-CONFIG_COREALLOC_FCFS=y
-# CONFIG_COREALLOC_PACKED is not set
-
-#
-# Kernel Debugging
-#
-
-#
-# Per-cpu Tracers
-#
-# CONFIG_TRACE_KMSGS is not set
-# CONFIG_TRACE_LOCKS is not set
-CONFIG_DEVELOPMENT_ASSERTIONS=y
-CONFIG_SPINLOCK_DEBUG=y
-CONFIG_SEQLOCK_DEBUG=y
-CONFIG_SEMAPHORE_DEBUG=y
-# CONFIG_SEM_SPINWAIT is not set
-CONFIG_LARGE_KSTACKS=y
-# CONFIG_DISABLE_SMT is not set
-# CONFIG_PRINTK_NO_BACKSPACE is not set
-# CONFIG_SYSCALL_STRING_SAVING is not set
-CONFIG_BLOCK_EXTRAS=y
-CONFIG_BETTER_BACKTRACE=y
-
-#
-# Misc/Old Options
-#
-# CONFIG_ARSC_SERVER is not set
-# CONFIG_APPSERVER is not set
-# CONFIG_SERIAL_IO is not set
-# CONFIG_SINGLE_CORE is not set
-# CONFIG_BSD_ON_CORE0 is not set
-
-#
-# Libraries
-#
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZLIB_INFLATE=y
-
-#
-# Testing
-#
-# CONFIG_KERNEL_TESTING is not set
-# CONFIG_USERSPACE_TESTING is not set
diff --git a/docs/akaros/README.md b/docs/akaros/README.md
index ec89711bc..21da83805 100644
--- a/docs/akaros/README.md
+++ b/docs/akaros/README.md
@@ -1,18 +1,7 @@
# Akaros support
-[Akaros](http://akaros.cs.berkeley.edu/) support is *incomplete*.
-
-See [Akaros getting started](https://github.com/brho/akaros/blob/master/GETTING_STARTED.md)
-re kernel building/running.
-
-Akaros does not support Go at the moment (except for a broken
-[1.3 port](https://github.com/akaros/go-akaros)). Full Go support is planned
-for Akaros. Until that happens running on Akaros is challenging. However,
-`syz-stress` can be run as follows:
-
-```shell
-make TARGETOS=linux syz-stress
-make TARGETOS=akaros SOURCEDIR=/akaros/checkout executor
-scp -P 5555 -i akaros_id_rsa -o IdentitiesOnly=yes bin/akaros_amd64/syz-executor root@localhost:/
-bin/linux_amd64/syz-stress -os=akaros -ipc=pipe -procs=8 -executor "/usr/bin/ssh -p 5555 -i akaros_id_rsa -o IdentitiesOnly=yes root@localhost /syz-executor"
-```
+[Akaros](http://akaros.cs.berkeley.edu/) support was **removed**.
+You can find it in git history, if needed.
+Found bugs are [here](https://groups.google.com/forum/#!searchin/akaros/syzbot),
+[here](https://syzkaller.appspot.com/akaros)
+and [here](https://github.com/brho/akaros/issues?q=is%3Aissue+syzkaller).
diff --git a/docs/akaros/found_bugs.md b/docs/akaros/found_bugs.md
deleted file mode 100644
index 6c29b4487..000000000
--- a/docs/akaros/found_bugs.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Found bugs
-
-Most latest bugs are reported by [syzbot](/docs/syzbot.md) to
-[akaros](https://groups.google.com/forum/#!searchin/akaros/syzbot)
-mailing list and are listed on the [dashboard](https://syzkaller.appspot.com/akaros).
-
-_newer first_
-
-* [page fault in pipewrite](https://github.com/brho/akaros/issues/46)
-* [kernel panic in generic_file_write](https://github.com/brho/akaros/issues/44)
-* [assertion failed: page && pm_slot_check_refcnt(*page->pg_tree_slot)](https://github.com/brho/akaros/issues/42)
diff --git a/docs/found_bugs.md b/docs/found_bugs.md
index 1d00fcb26..56206fb5a 100644
--- a/docs/found_bugs.md
+++ b/docs/found_bugs.md
@@ -2,7 +2,7 @@
[Linux kernel bugs](linux/found_bugs.md)
-[Akaros kernel bugs](akaros/found_bugs.md)
+[Akaros kernel bugs](akaros/README.md)
[FreeBSD kernel bugs](freebsd/found_bugs.md)
diff --git a/docs/pseudo_syscalls.md b/docs/pseudo_syscalls.md
index 0eeff4e6c..c5df49ef1 100644
--- a/docs/pseudo_syscalls.md
+++ b/docs/pseudo_syscalls.md
@@ -29,7 +29,6 @@ one. These header files are defined in [gen.go](../pkg/csource/gen.go):
executorFilenames := []string{
"common_linux.h",
- "common_akaros.h",
"common_bsd.h",
"common_fuchsia.h",
"common_windows.h",
diff --git a/docs/setup.md b/docs/setup.md
index 7cf28908b..b55c4272e 100644
--- a/docs/setup.md
+++ b/docs/setup.md
@@ -3,7 +3,6 @@
Generic setup instructions for fuzzing Linux kernel are outlined [here](linux/setup.md).
For other kernels see:
-[Akaros](akaros/README.md),
[FreeBSD](freebsd/README.md),
[Darwin/XNU](darwin/README.md),
[Fuchsia](fuchsia/README.md),
diff --git a/docs/syscall_descriptions.md b/docs/syscall_descriptions.md
index 9b4101a8b..fa1f41fbb 100644
--- a/docs/syscall_descriptions.md
+++ b/docs/syscall_descriptions.md
@@ -233,7 +233,7 @@ The second step is translation of descriptions into Go code using
[pkg/ast](/pkg/ast/) and [pkg/compiler](/pkg/compiler/)).
This step uses syscall descriptions and the const files generated during the first step
and produces instantiations of `Syscall` and `Type` types defined in [prog/types.go](/prog/types.go).
-You can see an example of the compiler output for Akaros in `sys/akaros/gen/amd64.go`.
+You can see an example of the compiler output for Linux/AMD64 in `sys/linux/gen/amd64.go`.
This step also generates some minimal syscall metadata for C++ code in `executor/syscalls.h`.
## Non-mainline subsystems
diff --git a/executor/common.h b/executor/common.h
index 0e986022c..bfe6c76a7 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -87,14 +87,6 @@ static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;
-#if GOOS_akaros
-#include <parlib/parlib.h>
-static void recover(void)
-{
- _longjmp(segv_env, 1);
-}
-#endif
-
static void segv_handler(int sig, siginfo_t* info, void* ctx)
{
// Generated programs can contain bad (unmapped/protected) addresses,
@@ -130,13 +122,7 @@ static void segv_handler(int sig, siginfo_t* info, void* ctx)
#endif
if (skip && valid) {
debug("SIGSEGV on %p, skipping\n", (void*)addr);
-#if GOOS_akaros
- struct user_context* uctx = (struct user_context*)ctx;
- uctx->tf.hw_tf.tf_rip = (long)(void*)recover;
- return;
-#else
_longjmp(segv_env, 1);
-#endif
}
debug("SIGSEGV on %p, exiting\n", (void*)addr);
doexit(sig);
@@ -239,7 +225,7 @@ static void use_temporary_dir(void)
#endif
#endif
-#if GOOS_akaros || GOOS_netbsd || GOOS_freebsd || GOOS_darwin || GOOS_openbsd || GOOS_test
+#if GOOS_netbsd || GOOS_freebsd || GOOS_darwin || GOOS_openbsd || GOOS_test
#if (SYZ_EXECUTOR || SYZ_REPEAT) && SYZ_EXECUTOR_USES_FORK_SERVER && (SYZ_EXECUTOR || SYZ_USE_TMP_DIR)
#include <dirent.h>
#include <errno.h>
@@ -378,7 +364,7 @@ static void thread_start(void* (*fn)(void*), void* arg)
#endif
#endif
-#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd || GOOS_openbsd || GOOS_akaros || GOOS_test
+#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd || GOOS_openbsd || GOOS_test
#if SYZ_EXECUTOR || SYZ_THREADED
#include <pthread.h>
@@ -493,9 +479,7 @@ static uint16 csum_inet_digest(struct csum_inet* csum)
}
#endif
-#if GOOS_akaros
-#include "common_akaros.h"
-#elif GOOS_freebsd || GOOS_darwin || GOOS_netbsd
+#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd
#include "common_bsd.h"
#elif GOOS_openbsd
#include "common_openbsd.h"
@@ -635,13 +619,6 @@ static void loop(void)
// Tell parent that we are ready to serve.
reply_handshake();
#endif
-#if SYZ_EXECUTOR && GOOS_akaros
- // For akaros we do exec in the child process because new threads can't be created in the fork child.
- // Thus we proxy input program over the child_pipe to the child process.
- int child_pipe[2];
- if (pipe(child_pipe))
- fail("pipe failed");
-#endif
int iter = 0;
#if SYZ_REPEAT_TIMES
for (; iter < /*{{{REPEAT_TIMES}}}*/; iter++) {
@@ -675,15 +652,6 @@ static void loop(void)
#if SYZ_HAVE_SETUP_EXT_TEST
setup_ext_test();
#endif
-#if GOOS_akaros
-#if SYZ_EXECUTOR
- dup2(child_pipe[0], kInPipeFd);
- close(child_pipe[0]);
- close(child_pipe[1]);
-#endif
- execl(program_name, program_name, "child", NULL);
- fail("execl failed");
-#else
#if SYZ_EXECUTOR
close(kInPipeFd);
#endif
@@ -695,13 +663,9 @@ static void loop(void)
close_fds();
#endif
doexit(0);
-#endif
}
debug("spawned worker pid %d\n", pid);
-#if SYZ_EXECUTOR && GOOS_akaros
- resend_execute(child_pipe[1]);
-#endif
// We used to use sigtimedwait(SIGCHLD) to wait for the subprocess.
// But SIGCHLD is also delivered when a process stops/continues,
// so it would require a loop with status analysis and timeout recalculation.
@@ -799,21 +763,9 @@ void loop(void)
#endif
// This is the main function for csource.
-#if GOOS_akaros && SYZ_REPEAT
-#include <string.h>
-
-int main(int argc, char** argv)
-{
- /*{{{MMAP_DATA}}}*/
-
- program_name = argv[0];
- if (argc == 2 && strcmp(argv[1], "child") == 0)
- child();
-#else
int main(void)
{
/*{{{MMAP_DATA}}}*/
-#endif
#if SYZ_SYSCTL
setup_sysctl();
diff --git a/executor/common_akaros.h b/executor/common_akaros.h
deleted file mode 100644
index 7886a4996..000000000
--- a/executor/common_akaros.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-// This file is shared between executor and csource package.
-
-#include <ros/syscall.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#if SYZ_EXECUTOR || SYZ_SANDBOX_NONE
-static void loop();
-static int do_sandbox_none(void)
-{
- loop();
- return 0;
-}
-#endif
-
-#if SYZ_EXECUTOR || SYZ_REPEAT
-static void execute_one();
-const char* program_name;
-
-void child()
-{
-#if SYZ_EXECUTOR || SYZ_HANDLE_SEGV
- install_segv_handler();
-#endif
-#if SYZ_EXECUTOR
- receive_execute();
- close(kInPipeFd);
-#endif
- execute_one();
- doexit(0);
-}
-#endif
diff --git a/executor/executor.cc b/executor/executor.cc
index 8b58287b1..267fac857 100644
--- a/executor/executor.cc
+++ b/executor/executor.cc
@@ -107,10 +107,6 @@ void debug_dump_data(const char* data, int length);
static void receive_execute();
static void reply_execute(int status);
-#if GOOS_akaros
-static void resend_execute(int fd);
-#endif
-
#if SYZ_EXECUTOR_USES_FORK_SERVER
static void receive_handshake();
static void reply_handshake();
@@ -397,8 +393,6 @@ static void setup_features(char** enable, int n);
#include "executor_linux.h"
#elif GOOS_fuchsia
#include "executor_fuchsia.h"
-#elif GOOS_akaros
-#include "executor_akaros.h"
#elif GOOS_freebsd || GOOS_netbsd || GOOS_openbsd
#include "executor_bsd.h"
#elif GOOS_darwin
@@ -712,17 +706,6 @@ bool cover_collection_required()
return flag_coverage && (flag_collect_signal || flag_collect_cover || flag_comparisons);
}
-#if GOOS_akaros
-void resend_execute(int fd)
-{
- execute_req& req = last_execute_req;
- if (write(fd, &req, sizeof(req)) != sizeof(req))
- fail("child pipe header write failed");
- if (write(fd, input_data, req.prog_size) != (ssize_t)req.prog_size)
- fail("child pipe program write failed");
-}
-#endif
-
void reply_execute(int status)
{
execute_reply reply = {};
diff --git a/executor/executor_akaros.h b/executor/executor_akaros.h
deleted file mode 100644
index 82cae909d..000000000
--- a/executor/executor_akaros.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#include "nocover.h"
-
-static void os_init(int argc, char** argv, void* data, size_t data_size)
-{
- program_name = argv[0];
- if (argc == 2 && strcmp(argv[1], "child") == 0) {
- if (mmap(data, data_size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0) != data)
- fail("mmap of data segment failed");
- child();
- }
-}
-
-static intptr_t execute_syscall(const call_t* c, intptr_t a[kMaxArgs])
-{
- return syscall(c->sys_nr, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
-}
diff --git a/pkg/build/akaros.go b/pkg/build/akaros.go
deleted file mode 100644
index 67b044f04..000000000
--- a/pkg/build/akaros.go
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright 2018 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package build
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "runtime"
- "strconv"
- "time"
-
- "github.com/google/syzkaller/pkg/osutil"
-)
-
-type akaros struct{}
-
-func (ctx akaros) build(params Params) (ImageDetails, error) {
- configFile := filepath.Join(params.KernelDir, ".config")
- if err := osutil.WriteFile(configFile, params.Config); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write config file: %w", err)
- }
- if err := osutil.SandboxChown(configFile); err != nil {
- return ImageDetails{}, err
- }
- sshkey := filepath.Join(params.KernelDir, "key")
- sshkeyPub := sshkey + ".pub"
- os.Remove(sshkey)
- os.Remove(sshkeyPub)
- if _, err := osutil.RunCmd(10*time.Minute, "", "ssh-keygen", "-t", "rsa", "-b", "2048",
- "-N", "", "-C", "", "-f", sshkey); err != nil {
- return ImageDetails{}, err
- }
- if err := osutil.SandboxChown(sshkeyPub); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "olddefconfig", "ARCH=x86"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "xcc"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "tools/dev-libs/elfutils", "install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "apps-install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "fill-kfs"); err != nil {
- return ImageDetails{}, err
- }
- targetKey := filepath.Join(params.KernelDir, "kern", "kfs", ".ssh", "authorized_keys")
- if err := osutil.Rename(sshkeyPub, targetKey); err != nil {
- return ImageDetails{}, err
- }
- const init = `#!/bin/bash
-/ifconfig
-dropbear -F 2>db_out &
-bash
-`
- initFile := filepath.Join(params.KernelDir, "kern", "kfs", "init.sh")
- if err := osutil.WriteFile(initFile, []byte(init)); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write init script: %w", err)
- }
- if err := osutil.SandboxChown(initFile); err != nil {
- return ImageDetails{}, err
- }
- if err := os.Chmod(initFile, 0770); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.cmd(params.KernelDir, "dropbear", "./CONFIGURE_AKAROS"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "dropbear/build"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "dropbear/build", "install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, ""); err != nil {
- return ImageDetails{}, err
- }
- if err := osutil.WriteFile(filepath.Join(params.OutputDir, "image"), nil); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write image file: %w", err)
- }
- for src, dst := range map[string]string{
- ".config": "kernel.config",
- "key": "key",
- "obj/kern/akaros-kernel": "kernel",
- "obj/kern/akaros-kernel-64b": "obj/akaros-kernel-64b",
- } {
- fullSrc := filepath.Join(params.KernelDir, filepath.FromSlash(src))
- fullDst := filepath.Join(params.OutputDir, filepath.FromSlash(dst))
- if err := osutil.CopyFile(fullSrc, fullDst); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to copy %v: %w", src, err)
- }
- }
- return ImageDetails{}, nil
-}
-
-func (ctx akaros) clean(kernelDir, targetArch string) error {
- // Note: this does not clean toolchain and elfutils.
- return ctx.make(kernelDir, "", "realclean")
-}
-
-func (ctx akaros) make(kernelDir, runDir string, args ...string) error {
- args = append([]string{"-j", strconv.Itoa(runtime.NumCPU())}, args...)
- return ctx.cmd(kernelDir, runDir, "make", args...)
-}
-
-func (ctx akaros) cmd(kernelDir, runDir, bin string, args ...string) error {
- cmd := osutil.Command(bin, args...)
- if err := osutil.Sandbox(cmd, true, false); err != nil {
- return err
- }
- cmd.Dir = kernelDir
- if runDir != "" {
- cmd.Dir = filepath.Join(kernelDir, filepath.FromSlash(runDir))
- }
- cmd.Env = append([]string{}, os.Environ()...)
- cmd.Env = append(cmd.Env, []string{
- "MAKE_JOBS=" + strconv.Itoa(runtime.NumCPU()),
- "AKAROS_ROOT=" + kernelDir,
- "AKAROS_TOOLCHAINS=" + filepath.Join(kernelDir, "toolchain"),
- "PATH=" + filepath.Join(kernelDir, "toolchain", "x86_64-ucb-akaros-gcc", "bin") +
- string(filepath.ListSeparator) + os.Getenv("PATH"),
- }...)
- _, err := osutil.Run(time.Hour, cmd)
- return err
-}
diff --git a/pkg/build/build.go b/pkg/build/build.go
index 52873e3b2..a489f04dc 100644
--- a/pkg/build/build.go
+++ b/pkg/build/build.go
@@ -144,7 +144,6 @@ func getBuilder(targetOS, targetArch, vmType string) (builder, error) {
builders := map[string]builder{
targets.Linux: linux{},
targets.Fuchsia: fuchsia{},
- targets.Akaros: akaros{},
targets.OpenBSD: openbsd{},
targets.NetBSD: netbsd{},
targets.FreeBSD: freebsd{},
diff --git a/pkg/cover/report_test.go b/pkg/cover/report_test.go
index 7d5fa00c3..d1ef7ac70 100644
--- a/pkg/cover/report_test.go
+++ b/pkg/cover/report_test.go
@@ -251,7 +251,7 @@ func buildTestBinary(t *testing.T, target *targets.Target, test *Test, dir strin
errText = strings.ReplaceAll(errText, "‘", "'")
errText = strings.ReplaceAll(errText, "’", "'")
if strings.Contains(errText, "error: unrecognized command line option '-fsanitize-coverage=trace-pc'") &&
- (os.Getenv("SYZ_ENV") == "" || target.OS == targets.Akaros) {
+ os.Getenv("SYZ_ENV") == "" {
t.Skip("skipping test, -fsanitize-coverage=trace-pc is not supported")
}
t.Fatal(err)
diff --git a/pkg/csource/gen.go b/pkg/csource/gen.go
index d11fd2fbf..2a491ccd6 100644
--- a/pkg/csource/gen.go
+++ b/pkg/csource/gen.go
@@ -28,7 +28,6 @@ func main() {
}
executorFilenames := []string{
"common_linux.h",
- "common_akaros.h",
"common_bsd.h",
"common_openbsd.h",
"common_fuchsia.h",
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go
index 83d58ab09..34b0d2c55 100644
--- a/pkg/csource/generated.go
+++ b/pkg/csource/generated.go
@@ -80,14 +80,6 @@ static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;
-#if GOOS_akaros
-#include <parlib/parlib.h>
-static void recover(void)
-{
- _longjmp(segv_env, 1);
-}
-#endif
-
static void segv_handler(int sig, siginfo_t* info, void* ctx)
{
@@ -106,13 +98,7 @@ static void segv_handler(int sig, siginfo_t* info, void* ctx)
#endif
if (skip && valid) {
debug("SIGSEGV on %p, skipping\n", (void*)addr);
-#if GOOS_akaros
- struct user_context* uctx = (struct user_context*)ctx;
- uctx->tf.hw_tf.tf_rip = (long)(void*)recover;
- return;
-#else
_longjmp(segv_env, 1);
-#endif
}
debug("SIGSEGV on %p, exiting\n", (void*)addr);
doexit(sig);
@@ -212,7 +198,7 @@ static void use_temporary_dir(void)
#endif
#endif
-#if GOOS_akaros || GOOS_netbsd || GOOS_freebsd || GOOS_darwin || GOOS_openbsd || GOOS_test
+#if GOOS_netbsd || GOOS_freebsd || GOOS_darwin || GOOS_openbsd || GOOS_test
#if (SYZ_EXECUTOR || SYZ_REPEAT) && SYZ_EXECUTOR_USES_FORK_SERVER && (SYZ_EXECUTOR || SYZ_USE_TMP_DIR)
#include <dirent.h>
#include <errno.h>
@@ -334,7 +320,7 @@ static void thread_start(void* (*fn)(void*), void* arg)
#endif
#endif
-#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd || GOOS_openbsd || GOOS_akaros || GOOS_test
+#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd || GOOS_openbsd || GOOS_test
#if SYZ_EXECUTOR || SYZ_THREADED
#include <pthread.h>
@@ -449,40 +435,7 @@ static uint16 csum_inet_digest(struct csum_inet* csum)
}
#endif
-#if GOOS_akaros
-
-#include <ros/syscall.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#if SYZ_EXECUTOR || SYZ_SANDBOX_NONE
-static void loop();
-static int do_sandbox_none(void)
-{
- loop();
- return 0;
-}
-#endif
-
-#if SYZ_EXECUTOR || SYZ_REPEAT
-static void execute_one();
-const char* program_name;
-
-void child()
-{
-#if SYZ_EXECUTOR || SYZ_HANDLE_SEGV
- install_segv_handler();
-#endif
-#if SYZ_EXECUTOR
- receive_execute();
- close(kInPipeFd);
-#endif
- execute_one();
- doexit(0);
-}
-#endif
-
-#elif GOOS_freebsd || GOOS_darwin || GOOS_netbsd
+#if GOOS_freebsd || GOOS_darwin || GOOS_netbsd
#include <unistd.h>
@@ -12597,11 +12550,6 @@ static void loop(void)
#if SYZ_EXECUTOR
reply_handshake();
#endif
-#if SYZ_EXECUTOR && GOOS_akaros
- int child_pipe[2];
- if (pipe(child_pipe))
- fail("pipe failed");
-#endif
int iter = 0;
#if SYZ_REPEAT_TIMES
for (; iter < /*{{{REPEAT_TIMES}}}*/; iter++) {
@@ -12634,15 +12582,6 @@ static void loop(void)
#if SYZ_HAVE_SETUP_EXT_TEST
setup_ext_test();
#endif
-#if GOOS_akaros
-#if SYZ_EXECUTOR
- dup2(child_pipe[0], kInPipeFd);
- close(child_pipe[0]);
- close(child_pipe[1]);
-#endif
- execl(program_name, program_name, "child", NULL);
- fail("execl failed");
-#else
#if SYZ_EXECUTOR
close(kInPipeFd);
#endif
@@ -12654,13 +12593,8 @@ static void loop(void)
close_fds();
#endif
doexit(0);
-#endif
}
debug("spawned worker pid %d\n", pid);
-
-#if SYZ_EXECUTOR && GOOS_akaros
- resend_execute(child_pipe[1]);
-#endif
int status = 0;
uint64 start = current_time_ms();
#if SYZ_EXECUTOR && SYZ_EXECUTOR_USES_SHMEM
@@ -12738,21 +12672,9 @@ void loop(void)
#endif
}
#endif
-#if GOOS_akaros && SYZ_REPEAT
-#include <string.h>
-
-int main(int argc, char** argv)
-{
- /*{{{MMAP_DATA}}}*/
-
- program_name = argv[0];
- if (argc == 2 && strcmp(argv[1], "child") == 0)
- child();
-#else
int main(void)
{
/*{{{MMAP_DATA}}}*/
-#endif
#if SYZ_SYSCTL
setup_sysctl();
diff --git a/pkg/host/host_akaros.go b/pkg/host/host_akaros.go
deleted file mode 100644
index 23668683a..000000000
--- a/pkg/host/host_akaros.go
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-//go:build akaros
-// +build akaros
-
-package host
-
-import (
- "github.com/google/syzkaller/prog"
-)
-
-func isSupported(c *prog.Syscall, target *prog.Target, sandbox string) (bool, string) {
- return true, ""
-}
diff --git a/pkg/osutil/osutil_akaros.go b/pkg/osutil/osutil_akaros.go
deleted file mode 100644
index 1ef9f4538..000000000
--- a/pkg/osutil/osutil_akaros.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-//go:build akaros
-// +build akaros
-
-package osutil
-
-import (
- "os"
- "os/exec"
-)
-
-func HandleInterrupts(shutdown chan struct{}) {
-}
-
-func RemoveAll(dir string) error {
- return os.RemoveAll(dir)
-}
-
-func SystemMemorySize() uint64 {
- return 0
-}
-
-func prolongPipe(r, w *os.File) {
-}
-
-func Sandbox(cmd *exec.Cmd, user, net bool) error {
- return nil
-}
-
-func SandboxChown(file string) error {
- return nil
-}
-
-func setPdeathsig(cmd *exec.Cmd, hardKill bool) {
-}
-
-func killPgroup(cmd *exec.Cmd) {
-}
diff --git a/pkg/report/akaros.go b/pkg/report/akaros.go
deleted file mode 100644
index e212d608f..000000000
--- a/pkg/report/akaros.go
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2018 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package report
-
-import (
- "bufio"
- "bytes"
- "fmt"
- "path/filepath"
- "regexp"
- "strconv"
- "strings"
-
- "github.com/google/syzkaller/pkg/report/crash"
- "github.com/google/syzkaller/pkg/symbolizer"
-)
-
-type akaros struct {
- *config
- objfile string
-}
-
-func ctorAkaros(cfg *config) (reporterImpl, []string, error) {
- ctx := &akaros{
- config: cfg,
- }
- if ctx.kernelObj != "" {
- ctx.objfile = filepath.Join(ctx.kernelObj, ctx.target.KernelObject)
- }
- return ctx, nil, nil
-}
-
-func (ctx *akaros) ContainsCrash(output []byte) bool {
- return containsCrash(output, akarosOopses, ctx.ignores)
-}
-
-func (ctx *akaros) Parse(output []byte) *Report {
- rep := simpleLineParser(output, akarosOopses, akarosStackParams, ctx.ignores)
- if rep == nil {
- return nil
- }
- if report := ctx.minimizeReport(rep.Report); len(report) != 0 {
- rep.Report = report
- }
- return rep
-}
-
-func (ctx *akaros) Symbolize(rep *Report) error {
- if ctx.objfile == "" {
- return nil
- }
- symb := symbolizer.NewSymbolizer(ctx.config.target)
- defer symb.Close()
- var symbolized []byte
- s := bufio.NewScanner(bytes.NewReader(rep.Report))
- for s.Scan() {
- line := s.Bytes()
- line = ctx.symbolizeLine(symb.Symbolize, ctx.objfile, line)
- symbolized = append(symbolized, line...)
- symbolized = append(symbolized, '\n')
- }
- rep.Report = symbolized
- return nil
-}
-
-func (ctx *akaros) symbolizeLine(symbFunc func(bin string, pc uint64) ([]symbolizer.Frame, error),
- objfile string, line []byte) []byte {
- match := akarosSymbolizeRe.FindSubmatchIndex(line)
- if match == nil {
- return line
- }
- addr, err := strconv.ParseUint(string(line[match[2]:match[3]]), 0, 64)
- if err != nil {
- return line
- }
- frames, err := symbFunc(objfile, addr-1)
- if err != nil || len(frames) == 0 {
- return line
- }
- var symbolized []byte
- for i, frame := range frames {
- if i != 0 {
- symbolized = append(symbolized, '\n')
- }
- file := frame.File
- if pos := strings.LastIndex(file, "/kern/"); pos != -1 {
- file = file[pos+6:]
- }
- modified := append([]byte{}, line...)
- modified = append(modified, fmt.Sprintf(" at %v:%v", file, frame.Line)...)
- if frame.Inline {
- modified = replace(modified, match[4], match[5], []byte(frame.Func))
- modified = replace(modified, match[2], match[3], []byte(" [inline] "))
- }
- symbolized = append(symbolized, modified...)
- }
- return symbolized
-}
-
-func (ctx *akaros) minimizeReport(report []byte) []byte {
- out := new(bytes.Buffer)
- for s := bufio.NewScanner(bytes.NewReader(report)); s.Scan(); {
- line := s.Bytes()
- if len(line) == 0 ||
- bytes.Contains(line, []byte("Entering Nanwan's Dungeon")) ||
- bytes.Contains(line, []byte("Type 'help' for a list of commands")) {
- continue
- }
- out.Write(line)
- out.WriteByte('\n')
- }
- return out.Bytes()
-}
-
-var (
- akarosSymbolizeRe = compile(`^#[0-9]+ \[\<(0x[0-9a-f]+)\>\] in ([a-zA-Z0-9_]+)`)
- akarosBacktraceRe = compile(`(?:Stack Backtrace|Backtrace of kernel context) on Core [0-9]+:`)
-)
-
-var akarosStackParams = &stackParams{
- stackStartRes: []*regexp.Regexp{
- akarosBacktraceRe,
- },
- frameRes: []*regexp.Regexp{
- compile(`^#[0-9]+ {{PC}} in ([a-zA-Z0-9_]+)`),
- },
- skipPatterns: []string{
- "backtrace",
- "mon_backtrace",
- "monitor",
- "_panic",
- "_warn",
- },
-}
-
-var akarosOopses = append([]*oops{
- {
- []byte("kernel panic"),
- []oopsFormat{
- {
- title: compile("kernel panic at {{SRC}}, from core [0-9]+: assertion failed: (.*)"),
- fmt: "assertion failed: %[2]v",
- stack: &stackFmt{
- parts: []*regexp.Regexp{
- akarosBacktraceRe,
- parseStackTrace,
- },
- },
- },
- {
- title: compile("kernel panic at {{SRC}}, from core [0-9]+: (.*)"),
- fmt: "kernel panic: %[2]v",
- stack: &stackFmt{
- parts: []*regexp.Regexp{
- akarosBacktraceRe,
- parseStackTrace,
- },
- },
- },
- {
- title: compile("kernel panic"),
- fmt: "kernel panic",
- noStackTrace: true,
- corrupted: true,
- },
- },
- []*regexp.Regexp{},
- crash.UnknownType,
- },
- {
- []byte("kernel warning"),
- []oopsFormat{
- {
- title: compile("kernel warning at {{SRC}}, from core [0-9]+"),
- fmt: "kernel warning in %[2]v",
- stack: &stackFmt{
- parts: []*regexp.Regexp{
- akarosBacktraceRe,
- parseStackTrace,
- },
- },
- },
- {
- title: compile("kernel warning"),
- fmt: "kernel warning",
- noStackTrace: true,
- corrupted: true,
- },
- },
- []*regexp.Regexp{},
- crash.UnknownType,
- },
- &groupGoRuntimeErrors,
-}, commonOopses...)
diff --git a/pkg/report/report.go b/pkg/report/report.go
index 750ceed14..38f2ec758 100644
--- a/pkg/report/report.go
+++ b/pkg/report/report.go
@@ -137,7 +137,6 @@ const (
)
var ctors = map[string]fn{
- targets.Akaros: ctorAkaros,
targets.Linux: ctorLinux,
"starnix": ctorFuchsia,
"gvisor": ctorGvisor,
diff --git a/pkg/report/testdata/akaros/report/0 b/pkg/report/testdata/akaros/report/0
deleted file mode 100644
index d650a059a..000000000
--- a/pkg/report/testdata/akaros/report/0
+++ /dev/null
@@ -1,14 +0,0 @@
-TITLE: kernel panic: [German Accent]: OOM for a small slab growth!!!
-CORRUPTED: Y
-
-/ $ kernel panic at kern/src/slab.c:518, from core 1: [German Accent]: OOM for a small slab growth!!!
-
-Entering Nanwan's Dungeon on Core 1 (Ints on):
-
-Type 'help' for a list of commands.
-
-ROS(Core 1)> kernel panic at kern/src/arena.c:686, from core 0: OOM!
-
-Entering Nanwan's Dungeon on Core 0 (Ints on):
-
-Type 'help' for a list of commands.
diff --git a/pkg/report/testdata/akaros/report/1 b/pkg/report/testdata/akaros/report/1
deleted file mode 100644
index 131a1ac68..000000000
--- a/pkg/report/testdata/akaros/report/1
+++ /dev/null
@@ -1,39 +0,0 @@
-TITLE: kernel panic: Proc-ful Page Fault in the Kernel at ADDR!
-CORRUPTED: Y
-
-HW TRAP frame at 0xfffffff00006ab90 on core 0
- rax 0xffff8000044a0b60
- rbx 0x000000000000000b
- rcx 0xffff8000044a0b60
- rdx 0x000000000000000b
- rbp 0xfffffff00006ac58
- rsi 0x0000000000483cda
- rdi 0xffff8000044a0b60
- r8 0x0000000000483cdc
- r9 0x000000000000000a
- r10 0xffff8000044a0b6a
- r11 0xffff8000044a0b5a
- r12 0xffff8000048b3020
- r13 0x0000000000483cda
- r14 0x0000000000010000
- r15 0xffff8000044a0b60
- trap 0x0000000e Page Fault
- gsbs 0xffffffffc82e58c0
- fsbs 0x0000000000000000
- err 0x--------00000000
- rip 0xffffffffc2053804
- cs 0x------------0008
- flag 0x0000000000010202
- rsp 0xfffffff00006ac58
- ss 0x------------0010
-
-Backtrace of kernel context on Core 0:
-#01 [<0xffffffffc2053804>] in memcpy
-#02 [<0xffffffffc203a495>] in __qwrite
-#03 [<0xffffffffc207ef26>] in pipewrite
-#04 [<0xffffffffc203f3c4>] in rwrite
-#05 [<0xffffffffc2057ca9>] in syscall
-#06 [<0xffffffffc2057e64>] in run_local_syscall
-#07 [<0xffffffffc20a957a>] in sysenter_callwrapper
-kernel panic at kern/arch/x86/trap.c:311, from core 0: Proc-ful Page Fault in the Kernel at 0x0000000000483cda!
-Entering Nanwan's Dungeon on Core 0 (Ints off):
diff --git a/pkg/report/testdata/akaros/report/2 b/pkg/report/testdata/akaros/report/2
deleted file mode 100644
index 3027a6142..000000000
--- a/pkg/report/testdata/akaros/report/2
+++ /dev/null
@@ -1,20 +0,0 @@
-TITLE: assertion failed: rpi->gp_acked + NUM == READ_ONCE(rsp->gpnum)
-
-kernel panic at kern/src/rcu.c:325, from core 3: assertion failed: rpi->gp_acked + 1 == READ_ONCE(rsp->gpnum)
-
-Stack Backtrace on Core 3:
-
-#01 [<0xffffffffc200a3b7>] in backtrace
-
-#02 [<0xffffffffc2009b7c>] in _panic
-
-#03 [<0xffffffffc20502d9>] in rcu_report_qs_rpi
-
-#04 [<0xffffffffc2050c2c>] in rcu_report_qs
-
-#05 [<0xffffffffc2054343>] in __smp_idle
-
-
-Entering Nanwan's Dungeon on Core 3 (Ints off):
-
-Type 'help' for a list of commands.
diff --git a/pkg/report/testdata/akaros/report/3 b/pkg/report/testdata/akaros/report/3
deleted file mode 100644
index afa8d9d39..000000000
--- a/pkg/report/testdata/akaros/report/3
+++ /dev/null
@@ -1,145 +0,0 @@
-TITLE: assertion failed: page && pm_slot_check_refcnt(*page->pg_tree_slot)
-CORRUPTED: Y
-
-Unhandled user trap in vcore context from VC 1
-HW TRAP frame (partial) at 0xffffffffc82cbd20 on core 1
- rax 0x0000100000011743
- rbx 0x000030000005ced0
- rcx 0x0000000000000001
- rdx 0x0000100000011740
- rbp 0x000030000005ceb0
- rsi 0x0000100000008820
- rdi 0x0000100000008820
- r8 0x0000000000000000
- r9 0x0000000000000000
- r10 0x000030000005ced0
- r11 0x0000000000000200
- r12 0x0000000000000001
- r13 0x0000000000000001
- r14 0x0000000000409720
- r15 0x0000000000000000
- trap 0x0000000d General Protection
- gsbs 0x0000000000000000
- fsbs 0x0000000000000000
- err 0x--------00000000
- rip 0x00000000004005f0
- cs 0x------------0023
- flag 0x0000000000010286
- rsp 0x000030000005ce98
- ss 0x------------001b
-err 0x0 (for PFs: User 4, Wr 2, Rd 1), aux 0x0000000000000000
-Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-VM Regions for proc 540
-NR: Range: Prot, Flags, File, Off
-00: (0x0000000000400000 - 0x00000000004b2000): 0x00000005, 0x00000001, 0xffff800101103840, 0x0000000000000000
-01: (0x00000000004b2000 - 0x00000000004b3000): 0x00000005, 0x00000002, 0xffff800101103840, 0x00000000000b2000
-02: (0x00000000006b3000 - 0x00000000006b6000): 0x00000003, 0x00000002, 0xffff800101103840, 0x00000000000b3000
-03: (0x00000000006b6000 - 0x0000000000925000): 0x00000003, 0x00000002, 0x0000000000000000, 0x0000000000000000
-04: (0x0000100000000000 - 0x0000100000024000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-05: (0x0000300000000000 - 0x0000300000001000): 0x00000003, 0x00000002, 0xffff800101103840, 0x0000000000000000
-06: (0x0000300000001000 - 0x0000300000005000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-07: (0x0000300000005000 - 0x0000300000007000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-08: (0x0000300000007000 - 0x0000300000031000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-09: (0x0000300000031000 - 0x000030000005d000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-10: (0x00007f7fff8ff000 - 0x00007f7fff9ff000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-
-Backtrace of user context on Core 1:
- Offsets only matter for shared libraries
-#01 Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-#02 Addr 0x0000000000410394 is in syz-executor at offset 0x0000000000010394
-#03 Addr 0x000000006b3a3000 has no VMR
-Unhandled user trap in vcore context from VC 0
-HW TRAP frame (partial) at 0xffffffffc82cc720 on core 5
- rax 0x0000100000005d03
- rbx 0x00007f7fff9feb80
- rcx 0x0000000000000001
- rdx 0x0000100000005d00
- rbp 0x00007f7fff9feb60
- rsi 0x00001000000046c0
- rdi 0x00001000000046c0
- r8 0x0000000000000000
- r9 0x0000000000000000
- r10 0x00007f7fff9feb80
- r11 0x0000000000000200
- r12 0x0000000000000001
- r13 0x0000000000000000
- r14 0x0000000000409520
- r15 0x0000000000000000
- trap 0x0000000d General Protection
- gsbs 0x0000000000000000
- fsbs 0x0000000000000000
- err 0x--------00000000
- rip 0x00000000004005f0
- cs 0x------------0023
- flag 0x0000000000010206
- rsp 0x00007f7fff9feb48
- ss 0x------------001b
-err 0x0 (for PFs: User 4, Wr 2, Rd 1), aux 0x0000000000000000
-Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-VM Regions for proc 540
-NR: Range: Prot, Flags, File, Off
-00: (0x0000000000400000 - 0x00000000004b2000): 0x00000005, 0x00000001, 0xffff800101103840, 0x0000000000000000
-01: (0x00000000004b2000 - 0x00000000004b3000): 0x00000005, 0x00000002, 0xffff800101103840, 0x00000000000b2000
-02: (0x00000000006b3000 - 0x00000000006b6000): 0x00000003, 0x00000002, 0xffff800101103840, 0x00000000000b3000
-03: (0x00000000006b6000 - 0x0000000000925000): 0x00000003, 0x00000002, 0x0000000000000000, 0x0000000000000000
-04: (0x0000100000000000 - 0x0000100000024000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-05: (0x0000300000000000 - 0x0000300000001000): 0x00000003, 0x00000002, 0xffff800101103840, 0x0000000000000000
-06: (0x0000300000001000 - 0x0000300000005000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-07: (0x0000300000005000 - 0x0000300000007000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-08: (0x0000300000007000 - 0x0000300000031000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-09: (0x0000300000031000 - 0x000030000005d000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-10: (0x00007f7fff8ff000 - 0x00007f7fff9ff000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-
-Backtrace of user context on Core 5:
- Offsets only matter for shared libraries
-#01 Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-#02 Addr 0x0000000000410394 is in syz-executor at offset 0x0000000000010394
-#03 Addr 0x00009214b0000000 has no VMR
-Unhandled user trap in vcore context from VC 0
-HW TRAP frame (partial) at 0xffffffffc82cbaa0 on core 0
- rax 0x0000100000005df0
- rbx 0x00007f7fff9feaf0
- rcx 0x00000000004368ee
- rdx 0x0000100000005d00
- rbp 0x00007f7fff9fead0
- rsi 0x00001000000046c0
- rdi 0x00001000000046c0
- r8 0x0000000000000000
- r9 0x0000000000000000
- r10 0x00007f7fff9feaf0
- r11 0x0000000000000200
- r12 0x0000000000000001
- r13 0x0000000000000000
- r14 0x0000000000415400
- r15 0x0000000000000000
- trap 0x0000000d General Protection
- gsbs 0x0000000000000000
- fsbs 0x0000000000000000
- err 0x--------00000000
- rip 0x00000000004005f0
- cs 0x------------0023
- flag 0x0000000000010283
- rsp 0x00007f7fff9feab8
- ss 0x------------001b
-err 0x0 (for PFs: User 4, Wr 2, Rd 1), aux 0x0000000000000000
-Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-VM Regions for proc 506
-NR: Range: Prot, Flags, File, Off
-00: (0x0000000000400000 - 0x00000000004b2000): 0x00000005, 0x00000001, 0xffff800101103840, 0x0000000000000000
-01: (0x00000000004b2000 - 0x00000000004b3000): 0x00000005, 0x00000002, 0xffff800101103840, 0x00000000000b2000
-02: (0x00000000006b3000 - 0x00000000006b6000): 0x00000003, 0x00000002, 0xffff800101103840, 0x00000000000b3000
-03: (0x00000000006b6000 - 0x0000000000925000): 0x00000003, 0x00000002, 0x0000000000000000, 0x0000000000000000
-04: (0x0000100000000000 - 0x0000100000024000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-05: (0x0000300000000000 - 0x0000300000001000): 0x00000003, 0x00000002, 0xffff800101103840, 0x0000000000000000
-06: (0x0000300000001000 - 0x0000300000005000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-07: (0x0000300000005000 - 0x0000300000007000): 0x00000007, 0x00000022, 0x0000000000000000, 0x0000000000000000
-08: (0x0000300000007000 - 0x0000300000019000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-09: (0x00007f7fff8ff000 - 0x00007f7fff9ff000): 0x00000003, 0x00000022, 0x0000000000000000, 0x0000000000000000
-
-Backtrace of user context on Core 0:
- Offsets only matter for shared libraries
-#01 Addr 0x00000000004005f0 is in syz-executor at offset 0x00000000000005f0
-#02 Addr 0x0000000000410394 is in syz-executor at offset 0x0000000000010394
-#03 Addr 0x000000000c00007f has no VMR
-kernel panic at kern/src/pagemap.c:222, from core 0: assertion failed: page && pm_slot_check_refcnt(*page->pg_tree_slot)
-Entering Nanwan's Dungeon on Core 0 (Ints on):
diff --git a/pkg/report/testdata/akaros/report/4 b/pkg/report/testdata/akaros/report/4
deleted file mode 100644
index 2c260f01a..000000000
--- a/pkg/report/testdata/akaros/report/4
+++ /dev/null
@@ -1,6 +0,0 @@
-TITLE: assertion failed: n >= sizeof(struct kdirent)
-CORRUPTED: Y
-
-kernel panic at kern/src/ns/sysfile.c:719, from core 1: assertion failed: n >= sizeof(struct kdirent)
-
-Entering Nanwan's Dungeon on Core 1 (Ints on):
diff --git a/pkg/report/testdata/akaros/report/5 b/pkg/report/testdata/akaros/report/5
deleted file mode 100644
index 704a23ad5..000000000
--- a/pkg/report/testdata/akaros/report/5
+++ /dev/null
@@ -1,44 +0,0 @@
-TITLE: assertion failed: !pte_is_mapped(pte)
-
-kernel panic at kern/src/mm.c:737, from core 1: assertion failed: !pte_is_mapped(pte)
-
-Stack Backtrace on Core 1:
-
-#01 [<0xffffffffc200a3b7>] in backtrace
-
-#02 [<0xffffffffc2009b7c>] in _panic
-
-#03 [<0xffffffffc200db41>] in map_page_at_addr
-
-#04 [<0xffffffffc200db92>] in populate_anon_va
-
-#05 [<0xffffffffc200fbf2>] in populate_va
-
-#06 [<0xffffffffc20560f0>] in sys_populate_va
-
-#07 [<0xffffffffc2059129>] in syscall
-
-#08 [<0xffffffffc20592e4>] in run_local_syscall
-
-#09 [<0xffffffffc2059819>] in prep_syscalls
-
-#10 [<0xffffffffc20aaefa>] in sysenter_callwrapper
-
-
-Entering Nanwan's Dungeon on Core 1 (Ints on):
-
-Type 'help' for a list of commands.
-
-REPORT:
-kernel panic at kern/src/mm.c:737, from core 1: assertion failed: !pte_is_mapped(pte)
-Stack Backtrace on Core 1:
-#01 [<0xffffffffc200a3b7>] in backtrace
-#02 [<0xffffffffc2009b7c>] in _panic
-#03 [<0xffffffffc200db41>] in map_page_at_addr
-#04 [<0xffffffffc200db92>] in populate_anon_va
-#05 [<0xffffffffc200fbf2>] in populate_va
-#06 [<0xffffffffc20560f0>] in sys_populate_va
-#07 [<0xffffffffc2059129>] in syscall
-#08 [<0xffffffffc20592e4>] in run_local_syscall
-#09 [<0xffffffffc2059819>] in prep_syscalls
-#10 [<0xffffffffc20aaefa>] in sysenter_callwrapper
diff --git a/pkg/report/testdata/akaros/report/6 b/pkg/report/testdata/akaros/report/6
deleted file mode 100644
index 61423b170..000000000
--- a/pkg/report/testdata/akaros/report/6
+++ /dev/null
@@ -1,83 +0,0 @@
-TITLE: kernel panic: Proc-ful Page Fault in the Kernel at ADDR!
-
-HW TRAP frame at 0xfffffff00006dd00 on core 3
-
- rax 0x0000000000000001
-
- rbx 0x00000002deadbabe
-
- rcx 0x0000000000000080
-
- rdx 0x00000002deadbac6
-
- rbp 0xfffffff00006ddc8
-
- rsi 0x0000000000000003
-
- rdi 0x00000002deadbac6
-
- r8 0x0000000000000000
-
- r9 0x0000000000000000
-
- r10 0x000010000000a4c0
-
- r11 0x0000000000000206
-
- r12 0xffff800002182e60
-
- r13 0x00000000ffffffff
-
- r14 0x0000000000000004
-
- r15 0xffff800002182ac0
-
- trap 0x0000000e Page Fault
-
- gsbs 0xffffffffc8704140
-
- fsbs 0x0000000000000000
-
- err 0x--------00000000
-
- rip 0xffffffffc2007ab7
-
- cs 0x------------0008
-
- flag 0x0000000000010206
-
- rsp 0xfffffff00006ddc8
-
- ss 0x------------0010
-
-
-Backtrace of kernel context on Core 3:
-
-#01 [<0xffffffffc2007ab7>] in kref_put
-
-#02 [<0xffffffffc2007e36>] in remove_fd_tap
-
-#03 [<0xffffffffc205846c>] in sys_tap_fds
-
-#04 [<0xffffffffc2059129>] in syscall
-
-#05 [<0xffffffffc20592e4>] in run_local_syscall
-
-#06 [<0xffffffffc2059819>] in prep_syscalls
-
-#07 [<0xffffffffc20aaefa>] in sysenter_callwrapper
-
-kernel panic at kern/arch/x86/trap.c:311, from core 3: Proc-ful Page Fault in the Kernel at 0x00000002deadbac6!
-
-Stack Backtrace on Core 3:
-
-#01 [<0xffffffffc200a3b7>] in backtrace
-
-#02 [<0xffffffffc2009b7c>] in _panic
-
-#03 [<0xffffffffc20aa629>] in trap
-
-
-Entering Nanwan's Dungeon on Core 3 (Ints off):
-
-Type 'help' for a list of commands.
diff --git a/pkg/report/testdata/akaros/report/7 b/pkg/report/testdata/akaros/report/7
deleted file mode 100644
index d852819ea..000000000
--- a/pkg/report/testdata/akaros/report/7
+++ /dev/null
@@ -1,69 +0,0 @@
-TITLE: kernel panic: Proc-ful Page Fault in the Kernel at ADDR!
-
-bash-4.3$ kernel panic at kern/arch/x86/trap.c:309, from core 3: Proc-ful Page Fault in the Kernel at 0x000000000000001b!
-
-HW TRAP frame at 0xfffffff0000a9d30 on core 3
-
- rax 0x0000000000000000
-
- rbx 0xffff80000490b120
-
- rcx 0xfffffff0000a9ea0
-
- rdx 0xfffffff0000a9d6c
-
- rbp 0xfffffff0000a9e38
-
- rsi 0x0000000000000000
-
- rdi 0xfffffff0000a9ea0
-
- r8 0x0000000000000001
-
- r9 0xffffffffc8790880
-
- r10 0x0000000000000030
-
- r11 0xffff800015a64ca0
-
- r12 0xffff800014e95b80
-
- r13 0x00000000200000c0
-
- r14 0x0000000000000073
-
- r15 0x0000000000000007
-
- trap 0x0000000e Page Fault
-
- gsbs 0xffffffffc8668140
-
- fsbs 0x0000000000000000
-
- err 0x--------00000000
-
- rip 0xffffffffc20583b4
-
- cs 0x------------0008
-
- flag 0x0000000000010246
-
- rsp 0xfffffff0000a9df8
-
- ss 0x------------0010
-
-
-Backtrace of kernel context on Core 3:
-
-#01 [<0xffffffffc20583b4>] in sys_readlink
-
-#02 [<0xffffffffc20593c9>] in syscall
-
-#03 [<0xffffffffc2059584>] in run_local_syscall
-
-#04 [<0xffffffffc2059ab9>] in prep_syscalls
-
-#05 [<0xffffffffc20ab29a>] in sysenter_callwrapper
-
-
-Entering Nanwan's Dungeon on Core 3 (Ints off):
diff --git a/pkg/report/testdata/akaros/report/8 b/pkg/report/testdata/akaros/report/8
deleted file mode 100644
index 2c01b9ca3..000000000
--- a/pkg/report/testdata/akaros/report/8
+++ /dev/null
@@ -1,25 +0,0 @@
-TITLE: kernel warning in statcheck
-
-kernel warning at kern/src/ns/convM2D.c:52, from core 2: nbuf 213, STAT_FIX_LEN_9P 49 BIT16SZ 2, GBIT16(buf) 0
-
-Stack Backtrace on Core 2:
-
-#01 [<0xffffffffc200a2dc>] in backtrace
-
-#02 [<0xffffffffc2009b94>] in _warn
-
-#03 [<0xffffffffc2034c5d>] in statcheck
-
-#04 [<0xffffffffc203df08>] in validstat
-
-#05 [<0xffffffffc203ef6e>] in sysfwstat
-
-#06 [<0xffffffffc2055cc0>] in sys_fwstat
-
-#07 [<0xffffffffc2059459>] in syscall
-
-#08 [<0xffffffffc2059624>] in run_local_syscall
-
-#09 [<0xffffffffc2059b59>] in prep_syscalls
-
-#10 [<0xffffffffc20ab41a>] in sysenter_callwrapper
diff --git a/pkg/vcs/akaros.go b/pkg/vcs/akaros.go
deleted file mode 100644
index 33dfb7850..000000000
--- a/pkg/vcs/akaros.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2018 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package vcs
-
-import (
- "path/filepath"
-)
-
-type akaros struct {
- *git
- dropbear *git
-}
-
-func newAkaros(dir string, opts []RepoOpt) *akaros {
- return &akaros{
- git: newGit(dir, nil, opts),
- dropbear: newGit(filepath.Join(dir, "dropbear"), nil, opts),
- }
-}
-
-func (ctx *akaros) Poll(repo, branch string) (*Commit, error) {
- if _, err := ctx.dropbear.Poll("https://github.com/akaros/dropbear-akaros", "akaros"); err != nil {
- return nil, err
- }
- return ctx.git.Poll(repo, branch)
-}
diff --git a/pkg/vcs/vcs.go b/pkg/vcs/vcs.go
index a83f66835..faf1cf85d 100644
--- a/pkg/vcs/vcs.go
+++ b/pkg/vcs/vcs.go
@@ -190,8 +190,6 @@ func NewRepo(os, vmType, dir string, opts ...RepoOpt) (Repo, error) {
switch os {
case targets.Linux:
return newLinux(dir, opts, vmType), nil
- case targets.Akaros:
- return newAkaros(dir, opts), nil
case targets.Fuchsia:
return newFuchsia(dir, opts), nil
case targets.OpenBSD:
diff --git a/sys/akaros/dev.txt b/sys/akaros/dev.txt
deleted file mode 100644
index c06e47191..000000000
--- a/sys/akaros/dev.txt
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2018 syzkaller project authors. All rights reserved.
-# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-include <ros/syscall.h>
-include <ros/fs.h>
-
-openat$dev_random(fromfd const[AT_FDCWD], path ptr[in, string["/dev/random"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_urandom(fromfd const[AT_FDCWD], path ptr[in, string["/dev/urandom"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_bintime(fromfd const[AT_FDCWD], path ptr[in, string["/dev/bintime"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_config(fromfd const[AT_FDCWD], path ptr[in, string["/dev/config"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_killkid(fromfd const[AT_FDCWD], path ptr[in, string["/dev/killkid"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_cputime(fromfd const[AT_FDCWD], path ptr[in, string["/dev/cputime"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_drivers(fromfd const[AT_FDCWD], path ptr[in, string["/dev/drivers"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_hostdomain(fromfd const[AT_FDCWD], path ptr[in, string["/dev/hostdomain"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_hostowner(fromfd const[AT_FDCWD], path ptr[in, string["/dev/hostowner"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_klog(fromfd const[AT_FDCWD], path ptr[in, string["/dev/klog"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_kmesg(fromfd const[AT_FDCWD], path ptr[in, string["/dev/kmesg"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_kprint(fromfd const[AT_FDCWD], path ptr[in, string["/dev/kprint"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_null(fromfd const[AT_FDCWD], path ptr[in, string["/dev/null"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_osversion(fromfd const[AT_FDCWD], path ptr[in, string["/dev/osversion"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_pgrpid(fromfd const[AT_FDCWD], path ptr[in, string["/dev/pgrpid"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_pid(fromfd const[AT_FDCWD], path ptr[in, string["/dev/pid"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_ppid(fromfd const[AT_FDCWD], path ptr[in, string["/dev/ppid"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_stdin(fromfd const[AT_FDCWD], path ptr[in, string["/dev/stdin"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_stdout(fromfd const[AT_FDCWD], path ptr[in, string["/dev/stdout"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_stderr(fromfd const[AT_FDCWD], path ptr[in, string["/dev/stderr"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_swap(fromfd const[AT_FDCWD], path ptr[in, string["/dev/swap"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_sysctl(fromfd const[AT_FDCWD], path ptr[in, string["/dev/sysctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_sysname(fromfd const[AT_FDCWD], path ptr[in, string["/dev/sysname"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_sysstat(fromfd const[AT_FDCWD], path ptr[in, string["/dev/sysstat"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_time(fromfd const[AT_FDCWD], path ptr[in, string["/dev/time"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_user(fromfd const[AT_FDCWD], path ptr[in, string["/dev/user"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_zero(fromfd const[AT_FDCWD], path ptr[in, string["/dev/zero"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$dev_empty(fromfd const[AT_FDCWD], path ptr[in, string["/dev/.empty"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_capuse(fromfd const[AT_FDCWD], path ptr[in, string["/dev/capuse"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_caphash(fromfd const[AT_FDCWD], path ptr[in, string["/dev/caphash"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$dev_sdctl(fromfd const[AT_FDCWD], path ptr[in, string["/dev/sdctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-
-openat$proc_self_args(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/args"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$proc_self_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$proc_self_fd(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/fd"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_fpregs(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/fpregs"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_maps(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/maps"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_mem(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/mem"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_note(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/note"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_noteid(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/noteid"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$proc_self_notepg(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/notepg"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_ns(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/ns"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_proc(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/proc"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_user(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/user"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_segment(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/segment"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_status(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_strace(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/strace"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_strace_traceset(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/strace_traceset"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$proc_self_vmstatus(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/vmstatus"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_text(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/text"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_wait(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/wait"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_profile(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/profile"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_syscall(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/syscall"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$proc_self_core(fromfd const[AT_FDCWD], path ptr[in, string["/proc/self/core"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-
-openat$prof_empty(fromfd const[AT_FDCWD], path ptr[in, string["/prof/.empty"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_kpdata(fromfd const[AT_FDCWD], path ptr[in, string["/prof/kpdata"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_kpctl(fromfd const[AT_FDCWD], path ptr[in, string["/prof/kpctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_kptrace_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/prof/kptrace_ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_kptrace(fromfd const[AT_FDCWD], path ptr[in, string["/prof/kptrace"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_kprintx(fromfd const[AT_FDCWD], path ptr[in, string["/prof/kprintx"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_mpstat(fromfd const[AT_FDCWD], path ptr[in, string["/prof/mpstat"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$prof_mpstat_raw(fromfd const[AT_FDCWD], path ptr[in, string["/prof/mpstat-raw"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-
-openat$net_empty(fromfd const[AT_FDCWD], path ptr[in, string["/net/.empty"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_0_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_0_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_0_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_0_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_0_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_0_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_0_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/0/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_1_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_1_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_1_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_1_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_1_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_1_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_1_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/1/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_2_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_2_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_2_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_2_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_2_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_2_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_2_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/2/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_tcp_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_tcp_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/tcp/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_udp_0_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_udp_0_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_udp_0_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_udp_0_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_udp_0_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_udp_0_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_udp_0_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/0/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_udp_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_udp_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/udp/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_0_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_0_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_0_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_0_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_0_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_0_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_0_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_0_snoop(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/0/snoop"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_1_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_1_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_1_err(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/err"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_1_listen(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/listen"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_1_local(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/local"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_1_remote(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/remote"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_1_status(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/status"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_1_snoop(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/1/snoop"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ipifc_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipifc_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipifc/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_icmp_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/icmp/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_icmp_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/icmp/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_icmpv6_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/icmpv6/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_icmpv6_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/icmpv6/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_arp(fromfd const[AT_FDCWD], path ptr[in, string["/net/arp"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ndb(fromfd const[AT_FDCWD], path ptr[in, string["/net/ndb"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_iproute(fromfd const[AT_FDCWD], path ptr[in, string["/net/iproute"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_iprouter(fromfd const[AT_FDCWD], path ptr[in, string["/net/iprouter"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ipselftab(fromfd const[AT_FDCWD], path ptr[in, string["/net/ipselftab"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_log(fromfd const[AT_FDCWD], path ptr[in, string["/net/log"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_clone(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/clone"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_addr(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/addr"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_ifstats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/ifstats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_0_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/0/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_0_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/0/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_0_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/0/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_0_type(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/0/type"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_0_ifstats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/0/ifstats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_1_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/1/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_1_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/1/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_1_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/1/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_1_type(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/1/type"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_1_ifstats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/1/ifstats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_2_data(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/2/data"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_2_ctl(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/2/ctl"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
-openat$net_ether0_2_stats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/2/stats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_2_type(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/2/type"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_ether0_2_ifstats(fromfd const[AT_FDCWD], path ptr[in, string["/net/ether0/2/ifstats"]], path_l len[path], oflag const[O_RDONLY], mode const[0]) fd
-openat$net_cs(fromfd const[AT_FDCWD], path ptr[in, string["/net/cs"]], path_l len[path], oflag const[O_RDWR], mode const[0]) fd
diff --git a/sys/akaros/dev_amd64.const b/sys/akaros/dev_amd64.const
deleted file mode 100644
index 61d2d1e8b..000000000
--- a/sys/akaros/dev_amd64.const
+++ /dev/null
@@ -1,5 +0,0 @@
-# AUTOGENERATED FILE
-AT_FDCWD = 18446744073709551516
-O_RDONLY = 1
-O_RDWR = 3
-SYS_openat = 102
diff --git a/sys/akaros/gen/empty.go b/sys/akaros/gen/empty.go
deleted file mode 100644
index 7884be456..000000000
--- a/sys/akaros/gen/empty.go
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2021 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package gen
-
-// Empty file to unbreak build while descriptions are not generated.
diff --git a/sys/akaros/init.go b/sys/akaros/init.go
deleted file mode 100644
index 7f8f1dc16..000000000
--- a/sys/akaros/init.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package akaros
-
-import (
- "github.com/google/syzkaller/prog"
- "github.com/google/syzkaller/sys/targets"
-)
-
-type arch struct {
- MAP_FIXED uint64
-}
-
-func InitTarget(target *prog.Target) {
- arch := &arch{
- MAP_FIXED: target.GetConst("MAP_FIXED"),
- }
- target.MakeDataMmap = targets.MakePosixMmap(target, true, false)
- target.Neutralize = arch.Neutralize
-}
-
-func (arch *arch) Neutralize(c *prog.Call, fixStructure bool) error {
- switch c.Meta.CallName {
- case "mmap":
- c.Args[3].(*prog.ConstArg).Val |= arch.MAP_FIXED
- case "provision":
- if pid, ok := c.Args[0].(*prog.ConstArg); ok && uint32(pid.Val) == ^uint32(0) {
- // PID -1 causes some debugging splat on console.
- pid.Val = 0
- }
- }
- return nil
-}
diff --git a/sys/akaros/sys.txt b/sys/akaros/sys.txt
deleted file mode 100644
index c6177df6d..000000000
--- a/sys/akaros/sys.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-# Copyright 2017 syzkaller project authors. All rights reserved.
-# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-include <ros/syscall.h>
-include <ros/mman.h>
-include <ros/fs.h>
-include <ros/procinfo.h>
-include <ros/resource.h>
-include <ros/event.h>
-include <ros/vmm.h>
-include <ros/trapframe.h>
-include <ros/fdtap.h>
-include <ros/bits/posix_signum.h>
-include <termios.h>
-
-resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
-resource pid[int32]: 0, 0xffffffffffffffff
-
-syz_execute_func(text ptr[in, text[target]])
-
-openat(fromfd fd[opt], path ptr[in, filename], path_l len[path], oflag flags[open_flags], mode flags[open_mode]) fd
-read(fd fd, buf buffer[out], count len[buf])
-write(fd fd, buf buffer[in], count len[buf])
-close(fd fd)
-abort_sysc_fd(fd fd)
-stat(path ptr[in, filename], path_l len[path], statbuf ptr[out, array[int8, KSTAT_SIZE]])
-fstat(fd fd, statbuf ptr[out, array[int8, KSTAT_SIZE]])
-lstat(path ptr[in, filename], path_l len[path], statbuf ptr[out, array[int8, KSTAT_SIZE]])
-llseek(fd fd, offset_hi intptr, offset_lo intptr, result ptr[out, int64], whence flags[seek_whence])
-link(old ptr[in, filename], old_l len[old], new ptr[in, filename], new_l len[new])
-unlink(path ptr[in, filename], path_l len[path])
-symlink(old ptr[in, filename], old_l len[old], new ptr[in, filename], new_l len[new])
-readlink(path ptr[in, filename], path_l len[path], buf buffer[out], siz len[buf])
-chdir(pid pid[opt], path ptr[in, filename], path_l len[path])
-fchdir(pid pid[opt], fd fd)
-getcwd(buf buffer[out], size len[buf])
-rename(old_path ptr[in, filename], old_path_l len[old_path], new_path ptr[in, filename], new_path_l len[new_path])
-mkdir(path ptr[in, filename], path_l len[path], mode flags[open_mode])
-rmdir(path ptr[in, filename], path_l len[path])
-
-fcntl$F_DUPFD(fd fd, cmd const[F_DUPFD], arg fd, must_use_low boolptr) fd
-fcntl$F_GETFD(fd fd, cmd const[F_GETFD])
-fcntl$F_GETFL(fd fd, cmd const[F_GETFL])
-fcntl$F_SETFD(fd fd, cmd const[F_SETFD], flags flags[fcntl_flags])
-fcntl$F_SETFL(fd fd, cmd const[F_SETFL], flags flags[fcntl_status])
-fcntl$F_SYNC(fd fd, cmd const[F_SYNC])
-
-mmap(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd[opt], offset intptr)
-munmap(addr vma, len len[addr])
-mprotect(addr vma, len len[addr], prot flags[mmap_prot])
-
-fork()
-waitpid(pid pid, status ptr[out, int32], options flags[wait_options])
-nanosleep(req ptr[in, timespec], rem ptr[out, timespec, opt])
-
-open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_SYNC, O_TRUNC, O_REMCLO, O_PATH
-open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
-mmap_prot = PROT_EXEC, PROT_READ, PROT_WRITE, PROT_GROWSDOWN, PROT_GROWSUP
-mmap_flags = MAP_SHARED, MAP_PRIVATE, MAP_ANONYMOUS, MAP_DENYWRITE, MAP_EXECUTABLE, MAP_FIXED, MAP_GROWSDOWN, MAP_LOCKED, MAP_NONBLOCK, MAP_NORESERVE, MAP_POPULATE, MAP_STACK
-wait_options = WNOHANG, WUNTRACED
-fcntl_flags = FD_CLOEXEC
-fcntl_status = O_APPEND, O_NONBLOCK, O_CLOEXEC, O_REMCLO, O_PATH
-seek_whence = SEEK_SET, SEEK_CUR, SEEK_END
-
-timespec {
- sec intptr
- nsec intptr
-}
-
-block(usec intptr)
-cache_invalidate()
-getpcoreid()
-getvcoreid()
-proc_create(path ptr[in, filename], path_l len[path], argenv ptr[in, string], argenv_l len[argenv], flags boolptr) pid
-proc_run(pid pid[opt])
-proc_destroy(pid pid[opt], exitcode int32)
-proc_yield(being_nice bool32)
-change_vcore(vcoreid int32, enable_my_notif bool32)
-exec(path ptr[in, filename], path_l len[path], argenv ptr[in, string], argenv_l len[argenv])
-provision(target_pid pid[opt], res_type const[RES_CORES], res_val intptr)
-notify(target_pid pid[opt], ev_type flags[event_type], u_msg ptr[in, event_msg])
-self_notify(vcoreid int32, ev_type flags[event_type], u_msg ptr[in, event_msg], priv bool32)
-halt_core(usec intptr)
-change_to_m()
-poke_ksched(target_pid pid[opt], res_type const[0])
-abort_sysc(sysc intptr)
-populate_va(va vma, nr_pgs intptr)
-vmm_add_gpcs(nr_more_gpcs intptr, gpcis ptr[in, vmm_gpcore_init])
-vc_entry()
-pop_ctx(ctx ptr[in, user_context])
-vmm_poke_guest(guest_pcoreid int32)
-send_event(ev_q ptr[in, event_queue], u_msg ptr[in, event_msg], vcoreid int32)
-access(path ptr[in, filename], path_l len[path], mode flags[open_mode])
-umask(mask int32)
-wstat(path ptr[in, filename], path_l len[path], stat_m ptr[out, array[int8]], stat_sz bytesize[stat_m], flags const[0])
-fwstat(fd fd, stat_m ptr[out, array[int8]], stat_sz bytesize[stat_m], flags const[0])
-dup_fds_to(pid pid[opt], map ptr[in, array[childfdmap]], nentries len[map])
-tap_fds(tap_reqs ptr[in, array[fd_tap_req]], nr_reqs len[tap_reqs])
-tcgetattr(fd fd, termios_p ptr[out, array[int8, TERMIOS_SIZE]])
-nbind(src_path ptr[in, filename], src_l len[src_path], onto_path ptr[in, filename], onto_l len[onto_path], flag flags[bind_flags])
-nmount(fd fd, onto_path ptr[in, filename], onto_l len[onto_path], lag flags[bind_flags])
-nunmount(src_path ptr[in, filename], src_l len[src_path], onto_path ptr[in, filename], onto_l len[onto_path])
-fd2path(fd fd, u_buf ptr[out, array[int8]], len len[u_buf])
-
-# Depends on deprecated CONFIG_ARSC_SERVER.
-#init_arsc()
-
-vmm_ctl$VMM_CTL_GET_EXITS(cmd const[VMM_CTL_GET_EXITS])
-vmm_ctl$VMM_CTL_SET_EXITS(cmd const[VMM_CTL_SET_EXITS], arg flags[vmm_exits])
-vmm_ctl$VMM_CTL_GET_FLAGS(cmd const[VMM_CTL_GET_FLAGS])
-vmm_ctl$VMM_CTL_SET_FLAGS(cmd const[VMM_CTL_SET_FLAGS], arg flags[vmm_flags])
-
-vmm_exits = VMM_CTL_FL_KERN_PRINTC
-vmm_flags = VMM_CTL_EXIT_HALT, VMM_CTL_EXIT_PAUSE, VMM_CTL_EXIT_MWAIT
-
-bind_flags = MREPL, MBEFORE, MAFTER, MCREATE, MCACHE
-
-event_msg {
- ev_type flags[event_type, int16]
- ev_arg1 int16
- ev_arg2 int32
- ev_arg3 ptr[in, array[int8]]
- ev_arg4 int64
-}
-
-event_queue {
- ev_mbox ptr[in, event_mbox]
- ev_flags int32
- ev_alert_pending bool8
- ev_vcore int32
-# TODO: this is a function pointer, is it called by kernel?
- ev_handler intptr
- ev_udata intptr
-}
-
-# TODO: do we need more precise description?
-type event_mbox array[int8, EVENT_MBOX_SIZE]
-
-vmm_gpcore_init {
- posted_irq_desc ptr[in, array[int8]]
- vapic_addr ptr[in, array[int8]]
- apic_addr ptr[in, array[int8]]
- fsbase ptr[in, array[int8]]
- gsbase ptr[in, array[int8]]
-}
-
-childfdmap {
- parentfd fd
- childfd const[0, int32]
- ok const[0, int32]
-}
-
-fd_tap_req {
- fd fd
- cmd flags[fdtap_commands, int32]
- filter flags[fdtap_filters, int32]
- ev_id int32
- ev_q ptr[in, event_queue]
- data const[0, intptr]
-}
-
-fdtap_commands = FDTAP_CMD_ADD, FDTAP_CMD_REM, FDTAP_CMD_MOD
-fdtap_filters = FDTAP_FILT_READABLE, FDTAP_FILT_WRITABLE, FDTAP_FILT_WRITTEN, FDTAP_FILT_DELETED, FDTAP_FILT_ERROR, FDTAP_FILT_RENAME, FDTAP_FILT_TRUNCATE, FDTAP_FILT_ATTRIB, FDTAP_FILT_PRIORITY, FDTAP_FILT_HANGUP, FDTAP_FILT_RDHUP
-
-# TODO: do we need more precise description?
-type user_context array[int8, USER_CONTEXT_SIZE]
-
-define USER_CONTEXT_SIZE sizeof(struct user_context)
-define TERMIOS_SIZE sizeof(struct termios)
-define EVENT_MBOX_SIZE sizeof(struct event_mbox)
-define KSTAT_SIZE sizeof(struct kstat)
-
-event_type = EV_NONE, EV_PREEMPT_PENDING, EV_GANG_PREMPT_PENDING, EV_VCORE_PREEMPT, EV_GANG_RETURN, EV_USER_IPI, EV_PAGE_FAULT, EV_ALARM, EV_EVENT, EV_FREE_APPLE_PIE, EV_SYSCALL, EV_CHECK_MSGS, EV_POSIX_SIGNAL, NR_EVENT_TYPES, MAX_NR_EVENT
-
-# Akaros does not bother to define these in headers.
-define SEEK_SET 0
-define SEEK_CUR 1
-define SEEK_END 2
-
-# Can't include <ns.h> because it conflicts with other header files (how it is supposed to be used?).
-define MREPL 0x0000
-define MBEFORE 0x0001
-define MAFTER 0x0002
-define MCREATE 0x0004
-define MCACHE 0x0010
diff --git a/sys/akaros/sys_amd64.const b/sys/akaros/sys_amd64.const
deleted file mode 100644
index c101f8a9f..000000000
--- a/sys/akaros/sys_amd64.const
+++ /dev/null
@@ -1,163 +0,0 @@
-# AUTOGENERATED FILE
-AT_FDCWD = 18446744073709551516
-EVENT_MBOX_SIZE = 80
-EV_ALARM = 7
-EV_CHECK_MSGS = 11
-EV_EVENT = 8
-EV_FREE_APPLE_PIE = 9
-EV_GANG_PREMPT_PENDING = 2
-EV_GANG_RETURN = 4
-EV_NONE = 0
-EV_PAGE_FAULT = 6
-EV_POSIX_SIGNAL = 12
-EV_PREEMPT_PENDING = 1
-EV_SYSCALL = 10
-EV_USER_IPI = 5
-EV_VCORE_PREEMPT = 3
-FDTAP_CMD_ADD = 1
-FDTAP_CMD_MOD = 3
-FDTAP_CMD_REM = 2
-FDTAP_FILT_ATTRIB = 128
-FDTAP_FILT_DELETED = 8
-FDTAP_FILT_ERROR = 16
-FDTAP_FILT_HANGUP = 512
-FDTAP_FILT_PRIORITY = 256
-FDTAP_FILT_RDHUP = 1024
-FDTAP_FILT_READABLE = 1
-FDTAP_FILT_RENAME = 32
-FDTAP_FILT_TRUNCATE = 64
-FDTAP_FILT_WRITABLE = 2
-FDTAP_FILT_WRITTEN = 4
-FD_CLOEXEC = 1
-F_DUPFD = 0
-F_GETFD = 1
-F_GETFL = 3
-F_SETFD = 2
-F_SETFL = 4
-F_SYNC = 101
-KSTAT_SIZE = 120
-MAFTER = 2
-MAP_ANONYMOUS = 32
-MAP_DENYWRITE = 2048
-MAP_EXECUTABLE = 4096
-MAP_FIXED = 16
-MAP_GROWSDOWN = 256
-MAP_LOCKED = 8192
-MAP_NONBLOCK = 65536
-MAP_NORESERVE = 16384
-MAP_POPULATE = 32768
-MAP_PRIVATE = 2
-MAP_SHARED = 1
-MAP_STACK = 131072
-MAX_NR_EVENT = 50
-MBEFORE = 1
-MCACHE = 16
-MCREATE = 4
-MREPL = 0
-NR_EVENT_TYPES = 25
-O_APPEND = 1024
-O_CLOEXEC = 524288
-O_CREAT = 64
-O_DIRECTORY = 65536
-O_EXCL = 128
-O_NOCTTY = 256
-O_NOFOLLOW = 131072
-O_NONBLOCK = 2048
-O_PATH = 32768
-O_RDONLY = 1
-O_RDWR = 3
-O_REMCLO = 1048576
-O_SYNC = 4096
-O_TRUNC = 512
-O_WRONLY = 2
-PROT_EXEC = 4
-PROT_GROWSDOWN = 16777216
-PROT_GROWSUP = 33554432
-PROT_READ = 1
-PROT_WRITE = 2
-RES_CORES = 0
-SEEK_CUR = 1
-SEEK_END = 2
-SEEK_SET = 0
-SYS_abort_sysc = 31
-SYS_abort_sysc_fd = 33
-SYS_access = 108
-SYS_block = 2
-SYS_cache_invalidate = 3
-SYS_change_to_m = 29
-SYS_change_vcore = 14
-SYS_chdir = 116
-SYS_close = 103
-SYS_dup_fds_to = 125
-SYS_exec = 16
-SYS_fchdir = 124
-SYS_fcntl = 107
-SYS_fd2path = 149
-SYS_fork = 15
-SYS_fstat = 104
-SYS_fwstat = 122
-SYS_getcwd = 117
-SYS_getpcoreid = 7
-SYS_getvcoreid = 8
-SYS_halt_core = 27
-SYS_link = 112
-SYS_llseek = 111
-SYS_lstat = 106
-SYS_mkdir = 118
-SYS_mmap = 18
-SYS_mprotect = 20
-SYS_munmap = 19
-SYS_nanosleep = 36
-SYS_nbind = 145
-SYS_nmount = 146
-SYS_notify = 25
-SYS_nunmount = 147
-SYS_openat = 102
-SYS_poke_ksched = 30
-SYS_pop_ctx = 37
-SYS_populate_va = 32
-SYS_proc_create = 10
-SYS_proc_destroy = 12
-SYS_proc_run = 11
-SYS_proc_yield = 13
-SYS_provision = 24
-SYS_read = 100
-SYS_readlink = 115
-SYS_rename = 123
-SYS_rmdir = 119
-SYS_self_notify = 26
-SYS_send_event = 39
-SYS_stat = 105
-SYS_symlink = 114
-SYS_tap_fds = 126
-SYS_tcgetattr = 141
-SYS_umask = 109
-SYS_unlink = 113
-SYS_vc_entry = 35
-SYS_vmm_add_gpcs = 34
-SYS_vmm_ctl = 40
-SYS_vmm_poke_guest = 38
-SYS_waitpid = 17
-SYS_write = 101
-SYS_wstat = 121
-S_IRGRP = 32
-S_IROTH = 4
-S_IRUSR = 256
-S_IWGRP = 16
-S_IWOTH = 2
-S_IWUSR = 128
-S_IXGRP = 8
-S_IXOTH = 1
-S_IXUSR = 64
-TERMIOS_SIZE = 60
-USER_CONTEXT_SIZE = 216
-VMM_CTL_EXIT_HALT = 1
-VMM_CTL_EXIT_MWAIT = 4
-VMM_CTL_EXIT_PAUSE = 2
-VMM_CTL_FL_KERN_PRINTC = 1
-VMM_CTL_GET_EXITS = 1
-VMM_CTL_GET_FLAGS = 3
-VMM_CTL_SET_EXITS = 2
-VMM_CTL_SET_FLAGS = 4
-WNOHANG = 1
-WUNTRACED = 2
diff --git a/sys/akaros/test/openat b/sys/akaros/test/openat
deleted file mode 100644
index 2dee92c74..000000000
--- a/sys/akaros/test/openat
+++ /dev/null
@@ -1,3 +0,0 @@
-r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x7, 0x43, 0x1a4)
-write(r0, &(0x7f0000001000)="112233", 0x3)
-close(r0)
diff --git a/sys/sys.go b/sys/sys.go
index 9400df2f8..054358b04 100644
--- a/sys/sys.go
+++ b/sys/sys.go
@@ -5,7 +5,6 @@ package sys
import (
// Import all targets, so that users only need to import sys.
- _ "github.com/google/syzkaller/sys/akaros/gen"
_ "github.com/google/syzkaller/sys/darwin/gen"
_ "github.com/google/syzkaller/sys/freebsd/gen"
_ "github.com/google/syzkaller/sys/fuchsia/gen"
diff --git a/sys/syz-extract/akaros.go b/sys/syz-extract/akaros.go
deleted file mode 100644
index 2c6bee2d1..000000000
--- a/sys/syz-extract/akaros.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package main
-
-import (
- "path/filepath"
- "strings"
-
- "github.com/google/syzkaller/pkg/compiler"
-)
-
-type akaros struct{}
-
-func (*akaros) prepare(sourcedir string, build bool, arches []*Arch) error {
- return nil
-}
-
-func (*akaros) prepareArch(arch *Arch) error {
- return nil
-}
-
-func (*akaros) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]uint64, map[string]bool, error) {
- dir := arch.sourceDir
- args := []string{
- "-fmessage-length=0",
- "-D__KERNEL__",
- "-DROS_KERNEL",
- "-I", filepath.Join(dir, "kern", "include"),
- "-I", filepath.Join(dir, "user", "parlib", "include"),
- }
- for _, incdir := range info.Incdirs {
- args = append(args, "-I"+filepath.Join(dir, incdir))
- }
- if arch.includeDirs != "" {
- for _, dir := range strings.Split(arch.includeDirs, ",") {
- args = append(args, "-I"+dir)
- }
- }
- params := &extractParams{
- DeclarePrintf: true,
- TargetEndian: arch.target.HostEndian,
- }
- return extract(info, "gcc", args, params)
-}
diff --git a/sys/syz-extract/extract.go b/sys/syz-extract/extract.go
index e391a6654..c0f61c793 100644
--- a/sys/syz-extract/extract.go
+++ b/sys/syz-extract/extract.go
@@ -57,7 +57,6 @@ type Extractor interface {
}
var extractors = map[string]Extractor{
- targets.Akaros: new(akaros),
targets.Linux: new(linux),
targets.FreeBSD: new(freebsd),
targets.Darwin: new(darwin),
diff --git a/sys/targets/targets.go b/sys/targets/targets.go
index d7488fcb5..02a26028b 100644
--- a/sys/targets/targets.go
+++ b/sys/targets/targets.go
@@ -123,7 +123,6 @@ type Timeouts struct {
}
const (
- Akaros = "akaros"
FreeBSD = "freebsd"
Darwin = "darwin"
Fuchsia = "fuchsia"
@@ -479,19 +478,6 @@ var List = map[string]map[string]*Target{
LittleEndian: true,
},
},
- Akaros: {
- AMD64: {
- PtrSize: 8,
- PageSize: 4 << 10,
- LittleEndian: true,
- KernelHeaderArch: "x86",
- NeedSyscallDefine: dontNeedSyscallDefine,
- CCompiler: sourceDirVar + "/toolchain/x86_64-ucb-akaros-gcc/bin/x86_64-ucb-akaros-g++",
- CFlags: []string{
- "-static",
- },
- },
- },
Trusty: {
ARM: {
PtrSize: 4,
@@ -589,15 +575,6 @@ var oses = map[string]osCommon{
ExeExtension: ".exe",
KernelObject: "vmlinux",
},
- Akaros: {
- BuildOS: Linux,
- SyscallNumbers: true,
- SyscallPrefix: "SYS_",
- ExecutorUsesShmem: false,
- ExecutorUsesForkServer: true,
- HostFuzzer: true,
- KernelObject: "akaros-kernel-64b",
- },
Trusty: {
SyscallNumbers: true,
Int64SyscallArgs: true,
diff --git a/tools/docker/env/Dockerfile b/tools/docker/env/Dockerfile
index e9a1f0dcd..7a27dd40e 100644
--- a/tools/docker/env/Dockerfile
+++ b/tools/docker/env/Dockerfile
@@ -48,7 +48,6 @@ RUN sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/b
# Install OS toolchains from pre-built archives.
# These archives were created with:
-# tar -cz --owner=0 --group=0 --mode=go=u -f akaros-toolchain.tar.gz akaros/toolchain
# tar -cz --owner=0 --group=0 --mode=go=u -f netbsd-toolchain.tar.gz netbsd/tools netbsd/dest
# tar -cz --owner=0 --group=0 --mode=go=u -f fuchsia-toolchain.tar.gz fuchsia/prebuilt/third_party/clang \
# fuchsia/zircon/system/ulib fuchsia/src/lib/ddk fuchsia/out/x64/fidling/gen \
diff --git a/tools/syz-stress/stress.go b/tools/syz-stress/stress.go
index 26d17844b..853021afb 100644
--- a/tools/syz-stress/stress.go
+++ b/tools/syz-stress/stress.go
@@ -181,15 +181,6 @@ func createIPCConfig(target *prog.Target, features *host.Features, featuresFlags
}
func buildCallList(target *prog.Target, enabled []string) map[*prog.Syscall]bool {
- if *flagOS != runtime.GOOS {
- // This is currently used on akaros, where syz-stress runs on host.
- calls := make(map[*prog.Syscall]bool)
- for _, c := range target.Syscalls {
- calls[c] = true
- }
- return calls
- }
-
enabledSyscalls := make(map[*prog.Syscall]bool)
if len(enabled) != 0 {
syscallsIDs, err := mgrconfig.ParseEnabledSyscalls(target, enabled, nil)
diff --git a/vm/qemu/qemu.go b/vm/qemu/qemu.go
index a64aabbe2..da851f863 100644
--- a/vm/qemu/qemu.go
+++ b/vm/qemu/qemu.go
@@ -255,12 +255,6 @@ var archConfigs = map[string]*archConfig{
"kernel.lockup-detector.heartbeat-age-fatal-threshold-ms=300000",
},
},
- "akaros/amd64": {
- Qemu: "qemu-system-x86_64",
- QemuArgs: "-enable-kvm -cpu host,migratable=off",
- NetDev: "e1000",
- RngDev: "virtio-rng-pci",
- },
}
func ctor(env *vmimpl.Env) (vmimpl.Pool, error) {
@@ -657,7 +651,7 @@ func (inst *instance) Run(timeout time.Duration, stop <-chan bool, command strin
args := strings.Split(command, " ")
if bin := filepath.Base(args[0]); inst.target.HostFuzzer &&
(bin == "syz-fuzzer" || bin == "syz-execprog") {
- // Weird mode for fuchsia and akaros.
+ // Weird mode for Fuchsia.
// Fuzzer and execprog are on host (we did not copy them), so we will run them as is,
// but we will also wrap executor with ssh invocation.
for i, arg := range args {