[Intel-gfx] Adding custom bugzilla fields
Ander Conselvan De Oliveira
conselvan2 at gmail.com
Mon Jun 29 01:50:23 PDT 2015
On Fri, 2015-06-26 at 19:05 +0200, Daniel Vetter wrote:
> On Fri, Jun 26, 2015 at 06:28:39PM +0300, Ander Conselvan De Oliveira wrote:
> > Hi all,
> >
> > I've been looking into creating custom fields in Bugzilla to help sort
> > our bugs in a more manageable way. I did some testing in a private
> > installation and came up with this proposal. In a nut shell, we would
> > add the following two fields:
> >
> > i915 platform: list of platforms affected by a bug;
> > i915 features: list of features affected by a bug.
> >
> > Both would be multiple selection fields. The accepted values would be
> > configured in the Bugzilla installation. The attached screenshots show
> > how this would look like in the bug view and bug list views.
> >
> > My expectation is that using those fields we could have a clearer view
> > of which areas and/or platforms require more attention. For example, I
> > attached a screenshot of a sample report breaking down the bugs per
> > feature and platform. That report requires Bugzilla 5.0 (which hasn't
> > been released yet) since prior versions didn't support reports with
> > multiple selection fields. However, it is also possible to script a
> > similar report, as the attached python script does. The output looks
> > something like this:
> >
> > Feature ALL ILK SNB BYT IVB HSW BDW BSW SKL
> > display - atomic 0 0 1 0 0 0 1 0 0
> > display - audio 0 0 0 0 0 0 0 0 0
> > display - DP 0 0 1 0 1 0 1 0 0
> > display - DP MST 0 0 0 0 0 0 0 0 0
> > display - DSI 0 0 0 0 0 0 0 0 0
> > display - eDP 0 0 0 0 0 0 0 0 0
> > display - fastboot 0 0 0 0 0 0 0 0 0
>
> Fastboot is very soonish no more (Maarten has patches to move it all into
> normal modeset code). I'd drop it.
>
> The other missing bit is all the plane stuff, color manager and similar.
> Otoh this is new, so not clear yet what kind of bugs will be common. Imo
> better to wait and then maybe add more categories.
>
> > display - FBC 0 0 0 0 0 0 0 0 0
> > display - HDMI 0 0 0 0 0 0 0 0 0
> > display - IPS 0 0 0 0 0 0 0 0 0
> > display - LVDS 0 0 0 0 0 0 0 0 0
> > display - PSR 0 0 0 0 0 0 0 0 0
> > display - Other 0 0 0 0 0 0 0 0 0
> > GEM - execlists 0 0 0 0 0 0 0 0 0
> > GEM - PPGTT 0 0 0 0 0 0 0 0 0
> > GEM - Other 1 0 0 0 0 0 1 0 0
>
> GEM - gpu hang
>
> blows up all the time. And we need a bucket to catch all the userspace
> hangs which are reported against the kernel.
>
> > power - RC6 0 0 0 1 0 0 0 0 0
> > power - RCS 0 0 0 0 0 0 0 0 0
>
> RPS is turbo stuff, and it's tightly coupled with rc6. Maybe instead just
>
> power - GT
>
> for all the GT related power saving features?
>
> I'd also add
>
> power - runtime PM
>
> and
>
> power - suspend/resume
>
> here. Tons of stuff blows up here.
>
> > power - Other 0 0 0 0 0 0 0 0 0
> >
> >
> > So I would like to hear what other people think about this. Specially,
> > about what should be in the features field. The values can change
> > overtime, but would be good to have a good list from the start. The
> > values above are an incomplete list I threw together while looking at
> > different open bugs.
>
> Maybe we need a bit more polish, but probably not worth it to spend too
> much time on the exact feature list. If we spot serious gaps we can always
> add more. And remove old ones which have gone out of favour
Here's what I got so far, after updating with your suggestions.
i915 platform:
ALL
SKL
BXT
BDW
BSW
HSW
IVB
BYT
SNB
ILK
I965G
I965GM
G45
GM45
PNV
G33
I945G
I945GM
I915G
I915GM
I865G
I85X
I845G
I830
i915 features:
display - atomic
display - audio
display - DP
display - DP MST
display - DSI
display - eDP
display - FBC
display - HDMI
display - IPS
display - LVDS
display - PSR
display - Other
GEM - execlists
GEM - PPGTT
GEM - GPU hang
GEM - Other
power - GT
power - runtime PM
power - suspend/resume
power - Other
> (having that script handy somewhere would be good).
It would be good to have a repository we can dump these to. Or at least
a branch in i-g-t.
Ander
> -Daniel
>
> >
> > Thanks,
> > Ander
>
>
>
>
> > import bugzilla
> > import collections
> >
> > bugzilla_url = "http://192.168.100.244/bugzilla/xmlrpc.cgi"
> >
> > closed_states = ['RESOLVED', 'VERIFIED', 'CLOSED']
> > open_states = ["REOPENED", "NEEDINFO", "NEW", "ASSIGNED"]
> >
> > def get_custom_fields_allowed_values(bz):
> > fields = ['cf_i915_platform', 'cf_i915_features']
> > r = bz._proxy.Bug.fields({'names': fields,
> > 'include_fields': ['values']})
> >
> > list_of_raw_values = [f['values'] for f in r['fields']]
> > values = [[v['name'] for v in f] for f in list_of_raw_values]
> >
> > assert len(values) == len(fields)
> > return dict(zip(fields, values))
> >
> > def get_drm_intel_bugs(bz):
> > query = bz.build_query(product="DRI", component="DRM/Intel",
> > status=open_states)
> > return bz.query(query)
> >
> > def split_bugs_per_field(bz, bugs, field):
> > split = collections.OrderedDict()
> >
> > allowed_values = get_custom_fields_allowed_values(bz)
> > for v in allowed_values[field]:
> > split[v] = []
> >
> > for bug in bugs:
> > if field in bug.__dict__:
> > for value in bug.__dict__[field]:
> > split[value].append(bug)
> >
> > return split
> >
> > def intersect_lists(list1, list2):
> > return [v for v in list1 if v in list2]
> >
> > def stringfy_list(l, spacing=5):
> > return ''.join([s.rjust(spacing) for s in map(str, l)])
> >
> > if __name__ == "__main__":
> > bz = bugzilla.Bugzilla(url=bugzilla_url)
> >
> > bugs = get_drm_intel_bugs(bz)
> >
> > per_platform = split_bugs_per_field(bz, bugs, 'cf_i915_platform')
> > per_feature = split_bugs_per_field(bz, bugs, 'cf_i915_features')
> >
> > print "Feature".ljust(20), stringfy_list(per_platform)
> >
> > for feature in per_feature:
> > common_count = []
> > for platform in per_platform:
> > common = intersect_lists(per_feature[feature],
> > per_platform[platform])
> > common_count.append(len(common))
> >
> > print feature.ljust(20), stringfy_list(common_count)
> >
>
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
More information about the Intel-gfx
mailing list