Commit Graph

4308 Commits

Author SHA1 Message Date
Paul Chaignon
713f727d98 prog, pkg/compiler: alignment for integer ranges
Enables the syntax intN[start:end, alignment] for integer ranges.  For
instance, int32[0:10, 2] represents even 32-bit numbers between 0 and 10
included.  With this change, two NEED tags in syscall descriptions can be
addressed.

Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
ced0f73a67 pkg/compiler: check first int arg is range
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
9113054e42 sys/freebsd: fix int should be const
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
618d98cd48 sys/linux: fix int should be const in InfiniBand description 2019-10-25 18:16:59 +02:00
Dmitry Vyukov
018e59bad0 dashboard/app: add link to bug to reproducers
As requested by users.
Fixes #1396
2019-10-25 18:02:24 +02:00
Dmitry Vyukov
c2e837da36 dashboard/app: flexible rules for bug obsoleting
Implement logic described in #1054:
 - close bugs that happened a lot and then stopped faster
 - close bugs in non-final reporting with different period
 - allow closing bugs that happened only on 1 manager with different period

Fixes #1054
2019-10-25 15:56:00 +02:00
Dmitry Vyukov
c401a48c99 sys/linux: add ioctl_ns 2019-10-25 13:41:12 +02:00
Dmitry Vyukov
2d4fab5ed1 dashboard/app: reduce auto-closing timeout to 120 days
See #1054

First simple step.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
ffff482138 dashboard/app: don't log user errors in checkCrashTextAccess too
This pollutes error logs too.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
e1b158574e datastore/app: switch more bug queries to paged queries
Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
44e9a18ae7 dashboard/app: switch foreachBug to using cursors
Cursors seem to be more efficient than Offset-based queries:
https://cloud.google.com/datastore/docs/concepts/queries#datastore-datastore-cursor-paging-go

Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
93b35d600e dashboard/app: use paged query to load bugs on the main page
The bugs query periodically times out. Try to use a paged query.

Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
3a0514fbbf dashboard/app: remove duplicate error log
The returned error is logged by caller.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
639a1e6606 dashboard/app: don't log errors that can be caused by bad user requests 2019-10-25 13:28:42 +02:00
Jiri Pirko
04ca72cd45 sys/linux: add support for basic devlink syscalls
Add support for basic set of devlink interface syscalls

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-10-25 13:15:56 +02:00
Jiri Pirko
5b49e1f605 executor: create netdevsim device
Create testing netdevsim instance with 4 ports.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-10-25 13:15:56 +02:00
Hangbin Liu
d01bb02a96 sys/linux/socket_netlink_route_sched: update tca_polices
Update #533

This patch update tca_polices by adding new polices TCA_POLICE_RATE64
and TCA_POLICE_PEAKRATE64

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
c29eac91f1 sys/linux/socket_netlink_route_sched: add new tc actions
Update #533

This patch add new tc actions: ct, ctinfo, xt, mpls

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
4807c9ef9f sys/linux/socket_netlink_route_sched: add tc flower filter
Update #533

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
cf14803361 sys/linux/socket_netlink_route_sched: add some new classes
Update #533

In this patch I added new classes: cake, cbs, fq_codel, mq, mqprio,
multiq, netem, prio, red, sfb, sfq, skbprio, taprio, tbf, ingress,
clsact.

These classes has Qdisc_class_ops in kernel, but no netlink parameters.
So we can testing them by just calling them directly.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
40b82bef55 sys/linux/socket_netlink_route_sched: add some new qdiscs
Update #533

In this patch I added new qdiscs cake, etf, pfifo_fast, plug,
qfq, rr, skbprio, taprio, atm, drr, blackhole, clsact, ingress,
mq.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
b1f951e1e4 sys/linux/socket_netlink_route_sched: fix tcm_info structure
Update #533

Don't know why I didn't add tcm__pad in tcm_info structure
at the begining. But let's fix it now.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Hangbin Liu
910e03ca15 sys/linux/socket_netlink_route_sched: add chain actions
Update #533

