| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Rename pkg/kernel to pkg/build and prepare for multi-OS support.
|
| |
|
|
|
| |
Passing in compiler is important since 4.17
(at the very least it's noted in the config).
|
| |
|
|
|
|
|
|
|
|
|
| |
Currently kernel build failures are insanely verbose
(contain full kernel build output) and there is no
way to separate short descriptions from full output.
Make it possible.
Also try to extract failure root cause froom build log.
Use this in pkg/bisect to not pollute log on build failures.
Update #501
|
| |
|
|
|
| |
Pass target OS/arch and VM type to kernel.CreateImage.
Use nbd for gce and loop for qemu VM type.
|
| | |
|
| |
|
|
|
|
| |
loop devices are nice, but unfortunately this creates images
that does not boot on GCE. Reason is unclear.
Revert back to nbd for now.
|
| |
|
|
|
|
| |
See the added comment for motivation.
Update #501
|
| |
|
|
|
|
|
|
| |
We usually have the config in memory,
so saving it to disk is an unnecessary step.
Accept byte slice directly.
Update #501
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
loop is much more standard than nbd and does not require additional modules.
nbd broke on Debian rolling.
loop also allows parallel execution thanks to losetup -f.
Use loop instead of nbd.
Also improve cleanup logic and add one missing sudo.
Update #501
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This leads to false errors when we are switching between gcc and clang:
kernel build failed: failed to run /usr/bin/make [make bzImage -j 32 CC=/syzkaller/clang-kmsan/bin/clang]: exit status 2
arch/x86/Makefile:184: *** Compiler lacks asm-goto support.. Stop.
Fixes #568
|
| | |
|
| | |
|
| |
|
|
| |
Fix typos, non-canonical code, remove dead code, etc.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
When manager is stopped there are sometimes runaway qemu
processes still running. Set PDEATHSIG for all subprocesses.
We never need child processes outliving parents.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
On most distributions default grub target is i386-pc, which works.
However, on some default is x86_64-efi, which fails with:
grub-install: error: cannot find EFI directory.
Explicitly specify i386-pc target.
|
| |
|
|
|
|
| |
If the script is aborted at an unfortunate point, it leaves the whole system broken.
E.g. we've seen that fdisk cannot update partition table until the next reboot.
If you really need to kill it, use a different signal. But better wait.
|
| | |
|
| |
|
|
|
| |
Allow to specify per-kernel command line and sysctl values
to more closely mimic the target kernel.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we have unix permissions for new files/dirs
hardcoded throughout the code base. Some places use 0644,
some - 0640, some - 0600 and a variety of other constants.
Introduce osutil.MkdirAll/WriteFile that use the default
permissions and use them throughout the code base.
This makes permissions consistent and also allows to easily
change the permissions later if we change our minds.
Also merge pkg/fileutil into pkg/osutil as they become
dependent on each other. The line between them was poorly
defined anyway as both operate on files.
|
| |
|
|
|
|
|
|
| |
ParsePatch is used by appengine app.
Appengine apps can't depend on syscall/unsafe,
but pkg/kernel currently does.
Move patch parsing to pkg/email which does not
depend on syscall/unsafe.
|
| |
|
|
|
|
| |
Move partial config functionality into BuildWithPartConfig.
It is used only for syz-gce which will be removed soon.
Provide a better interface for new continuous build system.
|
| |
|
|
|
| |
NumCPU*2 can create excessive number of subprocesses
in the case machine is busy with other things as well.
|
| |
|
|
|
| |
- Move does not work across filesystems (i.e. tmpfs->disk)
- set proper permissions for ssh key
|
| |
|
|
|
|
|
|
|
|
| |
vm/gce differs from other VM types in that it accepts image
in a weird, GCE-specific format (namely, image named disk.raw
is put into .tar.gz file). This makes it impossible to write
generic code that creates images for any VM types.
Make vm/gce accept just image like e.g. vm/qemu
and handle own specifics internally.
|
| |
|
|
|
| |
Normally config is applied on top of defconfig+kvmconfig.
This allows to provide full config that is used unmodified.
|
| |
|
|
|
| |
gcc is not necessary available everywhere.
Skip the test instead of failing it.
|
| |
|
|
|
| |
Patch parsing is not dashboard-specific and can
be reused by other programs.
|
| | |
|
|
|
Move functionality to build kernel/image
from syz-gce to a separate package.
|