aboutsummaryrefslogtreecommitdiffstats
path: root/vm/vmimpl
Commit message (Collapse)AuthorAgeFilesLines
...
* vm/vmimpl: Don't show ktr, but uma on FreeBSDMichael Tuexen2020-05-121-1/+1
| | | | | | Right now, kernels are not build with KTR support, so don't run show ktr. Add showing information about zones like vmstat -z would show.
* vm/.../openbsd: get back traces of the first two cpus. (#1705)Greg Steuck2020-04-291-0/+4
|
* vm/vmimpl: refactor DiagnoseFree/OpenBSDDmitry Vyukov2020-03-212-4/+4
| | | | | Make signatures of these functions match vm.Diagnose. Both more flexible, less code, more reasonable.
* vm: Get debug information when FreeBSD on panics (#1470)Andrew Turner2019-10-211-0/+32
| | | | The FreeBSD kernel debugger can provide more information when the kernel panics. Add support to bhybe and gce to print this information.
* all: fix some static analysis warningsDmitry Vyukov2019-04-231-1/+1
| | | | | | Fix warnings produced by golangci-lint. Update #977
* vm/qemu: detect boot errors fasterDmitry Vyukov2019-03-171-2/+6
| | | | | | | | | Currently we try to ssh into the machine for 10 minutes even if it crashed right away. Make qemu exit on kernel panic and stop ssh'ing when qemu exits. Handling bad kernels fast is actually important for bisection. Update #501
* vm/vmimpl: don't pass ssh key twiceDmitry Vyukov2019-02-221-1/+3
|
* openbsd: remove shorten report logic (#986)Anton Lindqvist2019-02-091-1/+2
| | | | | | | | | | | A line length of 79 in the ddb output does not necessarily imply that the following line is a continuation of the current line. Since there's no way to distinguish between ordinary and continuation lines, it could end up corrupting the report by joining two lines that are disjoint[1]. Instead, disable line wrapping in ddb. If we want some kind of wrapping in the future it's easier done by pkg/report. [1] https://syzkaller.appspot.com/bug?extid=03f7377a9848d7d008c9
* openbsd: more witness handlingAnton Lindqvist2019-01-261-0/+3
| | | | | | | | | | * pkg/report: symbolize witness trace on OpenBSD * vm/vmimpl: show witness locks on panic * vm/vmimpl: show memory stats on panic * fixup! pkg/report: symbolize witness trace on OpenBSD
* vm/vmimpl: fix vet warning about unkeyed structDmitry Vyukov2019-01-251-1/+1
|
* vm/vmimpl: produce better error in WaitForSSHDmitry Vyukov2019-01-242-1/+11
| | | | | Currently we squash VerboseError which leads to too lengthy build error titles. Handle verbose error more carefully.
* vm: allow Diagnose to directly return diagnosisMichael Pratt2018-12-211-4/+7
| | | | | | Rather than writing the diagnosis to the kernel console, Diagnose can now directly return the extra debugging info, which will be appended ot the kernel console log.
* vm/gce: close old consolew in RunDmitry Vyukov2018-12-021-0/+3
| | | | Run can be executed several times on a VM.
* vm/gce: use openbsd console diagnostic code for both vmm and gceGreg Steuck2018-12-021-0/+27
| | | | | | | | * openbsd: use console diagnostic code for both vmm and gce. * gometalinter wants less indentation and more stuff in scope * Comment no longer applies
* openbsd: run on gceGreg Steuck2018-11-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * build/openbsd: minor cleanup (use tuples instead of maps) * Grammar nits in comments. * Simplify openbsd.Create, will defer when there's more than one error exit. * pkg/build: Support copying kernel into GCE image * Simple test for openbsd image copy build. * Cleanup in case something failed before. * Support multi-processor VMs on GCE. * More debug * Reformat * OpenBSD gce image needs to be raw. * GC * Force format to GNU directly on Go 1.10 or newer. * Use vmType passed as a parameter inside openbsd.go * gofmt * more fmt * Can't use GENERIC.mp just yet. * capitalize * Copyright
* syz-ci: de-hardcode list of VMs that support overcommitDmitry Vyukov2018-09-111-12/+11
| | | | | | | | We currently have this list in multiple places (somewhat diverged). Specify this "overcommit" property in VM implementations. In particular, we also want to allow overcommit for "vmm" type. Update #712
* vm/vmm: support for vmm found on OpenBSD (#678)Anton Lindqvist2018-08-181-0/+12
| | | vm/vmm: add vmm implementation found on OpenBSD
* vm/vmimpl: factor out common code for ssh args and waiting for sshDmitry Vyukov2018-07-061-0/+57
| | | | Move common code from 4 vm implementations to vmimpl.
* vm/vmimpl: add vm.Diagnose methodDmitry Vyukov2018-06-221-0/+5
| | | | | | Diagnose is called on machine hang to try to get some additional diagnostic information from it. For now it's all stubs.
* vm/adb: don't fail if port 35099 is busyDmitry Vyukov2018-06-111-0/+17
|
* all: get rid of underscores in identifiersDmitry Vyukov2018-05-079-35/+35
| | | | | | Underscores are against Go coding style. Update #538
* vm/{adb,isolated}: dudup common codeDmitry Vyukov2018-05-061-0/+44
| | | | | | Found with gometalinter/dupl. Update #538
* all: fix too long linesDmitry Vyukov2018-05-051-3/+6
| | | | | Not sure why I have not seen warnings about these lines on another machine...
* all: fix gometalinter warningsDmitry Vyukov2018-03-082-5/+5
| | | | Fix typos, non-canonical code, remove dead code, etc.
* vm/vmimpl: unbreak freebsd buildDmitry Vyukov2018-01-161-0/+12
| | | | Also add freebsd/netbsd host build to presubmit.
* vm/gce: always ignore serial relay errorsDmitry Vyukov2017-12-052-3/+16
| | | | | | | GCE serial reply seems to be buggy, we see lots of "serialport: VM disconnected" and "packet_write_wait: Connection to 1.2.3.4 port 9600: Broken pipe" errors, which do not have any explanation. Ignore all serial relay errors.
* dashboard/app: add manager monitoringDmitry Vyukov2017-12-011-0/+4
| | | | | | | | Make it possible to monitor health and operation of all managers from dashboard. 1. Notify dashboard about internal syz-ci errors (currently we don't know when/if they happen). 2. Send statistics from managers to dashboard.
* syz-ci: test images before using themDmitry Vyukov2017-11-301-0/+10
| | | | | | | Boot and minimally test images before declaring them as good and switching to using them. If image build/boot/test fails, upload report about this to dashboard.
* pkg/osutil: don't leace runaway processesDmitry Vyukov2017-11-161-1/+1
| | | | | | When manager is stopped there are sometimes runaway qemu processes still running. Set PDEATHSIG for all subprocesses. We never need child processes outliving parents.
* vm/vmimpl: add netbsd console stubDmitry Vyukov2017-10-261-0/+12
|
* pkg/kd: add KD protocol decoderDmitry Vyukov2017-09-281-0/+14
| | | | | | | | | | | | | | | | | | Very primitive decoder that only decodes amd64 exceptions. Use it in vm/gce. Now crashes contain something more or less reasonable which is caught by manager as crash: BUG: first chance exception 0x80000003 &kd.stateChange64{state:0x3030, processorLevel:0x6, processor:0x0, numProcessors:0x2, thread:0xffff9c0bd015e080, pc:0xfffff8017615c380, exception:kd.exception64{code:0x80000003, flags:0x0, record:0x0, address:0xfffff8017615c380, numParams:0x1, unused:0x0, params:[15]uint64{ 0x0, 0x40, 0xfffff801768699e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, firstChance:0x1}, report:kd.controlReport{ dr6:0xffff0ff0, dr7:0x400, eflags:0x86, numInstr:0x10, reportFlags:0x3, instr:[16]uint8{0xcc, 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0}, cs:0x10, ds:0x2b, es:0x2b, fs:0x53}}
* vm/gce: windows supportDmitry Vyukov2017-09-271-1/+2
| | | | | | | Support custom pre-created images. Support non-root user. Use dir instead of pwd on windows. Don't use sudo on windows.
* vm/vmimpl: add target OS/arch to envDmitry Vyukov2017-09-151-0/+2
| | | | Allows future VM tuning based on target OS/arch.
* all: support i386 archDmitry Vyukov2017-08-191-0/+16
| | | | Update #191
* vm/vmimpl: support linux/armDmitry Vyukov2017-08-181-0/+16
| | | | Update #324
* Add Isolated VMThomas Garnier2017-07-181-7/+13
| | | | | | | | Add a new isolated VM for machines that you cannot easily manage. It assumes the machine is only available through SSH and create a reverse proxy to ensure the machine can connect back to syz-manager. Signed-off-by: Thomas Garnier <thgarnie@google.com>
* vm/vmimpl: fix linux/ppc64le buildDmitry Vyukov2017-06-275-6/+29
|
* Restore TCGETS2 (#256)Zach Riggle2017-06-271-4/+2
|
* vm/vmimple: fix build and reformatDmitry Vyukov2017-06-262-10/+11
|
* Port console to Darwin (#253)Zach Riggle2017-06-263-3/+36
| | | | | | | | | | | | * Port console to Darwin * Get syz-executor to build correctly * Do not export unix and syscall constants * Add presubmit test * Add myself to contributors
* syz-manager/mgrconfig: move sshkey from vm config to manager configDmitry Vyukov2017-06-171-0/+1
| | | | | | | | | | | | | | Sshkey is a property of image, which is in manager config. Move sshkey to the same location as image. The motivation for the move is as follows. Continuous build produces an image and the key, both need to be passed manager instance. Continuous build system should not distinguish different VM types and mess with their configs. NOTE FOR USERS: this breaks manager configs again. Hopefully the last time for now. Docs are updated.
* vm: overhaulDmitry Vyukov2017-06-035-0/+390
VM infrastructure currently has several problems: - Config struct is complete mess with a superset of params for all VM types - verification of Config is mess spread across several places - there is no place where VM code could do global initialization like creating GCE connection, uploading GCE image to GCS, matching adb devices with consoles, etc - it hard to add private VM implementations such impl would need to add code to config package which would lead to constant merge conflicts - interface for VM implementation is mixed with interface for VM users this does not allow to provide best interface for both of them - there is no way to add common code for all VM implementations This change solves these problems by: - splitting VM interface for users (vm package) and VM interface for VM implementations (vmimpl pacakge), this in turn allows to add common code - adding Pool concept that allows to do global initialization and config checking at the right time - decoupling manager config from VM-specific config each VM type now defines own config Note: manager configs need to be changed after this change: VM-specific parts are moved to own "vm" subobject. Note: this change also drops "local" VM type. Its story was long unclear and there is now syz-stress which solves the same problem.