Chain actions also use filter policies, so we can add them easily.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2019-10-24 09:30:50 +02:00
Dmitry Vyukov
b602d64b59 dashboard/config: disable /dev/{mem,kmem,ioport} in syzbot bits
If syzkaller gets to /dev/{mem,kmem,ioport}, it will destroy the machine.
It managed to do so with some mount's, chdir's and bogus file names.
These are not needed for fuzzing, so completely disabling them is
the simplest and the most reliable option.
2019-10-23 15:57:13 +02:00
Dmitry Vyukov
d894f260cc pkg/report: better diffirentiate task hung reports (2)
Add file missed in the previous commit.
2019-10-23 10:38:37 +02:00
Paul Chaignon
55afb04f04 pkg/ast: unexport Node.Walk()
Other packages should use ast.Recursive and ast.PostRecursive to ensure
the root node is visited as well.

Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-23 10:22:35 +02:00
Paul Chaignon
d3cea9507f pkg/compiler: fix root node not visited in typedef checks
Without this fix, the compiler throws an error 'template argument BASE is
not used' for the following typedef.

  type templ1[BASE] BASE
  foo(a ptr[in, templ1[int64]])

Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-23 10:22:35 +02:00
Dmitry Vyukov
bb6c338b9e pkg/report: better diffirentiate task hung reports
A number of hangs happen when trying to cancel tasks in different subsystems.
2019-10-23 10:13:30 +02:00
Andrey Konovalov
a970258ea5 dashboard/config: better extract usb configs
When generating a USB config, disable USB symbols that are disabled in the
base config, as they might have been enabled when some of the dependecies
got enabled.
2019-10-23 10:13:19 +02:00
Anton Lindqvist
d0686497a9 pkg/report: normalize pool cpu free list modified reports on OpenBSD (#1474) 2019-10-22 15:06:11 -07:00
Marco Elver
5681358a2a syz-fuzzer, executor: Add support for blacklisting data race frames
This adds support to add frames that have already been in data races, to
the KCSAN report blacklist.
2019-10-22 17:48:18 +02:00
Dmitry Vyukov
4ee855e7ec tools/syz-testbuild: fix too long line 2019-10-22 15:58:22 +02:00
Dmitry Vyukov
788abb174f pkg/vcs: detect old git binary that can't do bisection 2019-10-22 15:57:26 +02:00
Dmitry Vyukov
084e388155 pkg/vcs: make EnvForCommit return full compiler path
All callers of EnvForCommit need the compiler path,
so move this logic into EnvForCommit to avoid duplication.
Also simplifies tests because test impl can now return
an empty compiler (which should be unused).
2019-10-22 15:41:03 +02:00
Zubin Mithra
a2bdbd8c37 pkg/bisect: add initial testing support for cause bisection
(note: incomplete change)

Refactor existing code as follows:
* Move reusable test utility functions from git_repo_test.go to
pkg/vcs/test_util.go and make them exported.
* Split Run() into Run()+runImpl().
* Change type of bisect.go:env.inst to `instance.BuilderTester`.
Change usage inside syz-testbuild/testbuild.go accordingly.
* Move most of linux.PreviousReleaseTags() into vcs/git.go as
git.previousReleaseTags().
* Allow build.CompilerIdentity to be mocked.

Introduce the following changes:
* instance.BuilderTester is an interface with methods
	BuildSyzkaller()
	BuildKernel()
	Test()
NewEnv() now returns this interface.
* type testEnv implements instance.BuilderTester.
* type testBuilder implements builder interface. Add a entry into table
inside pkg/build/build.go:getBuilder() to return testBuilder object.
2019-10-22 10:09:57 +02:00
Dmitry Vyukov
37dc03de04 pkg/report: improve parsing of task hung reports
The problem with task hung reports is that they manifest at random victim stacks,
rather at the root cause stack. E.g. if there is something wrong with RCU subsystem,
we are getting hangs all over the kernel on all synchronize_* calls.
So before resotring to the common logic of skipping some common frames,
we look for 2 common buckets: hangs on synchronize_rcu and hangs on rtnl_lock
and group these together.
2019-10-22 09:52:16 +02:00
Andrew Turner
c59a7cd871 tools: Run 2to3 on check_links.py
The python binary may not be Python 2. Support Python 3 by running the
2to3 conversion tool on it.

This has been tested with both Python 2 and 3.
2019-10-21 15:56:27 +02:00
Andrew Turner
061a8b8a29 docs: Remove an invalid ascii character
A python3 version of check_links.py raises an exception reading this.
Fix by removing the invalid ascii character.
2019-10-21 15:56:27 +02:00
Andrey Konovalov
6901a56e00 executor/usb: enable endpoints on SET_INTERFACE
This commit changes syz_usb_control_io to enable the relevant endpoints
for the interface being set via a SET_INTERFACE request.
2019-10-21 15:56:03 +02:00
Andrew Turner
b24d2b8a21 vm: Get debug information when FreeBSD on panics (#1470)
The FreeBSD kernel debugger can provide more information when the
kernel panics. Add support to bhybe and gce to print this information.
2019-10-21 14:25:55 +02:00
Andrey Konovalov
8c88c9c1c9 sys/linux/vusb.txt: add some TODOs 2019-10-16 18:28:52 +02:00
Dmitry Vyukov
d4ea592f78 sys/linux: add some new flags
Add a few new assorted things, some flags, etc.
2019-10-15 14:13:41 +02:00
Dmitry Vyukov
2b7a4c5e69 sys/linux: add exfat descriptions 2019-10-15 13:50:06 +02:00
Dmitry Vyukov
6078bcf4f9 sys/linux: add watch_queue descriptions 2019-10-15 13:50:06 +02:00
Dmitry Vyukov
ef4a2149fe dashboard/config: update linux/kasan config
- update to latest linux-next
- disable /dev/{mem,kmem,ioport}
- enable lockdown (but it's not actually turned on)
- enable /dev/device_notify
- enable exfat
- enable virtio_fs
- enable few other things that look reachable in VMs

Fixes #1436
2019-10-15 13:50:06 +02:00
Andrey Konovalov
323ca50263 sys/linux/vusb.txt: describe UAC1 device class 2019-10-15 13:08:30 +02:00
Zwb
b5268b89c2 tools/create-image.sh: add a new option seek
The usage of current create-image.sh:

    ```
    ./create-image.sh -d=stretch -f=minimal --add-perf

    The options are in the following:

    -d, --distribution         Set on which debian distribution to create
    -f, --feature              Check what packages to install in the image, options are minimal, full
    -s, --seek                 Image size (MB), default 2048 (2G)
    -p, --add-perf             Add perf support with this option enabled

    The default image size may too small (2G) in some debugging scenarios, so change it to configurable.
2019-10-15 12:40:28 +02:00
Andrey Konovalov
05ad729222 dashboard/config: update USB config 2019-10-14 14:14:06 +02:00
Andrew Donnellan
a6aef847d9 pkg/report: Add ppc64le kernel paging request test case
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
2019-10-14 11:17:24 +02:00
Andrew Donnellan
d18522a287 pkg/report: Add regexes for kernel data access BUG on ppc64le
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
2019-10-14 11:17:24 +02:00