On 08/03/18 17:00, Chris Wilson wrote:
Quoting Lionel Landwerlin (2018-03-08 15:42:53)
+static void
+read_gt_frequency(struct brw_context *brw,
+                  struct brw_perf_query_object *obj)
+{
+   const struct gen_device_info *devinfo = &brw->screen->devinfo;
+   uint32_t *start_reg = obj->oa.map + MI_FREQ_START_OFFSET_BYTES,
+      *end_reg = obj->oa.map + MI_FREQ_END_OFFSET_BYTES;
+
+   switch (devinfo->gen) {
+   case 7:
+   case 8:
+      obj->oa.gt_frequency[0] =
+         ((start_reg[0] & GEN6_RPSTAT1_CURR_GT_FREQ_MASK) >>
+          GEN6_RPSTAT1_CURR_GT_FREQ_SHIFT) * 50ULL;
+      obj->oa.gt_frequency[1] =
+         ((end_reg[0] & GEN6_RPSTAT1_CURR_GT_FREQ_MASK) >>
+          GEN6_RPSTAT1_CURR_GT_FREQ_SHIFT) * 50ULL;
I was just thinking this was the wrong frequency conversion for byt/bsw,
but then they don't have RPSTAT1 either. Is the OA only for big core?

I think you found a bug!

I can see in the internal documentation that CHV has RPSTAT1, except it doesn't have the fields we want.
So this needs to be dealt with/fixed.

On BXT I got sensible numbers from this register, so that leaves gen8 based small cores in the unknown...
Documentation is again unhelpful...

Thanks,

-
Lionel
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to