drm/i915/gvt: Add helper for tuning MMIO hash table
authorChangbin Du <changbin.du@intel.com>
Tue, 6 Jun 2017 07:56:13 +0000 (15:56 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 8 Jun 2017 05:59:20 +0000 (13:59 +0800)
We count all the tracked virtual MMIO registers, which can help us to
tune the MMIO hash table.

v2: Move num_tracked_mmio into gvt structure.

Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/gvt.h
drivers/gpu/drm/i915/gvt/handlers.c

index b9a277c726cbed40ff8a2234016c28f4a73d63ff..ffb9ebbbcf5acb40a7a18d683e840c47d2e15923 100644 (file)
@@ -215,6 +215,7 @@ struct intel_gvt_mmio {
 #define F_UNALIGN      (1 << 6)
 
        DECLARE_HASHTABLE(mmio_info_table, INTEL_GVT_MMIO_HASH_BITS);
+       unsigned int num_tracked_mmio;
 };
 
 struct intel_gvt_firmware {
index 8ba7cf5fe18511101a1917a591cf307bf800f80e..eb3dc15254047b674f36353fc66515428bdf800f 100644 (file)
@@ -124,6 +124,7 @@ static int new_mmio_info(struct intel_gvt *gvt,
                gvt->mmio.mmio_attribute[info->offset / 4] = flags;
                INIT_HLIST_NODE(&info->node);
                hash_add(gvt->mmio.mmio_info_table, &info->node, info->offset);
+               gvt->mmio.num_tracked_mmio++;
        }
        return 0;
 }
@@ -2931,6 +2932,9 @@ int intel_gvt_setup_mmio_info(struct intel_gvt *gvt)
                if (ret)
                        goto err;
        }
+
+       gvt_dbg_mmio("traced %u virtual mmio registers\n",
+                    gvt->mmio.num_tracked_mmio);
        return 0;
 err:
        intel_gvt_clean_mmio_info(gvt);