aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/subsystem
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* pkg/subsystem: remove unneeded paths from matching rulesAleksandr Nogikh2023-02-102-0/+24
| | | | | We don't really care about Documentation/ and similar folders. Exclude such path matching rules after parsing MAINTAINERS.
* pkg/subsystem: extract subsystems from a crash listAleksandr Nogikh2023-02-104-16/+218
| | | | | | | | For now, let's use a straightforward approach: 1) Extract all subsystems for each guilty path and syz reproducer. 2) If there are both parents and children in the list, remove parents. 3) Count the remaining subsystems. 4) Pick the ones that appear most often.
* pkg/subsystem: add the basic caller-facing interfaceAleksandr Nogikh2023-02-103-0/+149
| | | | | | Users of the pkg/subsystem are only interested in 1) Fetching the list of subsystems for a given OS. 2) Matching a crash against the extracted set of subsystems.
* pkg/subsystem/linux: determine parent-child relationsAleksandr Nogikh2023-02-105-10/+248
| | | | | | | | | For that, extract a coincidence count matrix from a path coverage, then apply the following rule. Subsystem A is a child of B if both hold true: 1) More than 2/3 of paths that relate to A also relate to B. 2) B covers more directory tree entities than A.
* pkg/subsystem/linux: keep one list for list-merged groupsAleksandr Nogikh2023-02-102-9/+13
| | | | Otherwise we can get too many mailing lists at the same time.
* pkg/subsystem/match: add coincidence matrixAleksandr Nogikh2023-02-104-0/+212
| | | | | | | We'll need it for determining overlapping subsystems and for the inferece of parent-child relationships. Add the code to calculate a coincidence matrix from a filesystem.
* pkg/subsystem/linux: test path rules of subsystemsAleksandr Nogikh2023-02-101-0/+62
| | | | | Now that we have subsystem names, it's easy to test whether syzkaller extract and groups the path matching rules correctly.
* pkg/subsystem/linux: add custom call listsAleksandr Nogikh2023-02-103-1/+82
| | | | This information will let us extract subsystems from reproducers.
* pkg/subsystem/linux: extract names for subsystemsAleksandr Nogikh2023-02-104-0/+226
| | | | | | | | | Extract the short subsystem name from the mailing list email. Stip the common prefixes and suffixes and make sure there are no duplicates. As a fallback, assign the whole list email address as a subsystem name.
* pkg/subsystem/linux: add the basic subsystem extraction codeAleksandr Nogikh2023-02-104-1/+278
|
* pkg/subsystem/linux: convert MAINTAINERS patters to regexpsAleksandr Nogikh2023-02-102-0/+202
| | | | Take care of the corner cases and add extensive tests.
* pkg/subsystem: add the path matching codeAleksandr Nogikh2023-02-103-0/+142
| | | | | Additionally, optimize the matching by joining the rules without exclusion (that is, almost all MAINTAINER records).
* pkg/subsystem: add the MAINTAINERS file parsing codeAleksandr Nogikh2023-02-103-0/+329
|
* pkg/subsystem: move the exiting code to /legacyAleksandr Nogikh2023-02-103-3/+3
| | | | It will help gradually switch to the new code, once it's fully ready.
* pkg/subsystem: add the fat maintainer (#3601)Aleksandr Nogikh2022-12-271-0/+1
|
* pkg/subsystem: extract filesystems from guilty pathAleksandr Nogikh2022-12-162-25/+40
| | | | | As we can easily do the subsystem <-> path mapping, let's also use it for determining the actual involved filesystem.
* pkg/subsystem: store paths for subsystems and cc for pathsAleksandr Nogikh2022-12-162-1/+57
| | | | This will help route filesystem bugs to the right people.
* pkg/subsystem: extract subsystems from syz_mount_image$ callsAleksandr Nogikh2022-12-162-0/+94
| | | | | Dump the mapping between the currently available pseudo syscalls and the corresponding subsystems.
* dashboard: extract subsystems for saved crashesAleksandr Nogikh2022-12-162-11/+25
| | | | | | | Invoke the extractor code at pkg/subsystem and store the result into the Bug entity. Augment the Maintainers content by per-subsystem emails.
* pkg/subsystem: add basic subsystem extraction codeAleksandr Nogikh2022-12-162-0/+120
For now, recognize just the vfs subsystem and support per-repro-call subsystem inference.