diff --git a/drivers/media/platform/msm/cvp/msm_cvp_core.c b/drivers/media/platform/msm/cvp/msm_cvp_core.c
index f970d1df4b988ebf3b0841c7df3142915f34d6e0..67f710a2a88f11d1d7773f5ba694880b83f64c97 100644
--- a/drivers/media/platform/msm/cvp/msm_cvp_core.c
+++ b/drivers/media/platform/msm/cvp/msm_cvp_core.c
@@ -196,16 +196,16 @@ int msm_cvp_private(void *cvp_inst, unsigned int cmd,
 }
 EXPORT_SYMBOL(msm_cvp_private);
 
-static bool msm_cvp_check_for_inst_overload(struct msm_cvp_core *core)
+static bool msm_cvp_check_for_inst_overload(struct msm_cvp_core *core,
+		u32 *instance_count)
 {
-	u32 instance_count = 0;
 	u32 secure_instance_count = 0;
 	struct msm_cvp_inst *inst = NULL;
 	bool overload = false;
 
 	mutex_lock(&core->lock);
 	list_for_each_entry(inst, &core->instances, list) {
-		instance_count++;
+		(*instance_count)++;
 		/* This flag is not updated yet for the current instance */
 		if (inst->flags & CVP_SECURE)
 			secure_instance_count++;
@@ -214,7 +214,7 @@ static bool msm_cvp_check_for_inst_overload(struct msm_cvp_core *core)
 
 	/* Instance count includes current instance as well. */
 
-	if ((instance_count >= core->resources.max_inst_count) ||
+	if ((*instance_count >= core->resources.max_inst_count) ||
 		(secure_instance_count >=
 			core->resources.max_secure_inst_count))
 		overload = true;
@@ -254,6 +254,7 @@ void *msm_cvp_open(int core_id, int session_type)
 	struct msm_cvp_core *core = NULL;
 	int rc = 0;
 	int i = 0;
+	u32 instance_count = 0;
 
 	if (core_id >= MSM_CVP_CORES_MAX ||
 			session_type >= MSM_CVP_MAX_DEVICES) {
@@ -269,13 +270,15 @@ void *msm_cvp_open(int core_id, int session_type)
 	}
 
 	core->resources.max_inst_count = MAX_SUPPORTED_INSTANCES;
-	if (msm_cvp_check_for_inst_overload(core)) {
+	if (msm_cvp_check_for_inst_overload(core, &instance_count)) {
 		dprintk(CVP_ERR, "Instance num reached Max, rejecting session");
 		mutex_lock(&core->lock);
 		list_for_each_entry(inst, &core->instances, list)
-			dprintk(CVP_ERR, "inst %pK, cmd %d id %d\n",
-				inst, inst->cur_cmd_type,
-				hash32_ptr(inst->session));
+			dprintk(CVP_ERR,
+			"%s inst stype %d %pK, cmd %d id %#x kref %#x\n",
+			inst->proc_name, inst->session_type, inst,
+			inst->cur_cmd_type, hash32_ptr(inst->session),
+			kref_read(&inst->kref));
 		mutex_unlock(&core->lock);
 
 		return NULL;
@@ -288,7 +291,10 @@ void *msm_cvp_open(int core_id, int session_type)
 		goto err_invalid_core;
 	}
 
-	pr_info(CVP_DBG_TAG "Opening cvp instance: %pK\n", "info", inst);
+	pr_info(CVP_DBG_TAG
+		"[%d, %d] %s Opening cvp instance: %pK type %d cnt %d\n",
+		"info", current->pid, current->tgid, current->comm, inst,
+		session_type, instance_count);
 	mutex_init(&inst->sync_lock);
 	mutex_init(&inst->lock);
 	mutex_init(&inst->fence_lock);
@@ -341,6 +347,7 @@ void *msm_cvp_open(int core_id, int session_type)
 	inst->debugfs_root =
 		msm_cvp_debugfs_init_inst(inst, core->debugfs_root);
 
+	strscpy(inst->proc_name, current->comm, 100);
 	return inst;
 fail_init:
 	_deinit_session_queue(inst);
diff --git a/drivers/media/platform/msm/cvp/msm_cvp_internal.h b/drivers/media/platform/msm/cvp/msm_cvp_internal.h
index 0a27a827be3e9bc7085bc0499eaabe4a699f5733..ef163d3e0b312f2b29c7787e80bd965d2be2c3f1 100644
--- a/drivers/media/platform/msm/cvp/msm_cvp_internal.h
+++ b/drivers/media/platform/msm/cvp/msm_cvp_internal.h
@@ -337,6 +337,7 @@ struct msm_cvp_inst {
 	struct cvp_session_prop prop;
 	u32 cur_cmd_type;
 	struct mutex fence_lock;
+	char proc_name[100];
 };
 
 struct msm_cvp_fence_thread_data {