aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/subsystem
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2023-02-231-11/+71
| | | | Use the "v6.2" release.
* pkg/subsystem/linux: add more fs subsystemsAleksandr Nogikh2023-02-231-3/+9
| | | | We've put too much under the "fs" tag.
* pkg/subsystem/linux: support custom subsystem groupingAleksandr Nogikh2023-02-235-5/+110
| | | | | | | There are cases when a subsystem doesn't have a mailing list and yet we'd prefer not to merge it with others. Let's add the ability to add custom rules that join several specified MAINTAINERS records into one Subsystem.
* pkg/subsystem/linux: add more pseudo syscallsAleksandr Nogikh2023-02-231-38/+42
|
* pkg/subsystem: query child subsystemsAleksandr Nogikh2023-02-222-2/+30
| | | | Let the Service also serve the child subsystem query requests.
* pkg/subsystem: improve naming rulesAleksandr Nogikh2023-02-173-46/+50
| | | | There were cases when subsystems did not get reasonable enough names.
* dashboard: display the subsystem listAleksandr Nogikh2023-02-171-0/+8
| | | | Take the counts from the cache, include links to the filtered bug views.
* pkg/subsystem: panic on empty service creationAleksandr Nogikh2023-02-171-0/+3
| | | | | This might happen if the user forgot to import pkg/subsystem/lists. Make the problem more visible by panicking in ServiceList().
* pkg/subsystem: remove the legacy codeAleksandr Nogikh2023-02-163-300/+0
| | | | Now it's no longer needed.
* dashboard/app: infer bug subsystems from crashesAleksandr Nogikh2023-02-162-0/+48
| | | | | | After each saved crash, invoke the new pkg/subsystem machinery to infer the subsystem list. Use 5 crashes with biggest priority to base the inference on.
* pkg/subsystem: extract emails listAleksandr Nogikh2023-02-162-0/+31
| | | | | | For the subsystem itself, we take both maintainers and lists. But from all parents we only take lists, because otherwise too many unrelated people might be notified.
* pkg/subsystem/linux: minor changes to the name extractionAleksandr Nogikh2023-02-163-23/+26
| | | | | | Add a few more prefixes to strip. Remove dots from the resulting names. Regenerate the list of Linux subsystems.
* pkg/subsystem: fix a bug in ReachableParentsAleksandr Nogikh2023-02-132-5/+27
| | | | Add a test to verify that the function works as intended.
* pkg/subsystem: restructure the packageAleksandr Nogikh2023-02-1021-223/+178
| | | | | | Remove the entity and match subpackages. Regenerate the linux.go file.
* pkg/subsystem/lists: add Linux testsAleksandr Nogikh2023-02-101-0/+72
|
* pkg/subsystem: detect loops on the goAleksandr Nogikh2023-02-103-60/+4
| | | | This lets us reduce the amount of code in parents.go.
* pkg/subsystem: extract names after all preprocessingAleksandr Nogikh2023-02-103-11/+15
| | | | | | | | In the previous steps we eliminate some of the extracted subsystems. It helps to have fewer contention while assigning the names. As a result, we need to only rely on emails during parents trasnformations.
* pkg/subsystem: skip small subsystemsAleksandr Nogikh2023-02-104-289/+60
| | | | And regenerate the Linux rules file.
* pkg/subsystem/linux: add more custom naming rulesAleksandr Nogikh2023-02-101-0/+2
| | | | | | linux-security-module is too long, we could use just lsm. Also, overlayfs had a different name, therefore we cannot infer it from the mailing list as is.
* pkg/subsystem: regenerate upstream Linux listAleksandr Nogikh2023-02-101-0/+4757
| | | | The list is based on v6.2-rc7.
* pkg/subsystem/linux: refactor groupByList and getSubsystemsAleksandr Nogikh2023-02-101-40/+15
| | | | Simplify the code by removing the unnecessary itermediate structures.
* pkg/subsystem/linux: add a list of non-subsystem emailsAleksandr Nogikh2023-02-102-0/+15
| | | | | | Despite the automatic logic we already have, there are still a few emails that slip the check. For now let's keep them in a separate array, maybe later we'll figure out a pattern.
* pkg/subsystem: push the base subsystem listAleksandr Nogikh2023-02-101-8/+13
| | | | | This list was generated using an older version of the code. It'll serve as a baseline for further changes.
* pkg/subsystem/linux: more subsystem postprocessingAleksandr Nogikh2023-02-102-5/+131
| | | | | Instead of just assigning parents, also remove small and highly overlapping subsystems.