aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/subsystem
Commit message (Collapse)AuthorAgeFilesLines
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2026-01-202-2672/+3475
|
* pkg/subsystem: adjust the wildcard matching rulesAleksandr Nogikh2026-01-202-4/+6
| | | | | | | | Contrary to the description on top of MAINTAINERS, many F: records that point to folders actually don't end with / or /*. The get_maintainer.pl script already tolerates this, so let's do the same.
* pkg/subsystem: export debug infoAleksandr Nogikh2026-01-207-35/+83
| | | | | | | | Make it possible to print more debugging information when (re)generating a subsystem list. Include parent inference details to the source code itself and add a -debug flag to list the source files assigned to each subsystem.
* all: use any instead of interface{}Dmitry Vyukov2025-12-221-1/+1
| | | | Any is the preferred over interface{} now in Go.
* all: simplify subsystem revision updatesAleksandr Nogikh2025-07-234-13/+30
| | | | | | Don't specify the subsystem revision in the dashboard config and instead let it be nested in the registered subsystems. This reduces the amount of the manual work needed to switch syzbot to a newer subsystem list.
* pkg/subsystem/linux: add a comedi subsystemAleksandr Nogikh2025-07-212-2/+13
| | | | | We have quite a few comedi bugs now, let's not keep them all in "kernel".
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2025-07-211-25/+36
| | | | Regenerate the list using v6.16-rc7.
* pkg/subsystem: regenerate Linux subsystems on v6.16-rc1Aleksandr Nogikh2025-06-133-154/+261
|
* pkg/subsystem: fix dangling entries in the rules listAleksandr Nogikh2025-05-214-26/+61
| | | | | | | | | There was a mistake in the Linux subsystem generation rules that led to the exclusion of exfat-related syz_mount_image calls from the resulting subsystem descriptions. Verify the rules before applying them. Fix other problems found by the check.
* tools/syz-query-subsystems: introduce the kvm-x86 subsystemAlexander Potapenko2025-05-152-16/+27
| | | | | | | | | Split off kvm-x86 from kvm for better coverage accounting. Both subsystems will still share the CC lists, so bugs in x86 code won't be emailed twice. While at this, also fix the tool name in the generated comment and regenerate pkg/subsystem/lists/linux.go on v6.14-rc7.
* pkg/subsystem: add the smc subsystemAleksandr Nogikh2025-03-232-4/+14
| | | | | It doesn't have its own mailing list, so needs to be defined manually. See #5838.
* pkg/subsystem/lists: regenerate Linux subsystemsAleksandr Nogikh2025-03-231-25/+29
| | | | Based on v6.14-rc7.
* pkg/subsystem: regenerate Linux subsystems on v6.14-rc1Aleksandr Nogikh2025-02-142-229/+255
|
* pkg/subsystem: fix a bug in PathMatcherAleksandr Nogikh2025-02-142-4/+10
| | | | | | It used to be the case that, if a subsystem matches several rule conditions, it could be returned several times. This has led to incorrect parent inference results.
* executor: arm64: sys/linux: implement syz_kvm_setup_syzos_vm and ↵Alexander Potapenko2024-09-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | | syz_kvm_add_vcpu The old syz_kvm_setup_cpu() API mixed together VM and VCPU setup, making it harder to create and fuzz two VCPUs in the same VM. Introduce two new pseudo-syscalls, syz_kvm_setup_syzos_vm() and syz_kvm_add_vcpu(), that will simplify this task. syz_kvm_setup_syzos_vm() takes a VM file descriptor, performs VM setup (allocates guest memory and installs SYZOS code into it) and returns a new kvm_syz_vm resource, which is in fact a pointer to `struct kvm_syz_vm` encapsulating VM-specific data in the C code. syz_kvm_add_vcpu() takes the VM ID denoted by kvm_syz_vm and creates a new VCPU within that VM with a proper CPU number. It then stores the fuzzer-supplied SYZOS API sequence into the corresponding part (indexed by CPU number) of the VM memory slot, and sets up the CPU registers to interpret that sequence. The new pseudo-syscall let the fuzzer create independent CPUs that run different code sequences without interfering with each other.
* pkg/subsystem: add syz_kvm_vgic_v3_setup to the rulesAlexander Potapenko2024-09-032-2/+2
|
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2024-08-271-76/+176
|
* pkg/subsystem/linux: add one more email->name exceptionAleksandr Nogikh2024-08-271-0/+1
|
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2024-05-071-4/+5
| | | | Use v6.9-rc7.
* pkg/subsystem: don't Cc some parent subsystemsAleksandr Nogikh2024-05-074-6/+20
| | | | | | Our fs is more generic than it was defined in MAINTAINERS. Let's not spam its mailing lists with bugs from individual filesystem implementations.
* pkg/subsystem/linux: recognize bcachefs mountsAleksandr Nogikh2024-05-071-0/+1
| | | | This must be a strong signal to assign a bcachefs subsystem.
* pkg/subsystem/linux: update to v6.9-rc2Aleksandr Nogikh2024-04-033-104/+129
|
* pkg/subsystem: make M parsing more robustAleksandr Nogikh2024-04-031-2/+6
| | | | | There are cases of very long names that make it too hard for the golang library to properly parse the address.
* pkg/subsystem: display correct lines for parsing errorsAleksandr Nogikh2024-04-031-1/+3
| | | | We used to ignore the skipped lines.
* pkg/subsystem: regenerate subsystems listAleksandr Nogikh2024-02-013-113/+166
|
* pkg/subsystem: move wireless under netAleksandr Nogikh2023-11-226-21/+82
| | | | It will help keep more generic reports in "net".
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2023-11-223-115/+172
| | | | Adjust subsystem generation code to the latest changes.
* pkg/subsystem: remove gfs2 from name exceptionsAleksandr Nogikh2023-09-111-1/+0
| | | | The new mailing list can be parsed by the generic algorithm.
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2023-09-082-58/+113
| | | | Use the latest torvalds master.
* pkg/subsystems/linux: create a separate iomap subsystemAleksandr Nogikh2023-09-082-4/+15
| | | | See https://lore.kernel.org/all/20230908082846.GB9560@lst.de/
* pkg/subsystem: do not reuse customly grouped recordsAleksandr Nogikh2023-09-083-16/+31
| | | | | If a record was specified in a custom subsystem list, do not consider it while grouping records by mailing list.
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2023-08-082-275/+297
| | | | | Regenerate the list using v6.5-rc5. Also, rename fat -> exfat.
* pkg/subsystem: add tls email exceptionLin Ma2023-06-071-0/+1
| | | | | | | | | The current syz-query-subsystems raise below error: failed to query subsystems: failed to set names: failed to extract a name from kernel-tls-handshake@lists.linux.dev This patch adds this email to exception list to fix that. Signed-off-by: Lin Ma <linma@zju.edu.cn>
* pkg/subsystem: trace subsystem assignmentAleksandr Nogikh2023-04-281-7/+44
|
* pkg/subsystem: optionally disable monthly reportsAleksandr Nogikh2023-04-134-0/+11
| | | | | | For some subsystems (e.g. `kernel`) such reports just don't make much sense, since there are too many incorrectly classified bugs in there. Make it possible to exclude such subsystems from periodic reminders.
* pkg/subsystem: rewrite the inference logicAleksandr Nogikh2023-04-062-16/+108
| | | | | | | | | | | | | | | | | | Let's just accept that we cannot fully trust guilty paths and try to increase the weight of subsystems extracted from reproducers. Instead of taking all subsystems that have received the highest number of votes, take all which have received >= 33%. This will reduce noise and in almost all cases limit the number of assigned subsystems to 2. If there are >= 3 reproducers that point to exactly the same set of subsystems, give them a preference. But still take one subsystem from guilty paths if there's one that's mentioned >= 66% times. The numbers themselves are somewhat arbitrary, but hopefully this will improve the quality of subsystem inference. Add some more tests.
* pkg/subsystem: prioritize repro subsystems correctlyAleksandr Nogikh2023-04-062-1/+35
| | | | | | | | | | | We currently prioritize a subsystem if it's present in all reproducers and that is supported by at least one guilty path among the considered crashes. Due to a small bug in the code we only considered it to be supported if the guilty path belonged to one of parent subsystems of the one mentioned in the reproducer. It's fair to also consider full overlap between them.
* pkg/subsystem: update the bug subsystem extraction logicAleksandr Nogikh2023-04-042-13/+42
| | | | | | | There was a small bug and, as a result, subsystems from reproducers always superceded all other ones. That was not the desired side-effect. Fix the logic and add a test to linux_test.go.
* pkg/subsystem: handle syz_usb_connect$hidAleksandr Nogikh2023-04-032-3/+5
| | | | Also make the call point to the "input" subsystem.
* pkg/subsystem: add usb-specific syscallsAleksandr Nogikh2023-04-032-3/+12
| | | | | Let's consider them a strong indicator that usb subsystem is affected by a bug.
* pkg/subsystem: fix nilfs syscallsAleksandr Nogikh2023-04-032-1/+2
| | | | | Adjust the rules so that syz_mount_image$nilfs2 begins to point to nilfs.
* pkg/subsystem: recognize more maintainersAleksandr Nogikh2023-03-294-152/+239
| | | | | | | | | | | | | Earlier we only took maintainers if there was just one MAINTAINERS record, but that was a very severe limitation. Let's try a more elaborate approach. It's also not perfect, but allows us to extract many more maintainers, while keeping false positives at zero. Group raw MAINTAINER records by their T: entries. If there's just one set of T: values per group mailing list, take the intersection of M: entries from there.
* pkg/subsystem: recognize gfs2 mount calls correctlyAleksandr Nogikh2023-03-292-13/+15
| | | | Rename `cluster` to `gfs2`
* pkg/subsystem: update Linux subsystems to 6.3-rc4Aleksandr Nogikh2023-03-291-71/+93
|
* pkg/subsystem: disambiguate subsystems by reproducersAleksandr Nogikh2023-03-283-7/+69
| | | | | | | | | There are some minor subsystems (e.g. PAGE CACHE in Linux) that are parts of several big subsystems. At the same time, a reproducer can clearly disambiguate such case. If subsystems from reproducers and subsystems from guilty files intersect, only proceed with the results of the intersection.
* pkg/subsystem: take only always present calls from reprosAleksandr Nogikh2023-03-282-11/+23
| | | | | | | | | We're not yet perfect at eliminating unneeded calls from reproducers, so let's make the subsystem extraction rules stricter: only take a subsystem from the reproducer if it's present in all reproducers. Consider more crashes (7 instead of 5) to give more opportunities to drop an unneeded call.
* pkg/subsystem: regenerate subsystem list for upstream LinuxAleksandr Nogikh2023-02-241-4309/+4336
|
* tools/syz-query-subsystems: add filtering functionalityAleksandr Nogikh2023-02-242-0/+37
| | | | | | Two more flags: - filter: allows to choose only a subset of the possible subsystems. - emails: allows to force empty Lists and Maintainers.
* pkg/subsystem/linux: add more custom rulesAleksandr Nogikh2023-02-241-31/+36
| | | | Add isofs and fat. Match them with their pseudo syscalls.
* pkg/subsystem/linux: rename v9fs -> 9pAleksandr Nogikh2023-02-242-1/+1
| | | | 9p is a much more common name.