All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 0/2] Add virtual hardware module
@ 2021-04-04 13:10 ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:10 UTC (permalink / raw)
  To: melissa.srw
  Cc: rodrigosiqueiramelo, hamohammed.sa, daniel, airlied, dri-devel,
	linux-kernel

This patchset adds support for emulating virtual hardware with VKMS.
The virtual hardware mode can be enabled by using the following command
while loading the module:
        sudo modprobe vkms enable_virtual_hw=1

The first patch is prep work for adding virtual_hw mode and refactors
the plane composition in vkms by adding a helper function vkms_composer_common()
which can be used for both vblank mode and virtual mode.

The second patch adds virtual hardware support as a module option. The
second patch adds new atomic helper functions for the virtual mode
and modifies the existing atomic helpers for usage by the vblank mode
This gives us two sets of drm_crtc_helper_funcs struct for both modes,
making the code flow cleaner and easier to debug.

This patchset has been tested with the igt tests, kms_writeback, kms_atomic,
kms_lease, kms_flip, kms_pipe_get_crc and preserves results except for
subtests related to crc reads and skips tests that rely on vertical
blanking. This patchset must be tested after incorporating the
igt-tests patch: https://lists.freedesktop.org/archives/igt-dev/2021-February/029355.html 

Sumera Priyadarsini (2):
  drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
  drm/vkms: Add support for virtual hardware mode

 drivers/gpu/drm/vkms/vkms_composer.c | 88 +++++++++++++++++-----------
 drivers/gpu/drm/vkms/vkms_crtc.c     | 51 +++++++++++-----
 drivers/gpu/drm/vkms/vkms_drv.c      | 18 ++++--
 drivers/gpu/drm/vkms/vkms_drv.h      |  4 ++
 4 files changed, 109 insertions(+), 52 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH V3 0/2] Add virtual hardware module
@ 2021-04-04 13:10 ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:10 UTC (permalink / raw)
  To: melissa.srw
  Cc: hamohammed.sa, rodrigosiqueiramelo, airlied, linux-kernel, dri-devel

This patchset adds support for emulating virtual hardware with VKMS.
The virtual hardware mode can be enabled by using the following command
while loading the module:
        sudo modprobe vkms enable_virtual_hw=1

The first patch is prep work for adding virtual_hw mode and refactors
the plane composition in vkms by adding a helper function vkms_composer_common()
which can be used for both vblank mode and virtual mode.

The second patch adds virtual hardware support as a module option. The
second patch adds new atomic helper functions for the virtual mode
and modifies the existing atomic helpers for usage by the vblank mode
This gives us two sets of drm_crtc_helper_funcs struct for both modes,
making the code flow cleaner and easier to debug.

This patchset has been tested with the igt tests, kms_writeback, kms_atomic,
kms_lease, kms_flip, kms_pipe_get_crc and preserves results except for
subtests related to crc reads and skips tests that rely on vertical
blanking. This patchset must be tested after incorporating the
igt-tests patch: https://lists.freedesktop.org/archives/igt-dev/2021-February/029355.html 

Sumera Priyadarsini (2):
  drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
  drm/vkms: Add support for virtual hardware mode

 drivers/gpu/drm/vkms/vkms_composer.c | 88 +++++++++++++++++-----------
 drivers/gpu/drm/vkms/vkms_crtc.c     | 51 +++++++++++-----
 drivers/gpu/drm/vkms/vkms_drv.c      | 18 ++++--
 drivers/gpu/drm/vkms/vkms_drv.h      |  4 ++
 4 files changed, 109 insertions(+), 52 deletions(-)

-- 
2.25.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
  2021-04-04 13:10 ` Sumera Priyadarsini
@ 2021-04-04 13:10   ` Sumera Priyadarsini
  -1 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:10 UTC (permalink / raw)
  To: melissa.srw
  Cc: rodrigosiqueiramelo, hamohammed.sa, daniel, airlied, dri-devel,
	linux-kernel

Add two new functions vkms_composer_common() and vkms_crtc_composer().
The actual plane composition work has been moved to the helper function,
vkms_composer_common() which is called by both vkms_composer_worker()
and vkms_crtc_composer(). vkms_crtc_composer() can be used when we
implement virtual_hw mode.

Signed-off-by: Sumera Priyadarsini <sylphrenadin@gmail.com>
---

Changes in V3:
- Refactor patchset (Melissa)
Change in V2:
- Add vkms_composer_common() (Daniel)
---
 drivers/gpu/drm/vkms/vkms_composer.c | 88 +++++++++++++++++-----------
 drivers/gpu/drm/vkms/vkms_drv.h      |  3 +
 2 files changed, 58 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vkms_composer.c
index 66c6842d70db..91b33c9c2f47 100644
--- a/drivers/gpu/drm/vkms/vkms_composer.c
+++ b/drivers/gpu/drm/vkms/vkms_composer.c
@@ -169,6 +169,44 @@ static int compose_planes(void **vaddr_out,
 	return 0;
 }
 
