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@xxxxxxxxxxxxxxxxxxxxx > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx