[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC] GitLab issue tracker labeling process: arch/target, os, and ac

From: John Snow
Subject: Re: [RFC] GitLab issue tracker labeling process: arch/target, os, and accel labels
Date: Tue, 15 Jun 2021 15:27:27 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1

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.



# OS

Currently "os: XXX" for BSD, Linux, Windows, and macOS.


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.


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"



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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]