+int vkms_composer_common(struct vkms_crtc_state *crtc_state,
+			 struct vkms_output *out, bool wb_pending, uint32_t *crc32)
+{
+	struct vkms_composer *primary_composer = NULL;
+	struct vkms_composer *cursor_composer = NULL;
+	void *vaddr_out = NULL;
+	int ret;
+
+	if (crtc_state->num_active_planes >= 1)
+		primary_composer = crtc_state->active_planes[0]->composer;
+	if (crtc_state->num_active_planes == 2)
+		cursor_composer = crtc_state->active_planes[1]->composer;
+	if (!primary_composer)
+		return -EINVAL;
+	if (wb_pending)
+		vaddr_out = crtc_state->active_writeback;
+
+	ret = compose_planes(&vaddr_out, primary_composer, cursor_composer);
+	if (ret) {
+		if (ret == -EINVAL && !wb_pending)
+			kfree(vaddr_out);
+		return -EINVAL;
+	}
+
+	*crc32 = compute_crc(vaddr_out, primary_composer);
+
+	if (wb_pending) {
+		drm_writeback_signal_completion(&out->wb_connector, 0);
+		spin_lock_irq(&out->composer_lock);
+		crtc_state->wb_pending = false;
+		spin_unlock_irq(&out->composer_lock);
+	} else {
+		kfree(vaddr_out);
+	}
+
+	return 0;
+}
+
 /**
  * vkms_composer_worker - ordered work_struct to compute CRC
  *
@@ -185,12 +223,9 @@ void vkms_composer_worker(struct work_struct *work)
 						composer_work);
 	struct drm_crtc *crtc = crtc_state->base.crtc;
 	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
-	struct vkms_composer *primary_composer = NULL;
-	struct vkms_composer *cursor_composer = NULL;
 	bool crc_pending, wb_pending;
-	void *vaddr_out = NULL;
-	u32 crc32 = 0;
 	u64 frame_start, frame_end;
+	u32 crc32 = 0;
 	int ret;
 
 	spin_lock_irq(&out->composer_lock);
@@ -210,36 +245,9 @@ void vkms_composer_worker(struct work_struct *work)
 	if (!crc_pending)
 		return;
 
-	if (crtc_state->num_active_planes >= 1)
-		primary_composer = crtc_state->active_planes[0]->composer;
-
-	if (crtc_state->num_active_planes == 2)
-		cursor_composer = crtc_state->active_planes[1]->composer;
-
-	if (!primary_composer)
-		return;
-
-	if (wb_pending)
-		vaddr_out = crtc_state->active_writeback;
-
-	ret = compose_planes(&vaddr_out, primary_composer, cursor_composer);
-	if (ret) {
-		if (ret == -EINVAL && !wb_pending)
-			kfree(vaddr_out);
+	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
+	if (ret == -EINVAL)
 		return;
-	}
-
-	crc32 = compute_crc(vaddr_out, primary_composer);
-
-	if (wb_pending) {
-		drm_writeback_signal_completion(&out->wb_connector, 0);
-		spin_lock_irq(&out->composer_lock);
-		crtc_state->wb_pending = false;
-		spin_unlock_irq(&out->composer_lock);
-	} else {
-		kfree(vaddr_out);
-	}
-
 	/*
 	 * The worker can fall behind the vblank hrtimer, make sure we catch up.
 	 */
@@ -247,6 +255,20 @@ void vkms_composer_worker(struct work_struct *work)
 		drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
 }
 
+void vkms_crtc_composer(struct vkms_crtc_state *crtc_state)
+{
+	struct drm_crtc *crtc = crtc_state->base.crtc;
+	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
+	u32 crc32 = 0;
+	int ret;
+
+	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
+	if (ret == -EINVAL)
+		return;
+
+	drm_crtc_add_crc_entry(crtc, true, 0, &crc32);
+}
+
 static const char * const pipe_crc_sources[] = {"auto"};
 
 const char *const *vkms_get_crc_sources(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index 35540c7c4416..538315140585 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -125,8 +125,11 @@ int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
 			   size_t *values_cnt);
 
 /* Composer Support */
+int vkms_composer_common(struct vkms_crtc_state *crtc_state, struct vkms_output *out,
+			 bool wb_pending, uint32_t *crcs);
 void vkms_composer_worker(struct work_struct *work);
 void vkms_set_composer(struct vkms_output *out, bool enabled);
+void vkms_crtc_composer(struct vkms_crtc_state *crtc_state);
 
 /* Writeback */
 int vkms_enable_writeback_connector(struct vkms_device *vkmsdev);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
@ 2021-04-04 13:10   ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:10 UTC (permalink / raw)
  To: melissa.srw
  Cc: hamohammed.sa, rodrigosiqueiramelo, airlied, linux-kernel, dri-devel

Add two new functions vkms_composer_common() and vkms_crtc_composer().
The actual plane composition work has been moved to the helper function,
vkms_composer_common() which is called by both vkms_composer_worker()
and vkms_crtc_composer(). vkms_crtc_composer() can be used when we
implement virtual_hw mode.

Signed-off-by: Sumera Priyadarsini <sylphrenadin@gmail.com>
---

Changes in V3:
- Refactor patchset (Melissa)
Change in V2:
- Add vkms_composer_common() (Daniel)
---
 drivers/gpu/drm/vkms/vkms_composer.c | 88 +++++++++++++++++-----------
 drivers/gpu/drm/vkms/vkms_drv.h      |  3 +
 2 files changed, 58 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vkms_composer.c
index 66c6842d70db..91b33c9c2f47 100644
--- a/drivers/gpu/drm/vkms/vkms_composer.c
+++ b/drivers/gpu/drm/vkms/vkms_composer.c
@@ -169,6 +169,44 @@ static int compose_planes(void **vaddr_out,
 	return 0;
 }
 
