Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| kernelbugtriage [2008/01/24 16:07] – Initial musings. RobertWatson | kernelbugtriage [2022/07/13 01:23] (current) – Add Categories: NeedsContent, Stale. Remove Author in intro, we have wiki history KubilayKocak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Kernel Bug Report Triaging Guide ====== | ====== Kernel Bug Report Triaging Guide ====== | ||
| - | Author: RobertWatson | ||
| Kernel bug reports fall into several classes: | Kernel bug reports fall into several classes: | ||
| Line 9: | Line 8: | ||
| * Hang | * Hang | ||
| * Broken functionality | * Broken functionality | ||
| + | * Performance regression/ | ||
| * Feature request | * Feature request | ||
| ===== Not a bug ===== | ===== Not a bug ===== | ||
| - | Sometimes kernel bug reports come from a user or documentation failure -- perhaps the feature doesn' | + | Sometimes kernel bug reports come from a user or documentation failure -- perhaps the feature doesn' |
| ===== Kernel panic ===== | ===== Kernel panic ===== | ||
| Line 30: | Line 30: | ||
| When diagnosing a panic, it is useful to have: | When diagnosing a panic, it is useful to have: | ||
| + | * Machine architecture and general configuration | ||
| * General information about what the machine is being used for, and what lead to the panic (if known) | * General information about what the machine is being used for, and what lead to the panic (if known) | ||
| * The panic message | * The panic message | ||
| Line 42: | Line 43: | ||
| As with kernel panics, these bugs are reported as a result of a developer anticipating a possible problem and generating debugging output that does not halt the machine (unlike a panic) when that situation occurs. | As with kernel panics, these bugs are reported as a result of a developer anticipating a possible problem and generating debugging output that does not halt the machine (unlike a panic) when that situation occurs. | ||
| + | |||
| + | Anyone running -CURRENT is expected to be able to identify and be able to deal with diagnostic warnings, but we shouldn' | ||
| ===== Hang ===== | ===== Hang ===== | ||
| Line 56: | Line 59: | ||
| ===== Broken functionality ===== | ===== Broken functionality ===== | ||
| - | This is a broad class of failures where the system doesn' | + | This is a broad class of failures where the system doesn' |
| + | |||
| + | ===== Performance regression/ | ||
| + | |||
| + | This class of reports has to do with something either performing worse over time (%%MySQL%% got twice as many transactions/ | ||
| + | |||
| + | * If a comparison between two systems is being made, is it an apples-to-apples comparison? | ||
| + | |||
| + | Are you comparing %%FreeBSD%% 6 and %%FreeBSD%% 7 on the same hardware, or different hardware? | ||
| + | |||
| + | Are you using the same version of %%MySQL%% on Linux and %%FreeBSD%%? | ||
| + | |||
| + | Could you downgrade your version of Firefox on %%FreeBSD%% 7 to match what's on %%FreeBSD%% 6 and see if behaves the same way? | ||
| + | |||
| + | * Can we narrow down what has " | ||
| + | |||
| + | Sometimes obvious changes in a configuration will have no effect on performance, | ||
| + | |||
| + | With a bit of Q&A, you might discover that they changed the controller and that it has a different firmware minor revision that fixed a bug that lead to improved performance but greater risk of data loss... | ||
| + | |||
| + | On a similar note, people often upgrade their OS and applications at the same time, and then blame either the OS or the applications for a performance loss. Perhaps it was the other one... | ||
| + | |||
| + | * Can the performance change be captured in a simple test scenario without reproducing the entire setup? | ||
| + | |||
| + | Often times performance problems are experienced in real-world installs involving complex configuration or confidential business data. If the reporter can reproduce the problem using a more simple benchmark setup and help us reproduce it the same way, we're much more likely to be able to help them with performance. | ||
| + | |||
| + | * Is the benchmark a bad or misapplied benchmark? | ||
| + | |||
| + | Often we receive reports of performance problems using a microbenchmark tool that don't actually correspond to real-world performance problems. | ||
| + | |||
| + | - bsdtar reading data from a hard disk and writing to /dev/null more slowly than gnutar. | ||
| + | |||
| + | - There is significant variation in the performance of a disk based on where on the disk you are writing. | ||
| + | |||
| + | * Is the user pointing the finger in the wrong place? | ||
| + | |||
| + | Some more examples: | ||
| + | |||
| + | - The user says "the network stack is too slow!" but really they mean " | ||
| + | |||
| + | - The user says "the file system is too slow!" but really they mean " | ||
| + | |||
| + | - The user says "ftp is really slow!" but the actually mean "The resolver library isn't handling a case right, so name lookups take one extra timeout" | ||
| ===== Feature request ===== | ===== Feature request ===== | ||
| Often reports of broken functionality are actually feature requests, whether the reporter means that or not. No general rules here, except that our bug reporting system isn't a great place to put feature requests as they tend to get forgotten about. | Often reports of broken functionality are actually feature requests, whether the reporter means that or not. No general rules here, except that our bug reporting system isn't a great place to put feature requests as they tend to get forgotten about. | ||
| + | |||
| + | (We should probably have a PR classification for ' | ||
| + | |||
| + | ===== References ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||
| + | {{tag> | ||
| + | {{tag> | ||