On 6/14/21 10:08 PM, David Gibson wrote:
On Mon, Jun 14, 2021 at 01:32:11PM -0400, John Snow wrote:
Hi, I'd like to work out our collective preferences for how we triage issues
that concern the execution environment; namely the arch (now "target", os,
and accel labels.
[...]
In general, what's the convention when a bug is independent of (say)
the accel: does it get none of the accel tags, or all of them?
Likewise with OS and the other categories.
So far, I have been labeling bugs reported against a specific
accel/guest/host combination with those bugs. It doesn't necessarily
mean they are bugs *in* those components. They might be, they might not be.
Generally I have been treating these labels as descriptors of the
problem environment and not necessarily descriptors of the root cause.
At a glance I often have no clue what the root cause might be. In just a
few minutes, translating some of the details of the environment into
labels in the hopes that it floats by someone with more knowledge in one
or more of those areas is the best I can do.
This *does* mean that for TCG developers, there's a high ambiguity here
because "accel: TCG" && "target: i386" applies to a pretty broad
category of reports, not all of them necessarily bugs primarily
suspected to be *about* TCG. Maybe, maybe not.
Phil sometimes removes these labels once it becomes apparent to him that
the bug doesn't actually involve the system mentioned. Maybe it was
filed under i386 but impacts all architectures, so we'd remove that label.
(Open to suggestions...)
# Accel
Currently "accel: XXX", for HAX, HVF, KVM, TCG, WHPX and Xen.
https://gitlab.com/qemu-project/qemu/-/labels?subscribed=&search=accel%3A
[...]
# OS
Currently "os: XXX" for BSD, Linux, Windows, and macOS.
https://gitlab.com/qemu-project/qemu/-/labels?subscribed=&search=os%3A
Multiple OS labels can be applied to an issue.
Originally, we kept this label somewhat vague and have been using it to
identify both the host AND guest involved with an issue.
Stefan Weil has requested that we refactor this to separate the concerns so
that he can identify issues where Windows is the host without wading through
numerous reports where Windows is merely the guest. Reasonable request.
Shall we split it into "host: XXX" and "guest: XXX" for {BSD, Linux,
Windows, macOS}?
I think that would be a good idea. Except maybe "host-os" and
"guest-os", because "host" in particular is ambiguous with host
architecture. (not relevant that often, but sometimes).
Easy enough.
# arch/target
Currently "target: XXX" for alpha, arm, avr, cris, hexagon, hppa, i386,
m68k, microblaze, mips, nios2, openrisc, ppc, riscv, rx, s390x, sh4, sparc,
tricore, xtensa.
https://gitlab.com/qemu-project/qemu/-/labels?subscribed=&search=target%3A
The names map 1:1 to the directories in target/.
The names in [square brackets] in the label descriptions correspond 1:1 with
the SysEmuTarget QAPI enum defined in qapi/machine.json.
Multiple target labels can be applied to an issue. Originally, this was
named "arch", so this was to allow multiple architectures to be specified to
cover the host/guest environment. If we disentangle this, we may still want
to allow multiple labels to cover bugs that might affect multiple targets,
though that case might be rare.
Agreed. I think mixing host and guest properties together is a bad
idea. These are relatively rarely related to each other.
Bugs affecting multiple, but not all targets are uncommon, but not
super rare (mostly due to chunks of code shared across several target
archs, like ACPI and device tree).
Right. It's not super common, but I see no real reason to *enforce* that
a bug only ever has zero-or-one target label.
We probably want to keep a set of labels that apply to the host
architecture. These are useful for build failures, environment setup issues,
or just documenting the exact environment on which an issue was observed.
Ah.. that's another general question. Are the labels supposed to
document where the problem has been definitely observed, or a best
estimate at where it will appear. It would be very common for a bug
to be observed initially on only one, but quickly turn out to be
independent of host and/or target arch.
This is a triage problem. In an ideal world, as I see it:
1. Maintainers (in general) look at the queue of "open" bugs that have
not yet been marked as triaged/confirmed/in-progress/closed/assigned/etc
2. They spend no more than a few minutes assessing the issue and
assigning some fairly broad topic labels. Ideally, at least one of these
labels will be one that a Maintainer who knows more about that area
actively receives reports for.
3. Specific subsystem maintainers watching certain labels re-label bugs
that catch their eye with far more explicit labels as they desire.
e.g. I kick a lot of things into broad labels like "Graphics", "Audio",
"Storage". At a glance, and quickly, it can be hard to get more specific
than that.
However, as an example, maybe I would glance at the Storage tag and
occasionally add a label like 'block:ATA' to pull things into a queue I
would watch more closely.
So for right now, these labels under question (accel, target, os) don't
differentiate between "observed on" and "have been definitely identified
as a problem with". They're more like hints that might wind up being wrong.
Is that the wrong idea? Maybe!
# Current Plan
- Add "accel: NVVM" label
- Don't add "accel: qtest".
- Add "host: {Windows, BSD, Linux, macOS}" and "guest: {Windows, BSD, Linux,
macOS}" labels. >
Again, I suggest "host-os" and "guest-os"
ACK
[...]
Less sure:
- Create host-arch: XXX labels (Unsure of name, which platforms are
important to track? see above.)
Maybe leave and see if looks like it would be useful?
At a glance from other feedback, that looks like the likely route. Just
kill it off and see if anyone wants it badly enough to bring it back.
--js