+int vkms_composer_common(struct vkms_crtc_state *crtc_state,
+			 struct vkms_output *out, bool wb_pending, uint32_t *crc32)
+{
+	struct vkms_composer *primary_composer = NULL;
+	struct vkms_composer *cursor_composer = NULL;
+	void *vaddr_out = NULL;
+	int ret;
+
+	if (crtc_state->num_active_planes >= 1)
+		primary_composer = crtc_state->active_planes[0]->composer;
+	if (crtc_state->num_active_planes == 2)
+		cursor_composer = crtc_state->active_planes[1]->composer;
+	if (!primary_composer)
+		return -EINVAL;
+	if (wb_pending)
+		vaddr_out = crtc_state->active_writeback;
+
+	ret = compose_planes(&vaddr_out, primary_composer, cursor_composer);
+	if (ret) {
+		if (ret == -EINVAL && !wb_pending)
+			kfree(vaddr_out);
+		return -EINVAL;
+	}
+
+	*crc32 = compute_crc(vaddr_out, primary_composer);
+
+	if (wb_pending) {
+		drm_writeback_signal_completion(&out->wb_connector, 0);
+		spin_lock_irq(&out->composer_lock);
+		crtc_state->wb_pending = false;
+		spin_unlock_irq(&out->composer_lock);
+	} else {
+		kfree(vaddr_out);
+	}
+
+	return 0;
+}
+
 /**
  * vkms_composer_worker - ordered work_struct to compute CRC
  *
@@ -185,12 +223,9 @@ void vkms_composer_worker(struct work_struct *work)
 						composer_work);
 	struct drm_crtc *crtc = crtc_state->base.crtc;
 	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
-	struct vkms_composer *primary_composer = NULL;
-	struct vkms_composer *cursor_composer = NULL;
 	bool crc_pending, wb_pending;
-	void *vaddr_out = NULL;
-	u32 crc32 = 0;
 	u64 frame_start, frame_end;
+	u32 crc32 = 0;
 	int ret;
 
 	spin_lock_irq(&out->composer_lock);
@@ -210,36 +245,9 @@ void vkms_composer_worker(struct work_struct *work)
 	if (!crc_pending)
 		return;
 
-	if (crtc_state->num_active_planes >= 1)
-		primary_composer = crtc_state->active_planes[0]->composer;
-
-	if (crtc_state->num_active_planes == 2)
-		cursor_composer = crtc_state->active_planes[1]->composer;
-
-	if (!primary_composer)
-		return;
-
-	if (wb_pending)
-		vaddr_out = crtc_state->active_writeback;
-
-	ret = compose_planes(&vaddr_out, primary_composer, cursor_composer);
-	if (ret) {
-		if (ret == -EINVAL && !wb_pending)
-			kfree(vaddr_out);
+	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
+	if (ret == -EINVAL)
 		return;
-	}
-
-	crc32 = compute_crc(vaddr_out, primary_composer);
-
-	if (wb_pending) {
-		drm_writeback_signal_completion(&out->wb_connector, 0);
-		spin_lock_irq(&out->composer_lock);
-		crtc_state->wb_pending = false;
-		spin_unlock_irq(&out->composer_lock);
-	} else {
-		kfree(vaddr_out);
-	}
-
 	/*
 	 * The worker can fall behind the vblank hrtimer, make sure we catch up.
 	 */
@@ -247,6 +255,20 @@ void vkms_composer_worker(struct work_struct *work)
 		drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
 }
 
+void vkms_crtc_composer(struct vkms_crtc_state *crtc_state)
+{
+	struct drm_crtc *crtc = crtc_state->base.crtc;
+	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
+	u32 crc32 = 0;
+	int ret;
+
+	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
+	if (ret == -EINVAL)
+		return;
+
+	drm_crtc_add_crc_entry(crtc, true, 0, &crc32);
+}
+
 static const char * const pipe_crc_sources[] = {"auto"};
 
 const char *const *vkms_get_crc_sources(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index 35540c7c4416..538315140585 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -125,8 +125,11 @@ int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
 			   size_t *values_cnt);
 
 /* Composer Support */
+int vkms_composer_common(struct vkms_crtc_state *crtc_state, struct vkms_output *out,
+			 bool wb_pending, uint32_t *crcs);
 void vkms_composer_worker(struct work_struct *work);
 void vkms_set_composer(struct vkms_output *out, bool enabled);
+void vkms_crtc_composer(struct vkms_crtc_state *crtc_state);
 
 /* Writeback */
 int vkms_enable_writeback_connector(struct vkms_device *vkmsdev);
-- 
2.25.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V3 2/2] drm/vkms: Add support for virtual hardware mode
  2021-04-04 13:10 ` Sumera Priyadarsini
@ 2021-04-04 13:11   ` Sumera Priyadarsini
  -1 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:11 UTC (permalink / raw)
  To: melissa.srw
  Cc: rodrigosiqueiramelo, hamohammed.sa, daniel, airlied, dri-devel,
	linux-kernel

Add a virtual hardware or vblank-less mode as a module to
enable VKMS to emulate virtual graphic drivers.

Add a new drm_crtc_helper_funcs struct,
vkms_virtual_crtc_helper_funcs() which holds the atomic helpers
for virtual hardware mode. Change the existing
vkms_crtc_helper_funcs struct to vkms_vblank_crtc_helper_funcs
which holds atomic helpers for the vblank mode.
This makes the code flow clearer and easier to test
virtual hardware mode.

The first patch of this patchset added the function vkms_crtc_composer()
for plane composition which is used in case of vblank-less mode and
is directly called in the atomic hook in vkms_crtc_atomic_begin().
However, some crc captures still use vblanks which causes the crc-based
igt tests to crash. Currently, I am unsure about how to approach the
one-shot implementation of crc reads so I am still working on that.

This patchset has been tested with the igt tests- kms_writeback, kms_atomic,
kms_lease, kms_flip, kms_pipe_get_crc and preserves results except for
subtests related to crc reads and skips tests that rely on vertical
blanking. This patchset must be tested after incorporating the
igt-tests patch:
https://lists.freedesktop.org/archives/igt-dev/2021-February/029355.html .

The patch is based on Rodrigo Siqueira's
patch(https://patchwork.freedesktop.org/patch/316851/?series=48469&rev=3)
and the ensuing review.

Signed-off-by: Sumera Priyadarsini <sylphrenadin@gmail.com>
---
Changes in V3:
- Refactor patchset(Melissa)
Changes in V2:
- Add atomic helper functions in a separate struct for virtual hardware
mode (Daniel)
- Remove spinlock across 'vkms_output->lock' in vkms_crtc.c(Daniel)
- Add vkms_composer_common() (Daniel)
---
 drivers/gpu/drm/vkms/vkms_crtc.c | 51 +++++++++++++++++++++++---------
 drivers/gpu/drm/vkms/vkms_drv.c  | 18 +++++++----
 drivers/gpu/drm/vkms/vkms_drv.h  |  1 +
 3 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index 57bbd32e9beb..e6286f98d5b6 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -222,20 +222,20 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
 	return 0;
 }
 
-static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
-				    struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_enable(struct drm_crtc *crtc,
+					   struct drm_atomic_state *state)
 {
 	drm_crtc_vblank_on(crtc);
 }
 
-static void vkms_crtc_atomic_disable(struct drm_crtc *crtc,
-				     struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_disable(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	drm_crtc_vblank_off(crtc);
 }
 
-static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
-				   struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_begin(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
 
@@ -245,8 +245,8 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
 	spin_lock_irq(&vkms_output->lock);
 }
 
-static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
-				   struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_flush(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
 
@@ -268,18 +268,38 @@ static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&vkms_output->lock);
 }
 
-static const struct drm_crtc_helper_funcs vkms_crtc_helper_funcs = {
+/*
+ * Crtc functions for virtual hardware/vblankless mode
+ */
+static void vkms_virtual_crtc_atomic_flush(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
+{
+	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
+	struct vkms_crtc_state *vkms_state = to_vkms_crtc_state(crtc->state);
+
+	vkms_crtc_composer(vkms_state);
+
+	vkms_output->composer_state = to_vkms_crtc_state(crtc->state);
+}
+
+static const struct drm_crtc_helper_funcs vkms_vblank_crtc_helper_funcs = {
 	.atomic_check	= vkms_crtc_atomic_check,
-	.atomic_begin	= vkms_crtc_atomic_begin,
-	.atomic_flush	= vkms_crtc_atomic_flush,
-	.atomic_enable	= vkms_crtc_atomic_enable,
-	.atomic_disable	= vkms_crtc_atomic_disable,
+	.atomic_begin	= vkms_vblank_crtc_atomic_begin,
+	.atomic_flush	= vkms_vblank_crtc_atomic_flush,
+	.atomic_enable	= vkms_vblank_crtc_atomic_enable,
+	.atomic_disable	= vkms_vblank_crtc_atomic_disable,
+};
+
+static const struct drm_crtc_helper_funcs vkms_virtual_crtc_helper_funcs = {
+	.atomic_check	= vkms_crtc_atomic_check,
+	.atomic_flush	= vkms_virtual_crtc_atomic_flush,
 };
 
 int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
 		   struct drm_plane *primary, struct drm_plane *cursor)
 {
 	struct vkms_output *vkms_out = drm_crtc_to_vkms_output(crtc);
+	struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev);
 	int ret;
 
 	ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
@@ -289,7 +309,10 @@ int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
 		return ret;
 	}
 
-	drm_crtc_helper_add(crtc, &vkms_crtc_helper_funcs);
+	if (vkmsdev->config->virtual_hw)
+		drm_crtc_helper_add(crtc, &vkms_virtual_crtc_helper_funcs);
+	else
+		drm_crtc_helper_add(crtc, &vkms_vblank_crtc_helper_funcs);
 
 	spin_lock_init(&vkms_out->lock);
 	spin_lock_init(&vkms_out->composer_lock);
diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c
index 2173b82606f6..945c4495d62a 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.c
+++ b/drivers/gpu/drm/vkms/vkms_drv.c
@@ -44,6 +44,11 @@ static bool enable_writeback = true;
 module_param_named(enable_writeback, enable_writeback, bool, 0444);
 MODULE_PARM_DESC(enable_writeback, "Enable/Disable writeback connector support");
 
+static bool enable_virtual_hw = false;
+module_param_named(enable_virtual_hw, enable_virtual_hw, bool, 0444);
+MODULE_PARM_DESC(enable_virtual_hw, "Enable/Disable virtual hardware mode(virtual \
+hardware mode disables vblank interrupts)");
+
 DEFINE_DRM_GEM_FOPS(vkms_driver_fops);
 
 static void vkms_release(struct drm_device *dev)
@@ -159,12 +164,14 @@ static int vkms_create(struct vkms_config *config)
 		goto out_devres;
 	}
 
-	vkms_device->drm.irq_enabled = true;
+	vkms_device->drm.irq_enabled = !vkms_device->config->virtual_hw;
 
-	ret = drm_vblank_init(&vkms_device->drm, 1);
-	if (ret) {
-		DRM_ERROR("Failed to vblank\n");
-		goto out_devres;
+	if (!vkms_device->config->virtual_hw) {
+		ret = drm_vblank_init(&vkms_device->drm, 1);
+		if (ret) {
+			DRM_ERROR("Failed to vblank\n");
+			goto out_devres;
+		}
 	}
 
 	ret = vkms_modeset_init(vkms_device);
@@ -198,6 +205,7 @@ static int __init vkms_init(void)
 
 	config->cursor = enable_cursor;
 	config->writeback = enable_writeback;
+	config->virtual_hw = enable_virtual_hw;
 
 	return vkms_create(config);
 }
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index 538315140585..a44f530ffaf0 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -85,6 +85,7 @@ struct vkms_device;
 struct vkms_config {
 	bool writeback;
 	bool cursor;
+	bool virtual_hw;
 	/* only set when instantiated */
 	struct vkms_device *dev;
 };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V3 2/2] drm/vkms: Add support for virtual hardware mode
@ 2021-04-04 13:11   ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 13:11 UTC (permalink / raw)
  To: melissa.srw
  Cc: hamohammed.sa, rodrigosiqueiramelo, airlied, linux-kernel, dri-devel

Add a virtual hardware or vblank-less mode as a module to
enable VKMS to emulate virtual graphic drivers.

Add a new drm_crtc_helper_funcs struct,
vkms_virtual_crtc_helper_funcs() which holds the atomic helpers
for virtual hardware mode. Change the existing
vkms_crtc_helper_funcs struct to vkms_vblank_crtc_helper_funcs
which holds atomic helpers for the vblank mode.
This makes the code flow clearer and easier to test
virtual hardware mode.

The first patch of this patchset added the function vkms_crtc_composer()
for plane composition which is used in case of vblank-less mode and
is directly called in the atomic hook in vkms_crtc_atomic_begin().
However, some crc captures still use vblanks which causes the crc-based
igt tests to crash. Currently, I am unsure about how to approach the
one-shot implementation of crc reads so I am still working on that.

This patchset has been tested with the igt tests- kms_writeback, kms_atomic,
kms_lease, kms_flip, kms_pipe_get_crc and preserves results except for
subtests related to crc reads and skips tests that rely on vertical
blanking. This patchset must be tested after incorporating the
igt-tests patch:
https://lists.freedesktop.org/archives/igt-dev/2021-February/029355.html .

The patch is based on Rodrigo Siqueira's
patch(https://patchwork.freedesktop.org/patch/316851/?series=48469&rev=3)
and the ensuing review.

Signed-off-by: Sumera Priyadarsini <sylphrenadin@gmail.com>
---
Changes in V3:
- Refactor patchset(Melissa)
Changes in V2:
- Add atomic helper functions in a separate struct for virtual hardware
mode (Daniel)
- Remove spinlock across 'vkms_output->lock' in vkms_crtc.c(Daniel)
- Add vkms_composer_common() (Daniel)
---
 drivers/gpu/drm/vkms/vkms_crtc.c | 51 +++++++++++++++++++++++---------
 drivers/gpu/drm/vkms/vkms_drv.c  | 18 +++++++----
 drivers/gpu/drm/vkms/vkms_drv.h  |  1 +
 3 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index 57bbd32e9beb..e6286f98d5b6 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -222,20 +222,20 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
 	return 0;
 }
 
-static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
-				    struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_enable(struct drm_crtc *crtc,
+					   struct drm_atomic_state *state)
 {
 	drm_crtc_vblank_on(crtc);
 }
 
-static void vkms_crtc_atomic_disable(struct drm_crtc *crtc,
-				     struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_disable(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	drm_crtc_vblank_off(crtc);
 }
 
-static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
-				   struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_begin(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
 
@@ -245,8 +245,8 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
 	spin_lock_irq(&vkms_output->lock);
 }
 
-static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
-				   struct drm_atomic_state *state)
+static void vkms_vblank_crtc_atomic_flush(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
 {
 	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
 
@@ -268,18 +268,38 @@ static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&vkms_output->lock);
 }
 
-static const struct drm_crtc_helper_funcs vkms_crtc_helper_funcs = {
+/*
+ * Crtc functions for virtual hardware/vblankless mode
+ */
+static void vkms_virtual_crtc_atomic_flush(struct drm_crtc *crtc,
+		struct drm_atomic_state *state)
+{
+	struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
+	struct vkms_crtc_state *vkms_state = to_vkms_crtc_state(crtc->state);
+
+	vkms_crtc_composer(vkms_state);
+
+	vkms_output->composer_state = to_vkms_crtc_state(crtc->state);
+}
+
+static const struct drm_crtc_helper_funcs vkms_vblank_crtc_helper_funcs = {
 	.atomic_check	= vkms_crtc_atomic_check,
-	.atomic_begin	= vkms_crtc_atomic_begin,
-	.atomic_flush	= vkms_crtc_atomic_flush,
-	.atomic_enable	= vkms_crtc_atomic_enable,
-	.atomic_disable	= vkms_crtc_atomic_disable,
+	.atomic_begin	= vkms_vblank_crtc_atomic_begin,
+	.atomic_flush	= vkms_vblank_crtc_atomic_flush,
+	.atomic_enable	= vkms_vblank_crtc_atomic_enable,
+	.atomic_disable	= vkms_vblank_crtc_atomic_disable,
+};
+
+static const struct drm_crtc_helper_funcs vkms_virtual_crtc_helper_funcs = {
+	.atomic_check	= vkms_crtc_atomic_check,
+	.atomic_flush	= vkms_virtual_crtc_atomic_flush,
 };
 
 int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
 		   struct drm_plane *primary, struct drm_plane *cursor)
 {
 	struct vkms_output *vkms_out = drm_crtc_to_vkms_output(crtc);
+	struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev);
 	int ret;
 
 	ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
@@ -289,7 +309,10 @@ int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
 		return ret;
 	}
 
-	drm_crtc_helper_add(crtc, &vkms_crtc_helper_funcs);
+	if (vkmsdev->config->virtual_hw)
+		drm_crtc_helper_add(crtc, &vkms_virtual_crtc_helper_funcs);
+	else
+		drm_crtc_helper_add(crtc, &vkms_vblank_crtc_helper_funcs);
 
 	spin_lock_init(&vkms_out->lock);
 	spin_lock_init(&vkms_out->composer_lock);
diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c
index 2173b82606f6..945c4495d62a 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.c
+++ b/drivers/gpu/drm/vkms/vkms_drv.c
@@ -44,6 +44,11 @@ static bool enable_writeback = true;
 module_param_named(enable_writeback, enable_writeback, bool, 0444);
 MODULE_PARM_DESC(enable_writeback, "Enable/Disable writeback connector support");
 
+static bool enable_virtual_hw = false;
+module_param_named(enable_virtual_hw, enable_virtual_hw, bool, 0444);
+MODULE_PARM_DESC(enable_virtual_hw, "Enable/Disable virtual hardware mode(virtual \
+hardware mode disables vblank interrupts)");
+
 DEFINE_DRM_GEM_FOPS(vkms_driver_fops);
 
 static void vkms_release(struct drm_device *dev)
@@ -159,12 +164,14 @@ static int vkms_create(struct vkms_config *config)
 		goto out_devres;
 	}
 
-	vkms_device->drm.irq_enabled = true;
+	vkms_device->drm.irq_enabled = !vkms_device->config->virtual_hw;
 
-	ret = drm_vblank_init(&vkms_device->drm, 1);
-	if (ret) {
-		DRM_ERROR("Failed to vblank\n");
-		goto out_devres;
+	if (!vkms_device->config->virtual_hw) {
+		ret = drm_vblank_init(&vkms_device->drm, 1);
+		if (ret) {
+			DRM_ERROR("Failed to vblank\n");
+			goto out_devres;
+		}
 	}
 
 	ret = vkms_modeset_init(vkms_device);
@@ -198,6 +205,7 @@ static int __init vkms_init(void)
 
 	config->cursor = enable_cursor;
 	config->writeback = enable_writeback;
+	config->virtual_hw = enable_virtual_hw;
 
 	return vkms_create(config);
 }
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index 538315140585..a44f530ffaf0 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -85,6 +85,7 @@ struct vkms_device;
 struct vkms_config {
 	bool writeback;
 	bool cursor;
+	bool virtual_hw;
 	/* only set when instantiated */
 	struct vkms_device *dev;
 };
-- 
2.25.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
  2021-04-04 13:10   ` Sumera Priyadarsini
  (?)
@ 2021-04-04 15:48     ` kernel test robot
  -1 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2021-04-04 15:48 UTC (permalink / raw)
  To: Sumera Priyadarsini, melissa.srw
  Cc: kbuild-all, rodrigosiqueiramelo, hamohammed.sa, daniel, airlied,
	dri-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 7703 bytes --]

Hi Sumera,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.12-rc5 next-20210401]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
config: mips-randconfig-r025-20210404 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
        git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
>> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
     226 |  bool crc_pending, wb_pending;
         |                    ^~~~~~~~~~


vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c

4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209  
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221  	struct vkms_crtc_state *crtc_state = container_of(work,
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222  						struct vkms_crtc_state,
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223  						composer_work);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224  	struct drm_crtc *crtc = crtc_state->base.crtc;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225  	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226  	bool crc_pending, wb_pending;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227  	u64 frame_start, frame_end;
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228  	u32 crc32 = 0;
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229  	int ret;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230  
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231  	spin_lock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232  	frame_start = crtc_state->frame_start;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233  	frame_end = crtc_state->frame_end;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234  	crc_pending = crtc_state->crc_pending;
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235  	wb_pending = crtc_state->wb_pending;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236  	crtc_state->frame_start = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237  	crtc_state->frame_end = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238  	crtc_state->crc_pending = false;
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239  	spin_unlock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240  
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242  	 * We raced with the vblank hrtimer and previous work already computed
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243  	 * the crc, nothing to do.
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244  	 */
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245  	if (!crc_pending)
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246  		return;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247  
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248  	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249  	if (ret == -EINVAL)
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250  		return;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252  	 * The worker can fall behind the vblank hrtimer, make sure we catch up.
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253  	 */
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254  	while (frame_start <= frame_end)
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255  		drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27542 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
@ 2021-04-04 15:48     ` kernel test robot
  0 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2021-04-04 15:48 UTC (permalink / raw)
  To: Sumera Priyadarsini, melissa.srw
  Cc: hamohammed.sa, kbuild-all, rodrigosiqueiramelo, airlied,
	linux-kernel, dri-devel

[-- Attachment #1: Type: text/plain, Size: 7703 bytes --]

Hi Sumera,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.12-rc5 next-20210401]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
config: mips-randconfig-r025-20210404 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
        git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
>> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
     226 |  bool crc_pending, wb_pending;
         |                    ^~~~~~~~~~


vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c

4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209  
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221  	struct vkms_crtc_state *crtc_state = container_of(work,
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222  						struct vkms_crtc_state,
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223  						composer_work);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224  	struct drm_crtc *crtc = crtc_state->base.crtc;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225  	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226  	bool crc_pending, wb_pending;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227  	u64 frame_start, frame_end;
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228  	u32 crc32 = 0;
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229  	int ret;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230  
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231  	spin_lock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232  	frame_start = crtc_state->frame_start;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233  	frame_end = crtc_state->frame_end;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234  	crc_pending = crtc_state->crc_pending;
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235  	wb_pending = crtc_state->wb_pending;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236  	crtc_state->frame_start = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237  	crtc_state->frame_end = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238  	crtc_state->crc_pending = false;
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239  	spin_unlock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240  
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242  	 * We raced with the vblank hrtimer and previous work already computed
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243  	 * the crc, nothing to do.
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244  	 */
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245  	if (!crc_pending)
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246  		return;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247  
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248  	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249  	if (ret == -EINVAL)
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250  		return;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252  	 * The worker can fall behind the vblank hrtimer, make sure we catch up.
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253  	 */
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254  	while (frame_start <= frame_end)
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255  		drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27542 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
@ 2021-04-04 15:48     ` kernel test robot
  0 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2021-04-04 15:48 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7793 bytes --]

Hi Sumera,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.12-rc5 next-20210401]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
config: mips-randconfig-r025-20210404 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
        git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
>> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
     226 |  bool crc_pending, wb_pending;
         |                    ^~~~~~~~~~


vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c

4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209  
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221  	struct vkms_crtc_state *crtc_state = container_of(work,
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222  						struct vkms_crtc_state,
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223  						composer_work);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224  	struct drm_crtc *crtc = crtc_state->base.crtc;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225  	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226  	bool crc_pending, wb_pending;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227  	u64 frame_start, frame_end;
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228  	u32 crc32 = 0;
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229  	int ret;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230  
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231  	spin_lock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232  	frame_start = crtc_state->frame_start;
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233  	frame_end = crtc_state->frame_end;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234  	crc_pending = crtc_state->crc_pending;
dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235  	wb_pending = crtc_state->wb_pending;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236  	crtc_state->frame_start = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237  	crtc_state->frame_end = 0;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238  	crtc_state->crc_pending = false;
a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239  	spin_unlock_irq(&out->composer_lock);
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240  
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242  	 * We raced with the vblank hrtimer and previous work already computed
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243  	 * the crc, nothing to do.
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244  	 */
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245  	if (!crc_pending)
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246  		return;
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247  
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248  	ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249  	if (ret == -EINVAL)
953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250  		return;
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251  	/*
18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252  	 * The worker can fall behind the vblank hrtimer, make sure we catch up.
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253  	 */
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254  	while (frame_start <= frame_end)
0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255  		drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27542 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
  2021-04-04 15:48     ` kernel test robot
  (?)
@ 2021-04-04 17:50       ` Sumera Priyadarsini
  -1 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 17:50 UTC (permalink / raw)
  To: kernel test robot
  Cc: Melissa Wen, kbuild-all, Rodrigo Siqueira, Haneen Mohammed,
	Daniel Vetter, David Airlie, dri-devel, linux-kernel

On Sun, Apr 4, 2021 at 9:19 PM kernel test robot <lkp@intel.com> wrote:
>
> Hi Sumera,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on v5.12-rc5 next-20210401]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
> config: mips-randconfig-r025-20210404 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
>         git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>    drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
> >> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
>      226 |  bool crc_pending, wb_pending;
>          |                    ^~~~~~~~~~
>
>
> vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c
>
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221         struct vkms_crtc_state *crtc_state = container_of(work,
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222                                                 struct vkms_crtc_state,
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223                                                 composer_work);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224         struct drm_crtc *crtc = crtc_state->base.crtc;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225         struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226         bool crc_pending, wb_pending;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227         u64 frame_start, frame_end;
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228         u32 crc32 = 0;
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229         int ret;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231         spin_lock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232         frame_start = crtc_state->frame_start;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233         frame_end = crtc_state->frame_end;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234         crc_pending = crtc_state->crc_pending;
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235         wb_pending = crtc_state->wb_pending;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236         crtc_state->frame_start = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237         crtc_state->frame_end = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238         crtc_state->crc_pending = false;
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239         spin_unlock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242          * We raced with the vblank hrtimer and previous work already computed
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243          * the crc, nothing to do.
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244          */
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245         if (!crc_pending)
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246                 return;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248         ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249         if (ret == -EINVAL)
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250                 return;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252          * The worker can fall behind the vblank hrtimer, make sure we catch up.
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253          */
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254         while (frame_start <= frame_end)
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255                 drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

This error seems to have creeped in again. I am not sure why I didn't
get any warning for this.
I will submit a revised patch, sorry for the noise. :/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
@ 2021-04-04 17:50       ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 17:50 UTC (permalink / raw)
  To: kernel test robot
  Cc: Haneen Mohammed, kbuild-all, Rodrigo Siqueira, David Airlie,
	linux-kernel, dri-devel, Melissa Wen

On Sun, Apr 4, 2021 at 9:19 PM kernel test robot <lkp@intel.com> wrote:
>
> Hi Sumera,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on v5.12-rc5 next-20210401]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
> config: mips-randconfig-r025-20210404 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
>         git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>    drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
> >> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
>      226 |  bool crc_pending, wb_pending;
>          |                    ^~~~~~~~~~
>
>
> vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c
>
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221         struct vkms_crtc_state *crtc_state = container_of(work,
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222                                                 struct vkms_crtc_state,
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223                                                 composer_work);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224         struct drm_crtc *crtc = crtc_state->base.crtc;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225         struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226         bool crc_pending, wb_pending;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227         u64 frame_start, frame_end;
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228         u32 crc32 = 0;
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229         int ret;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231         spin_lock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232         frame_start = crtc_state->frame_start;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233         frame_end = crtc_state->frame_end;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234         crc_pending = crtc_state->crc_pending;
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235         wb_pending = crtc_state->wb_pending;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236         crtc_state->frame_start = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237         crtc_state->frame_end = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238         crtc_state->crc_pending = false;
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239         spin_unlock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242          * We raced with the vblank hrtimer and previous work already computed
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243          * the crc, nothing to do.
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244          */
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245         if (!crc_pending)
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246                 return;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248         ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249         if (ret == -EINVAL)
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250                 return;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252          * The worker can fall behind the vblank hrtimer, make sure we catch up.
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253          */
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254         while (frame_start <= frame_end)
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255                 drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

This error seems to have creeped in again. I am not sure why I didn't
get any warning for this.
I will submit a revised patch, sorry for the noise. :/
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode
@ 2021-04-04 17:50       ` Sumera Priyadarsini
  0 siblings, 0 replies; 12+ messages in thread
From: Sumera Priyadarsini @ 2021-04-04 17:50 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 8467 bytes --]

On Sun, Apr 4, 2021 at 9:19 PM kernel test robot <lkp@intel.com> wrote:
>
> Hi Sumera,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on v5.12-rc5 next-20210401]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url:    https://github.com/0day-ci/linux/commits/Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2023a53bdf41b7646b1d384b6816af06309f73a5
> config: mips-randconfig-r025-20210404 (attached as .config)
> compiler: mipsel-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/4bd5c27357dd86b6099f3f28db5db722ceeed582
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Sumera-Priyadarsini/Add-virtual-hardware-module/20210404-211300
>         git checkout 4bd5c27357dd86b6099f3f28db5db722ceeed582
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>    drivers/gpu/drm/vkms/vkms_composer.c: In function 'vkms_composer_worker':
> >> drivers/gpu/drm/vkms/vkms_composer.c:226:20: warning: variable 'wb_pending' set but not used [-Wunused-but-set-variable]
>      226 |  bool crc_pending, wb_pending;
>          |                    ^~~~~~~~~~
>
>
> vim +/wb_pending +226 drivers/gpu/drm/vkms/vkms_composer.c
>
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  209
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  210  /**
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  211   * vkms_composer_worker - ordered work_struct to compute CRC
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  212   *
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  213   * @work: work_struct
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  214   *
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  215   * Work handler for composing and computing CRCs. work_struct scheduled in
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  216   * an ordered workqueue that's periodically scheduled to run by
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  217   * _vblank_handle() and flushed at vkms_atomic_crtc_destroy_state().
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  218   */
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  219  void vkms_composer_worker(struct work_struct *work)
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  220  {
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  221         struct vkms_crtc_state *crtc_state = container_of(work,
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  222                                                 struct vkms_crtc_state,
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  223                                                 composer_work);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  224         struct drm_crtc *crtc = crtc_state->base.crtc;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  225         struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30 @226         bool crc_pending, wb_pending;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  227         u64 frame_start, frame_end;
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  228         u32 crc32 = 0;
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  229         int ret;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  230
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  231         spin_lock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  232         frame_start = crtc_state->frame_start;
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  233         frame_end = crtc_state->frame_end;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  234         crc_pending = crtc_state->crc_pending;
> dbd9d80c1b2e03 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  235         wb_pending = crtc_state->wb_pending;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  236         crtc_state->frame_start = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  237         crtc_state->frame_end = 0;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  238         crtc_state->crc_pending = false;
> a4e7e98e90ebd9 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2019-06-25  239         spin_unlock_irq(&out->composer_lock);
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  240
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  241         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  242          * We raced with the vblank hrtimer and previous work already computed
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  243          * the crc, nothing to do.
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  244          */
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  245         if (!crc_pending)
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  246                 return;
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  247
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  248         ret = vkms_composer_common(crtc_state, out, crtc_state->wb_pending, &crc32);
> 4bd5c27357dd86 drivers/gpu/drm/vkms/vkms_composer.c Sumera Priyadarsini 2021-04-04  249         if (ret == -EINVAL)
> 953025763d1421 drivers/gpu/drm/vkms/vkms_composer.c Rodrigo Siqueira    2020-08-30  250                 return;
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  251         /*
> 18d0952a838ba5 drivers/gpu/drm/vkms/vkms_crc.c      Daniel Vetter       2019-06-07  252          * The worker can fall behind the vblank hrtimer, make sure we catch up.
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  253          */
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  254         while (frame_start <= frame_end)
> 0ca33adb91c0a9 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-09-04  255                 drm_crtc_add_crc_entry(crtc, true, frame_start++, &crc32);
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  256  }
> 6c234fe37c5762 drivers/gpu/drm/vkms/vkms_crc.c      Haneen Mohammed     2018-08-02  257
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

This error seems to have creeped in again. I am not sure why I didn't
get any warning for this.
I will submit a revised patch, sorry for the noise. :/

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-04-04 17:50 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-04 13:10 [PATCH V3 0/2] Add virtual hardware module Sumera Priyadarsini
2021-04-04 13:10 ` Sumera Priyadarsini
2021-04-04 13:10 ` [PATCH V3 1/2] drm/vkms: Refactor vkms_composer_worker() to prep for virtual_hw mode Sumera Priyadarsini
2021-04-04 13:10   ` Sumera Priyadarsini
2021-04-04 15:48   ` kernel test robot
2021-04-04 15:48     ` kernel test robot
2021-04-04 15:48     ` kernel test robot
2021-04-04 17:50     ` Sumera Priyadarsini
2021-04-04 17:50       ` Sumera Priyadarsini
2021-04-04 17:50       ` Sumera Priyadarsini
2021-04-04 13:11 ` [PATCH V3 2/2] drm/vkms: Add support for virtual hardware mode Sumera Priyadarsini
2021-04-04 13:11   ` Sumera Priyadarsini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.