summary refs log tree commit diff stats
path: root/results/classifier/deepseek-1/output/changes./1882851
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/deepseek-1/output/changes./1882851')
-rw-r--r--results/classifier/deepseek-1/output/changes./1882851493
1 files changed, 0 insertions, 493 deletions
diff --git a/results/classifier/deepseek-1/output/changes./1882851 b/results/classifier/deepseek-1/output/changes./1882851
deleted file mode 100644
index a1cecc71c..000000000
--- a/results/classifier/deepseek-1/output/changes./1882851
+++ /dev/null
@@ -1,493 +0,0 @@
-
-QEMU video freezes with "Guest disabled display" (virtio driver)
-
-I am using Arch Linux as my Guest and Host OS, after starting qemu with the following command:
-
-  $ qemu-system-x86_64 -enable-kvm -hda arch-zoom.qcow2 -m 4G -vga virtio
-
-and waiting for a screen blank, I get this message:
-
-  Guest disabled display
-
-And nothing happens after that, I can move the mouse or hit any key, and the message is still there.
-
-I can still reboot the VM but that's not optimal.
-
-I can reproduce this with the latest QEMU release (5.0.0) or git master, 
-I also tried this with older releases (4.0.0, 3.0.0) and the issue is still there.
-
-I can't reproduce this with other video drivers (std, qxl).
-
-With std/qxl the screen will blank a bit and then continue as normal.
-
-OK, I found a workaround: sendkey ctrl-alt-f1 from the QEMU console (ctrl alt 2) then I can switch back to X and continue from where I left off.
-
-Strange, that workaround doesn't work anymore.
-
-My bad, the workaround works, it's just a bit tricky.
-
-`xset dpms force off' on the guest is a good way to reproduce it.
-
-Hmm, happens with xorg only.
-Wayland behaves as expected (any mouse/kbd event wakes up the screen).
-Which pretty much implies this is a guest bug.
-
-> Hmm, happens with xorg only.
-
-Nope, I can reproduce it with sway as well (which is another Wayland compositor).
-
-To reproduce it with sway, just do: swaymsg "output * dpms off" and then should you see "Guest disabled display", at that point I'm unable to get back image.
-
-I tried the sendkey ctrl-alt-f2 and then switch back to TTY1 but the "Guest disabled display" remains.
-
-Can you please tell me which compositor you used?
-
-Thanks.
-
-I can't wake up the screen after hitting keys or moving the mouse after turning off the screen with sway.
-
-Gerd: I tried the LTS kernel on Arch Linux (5.4.46-1-lts) and I can't reproduce the bug with this kernel.
-
-It works as expected: `xset dpms force off' triggers the "Guest disabled display" and it disappears after moving the mouse.
-
-Could it be a regression in virtio_gpu?
-
-I guess I'll try the latest linux git and if it's an issue in master, I'll bisect it.
-
-I can reproduce it with current linux git master[1].
-
-1. git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
-
-OK, I was able to bisect, here is the result:
-
-[diego@arch-zoom linux]$ git bisect bad
-3954ff10e06e4fbc548fc02ff1fcaaac3228fed5 is the first bad commit
-commit 3954ff10e06e4fbc548fc02ff1fcaaac3228fed5
-Author: Gerd Hoffmann <email address hidden>
-Date:   Thu Dec 12 13:53:44 2019 +0100
-
-    drm/virtio: skip set_scanout if framebuffer didn't change
-
-    v2: also check src rect (Chia-I Wu).
-
-    Signed-off-by: Gerd Hoffmann <email address hidden>
-    Reviewed-by: Chia-I Wu <email address hidden>
-    Link: http://patchwork<email address hidden>
-
- drivers/gpu/drm/virtio/virtgpu_plane.c | 35 ++++++++++++++++++++--------------
- 1 file changed, 21 insertions(+), 14 deletions(-)
-[diego@arch-zoom linux]$
-
-
-
-
-I just sanity checked, and can confirm the bad commit causes it, and going back one commit makes it work.
-
-When going through a disable/enable cycle without changing the framebuffer
-the optimization added by commit 3954ff10e06e causes the screen stay
-blank.  Add a bool to force an update to fix that.
-
-Cc: <email address hidden>
-Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change")
-Signed-off-by: Gerd Hoffmann <email address hidden>
----
- drivers/gpu/drm/virtio/virtgpu_drv.h     | 1 +
- drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
- drivers/gpu/drm/virtio/virtgpu_plane.c   | 4 +++-
- 3 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
-index 7879ff58236f..6d5410d5dd84 100644
---- a/drivers/gpu/drm/virtio/virtgpu_drv.h
-+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
-@@ -138,6 +138,7 @@ struct virtio_gpu_output {
- 	int cur_x;
- 	int cur_y;
- 	bool enabled;
-+	bool need_update;
- };
- #define drm_crtc_to_virtio_gpu_output(x) \
- 	container_of(x, struct virtio_gpu_output, crtc)
-diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
-index 2b7e6ae65546..44e9c7b874f5 100644
---- a/drivers/gpu/drm/virtio/virtgpu_display.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-@@ -99,6 +99,7 @@ static void virtio_gpu_crtc_atomic_enable(struct drm_crtc *crtc,
- 	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
- 
- 	output->enabled = true;
-+	output->need_update = true;
- }
- 
- static void virtio_gpu_crtc_atomic_disable(struct drm_crtc *crtc,
-diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
-index 52d24179bcec..5948031a9ce8 100644
---- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-@@ -163,7 +163,8 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 	    plane->state->src_w != old_state->src_w ||
- 	    plane->state->src_h != old_state->src_h ||
- 	    plane->state->src_x != old_state->src_x ||
--	    plane->state->src_y != old_state->src_y) {
-+	    plane->state->src_y != old_state->src_y ||
-+	    output->need_update) {
- 		DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n",
- 			  bo->hw_res_handle,
- 			  plane->state->crtc_w, plane->state->crtc_h,
-@@ -178,6 +179,7 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 					   plane->state->src_h >> 16,
- 					   plane->state->src_x >> 16,
- 					   plane->state->src_y >> 16);
-+		output->need_update = false;
- 	}
- 
- 	virtio_gpu_cmd_resource_flush(vgdev, bo->hw_res_handle,
--- 
-2.18.4
-
-
-
-Gerd, thanks. I can confirm your patch fixes the problem with X, but Wayland (sway) is still affected.
-
-I tested X and wayland, and while the "Guest disabled display" no longer hangs on X, it still does hangs under wayland.
-
-Should I bisect again?
-
-Sway log after the crash.
-
-It looks like sway requires swayidle to wake up from sleep[1].
-
-This works:
-
-swayidle timeout 2 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"'
-
-1. https://github.com/swaywm/sway/issues/2914
-
-Yeah, I can reproduce the same exact behavior outside of QEMU with sway and it's consistent to what I observed in QEMU.
-
-> Hmm, happens with xorg only.
-
-I think you were right all along about this, sorry.
-
-Thanks for fixing this bug, feel free to close this bug as fixed.
-
-Will the patch make it for 5.8?
-
-When going through a disable/enable cycle without changing the
-framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio:
-skip set_scanout if framebuffer didn't change") causes the screen stay
-blank.  Add a bool to force an update to fix that.
-
-Cc: <email address hidden>
-Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change")
-Signed-off-by: Gerd Hoffmann <email address hidden>
----
- drivers/gpu/drm/virtio/virtgpu_drv.h     | 1 +
- drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
- drivers/gpu/drm/virtio/virtgpu_plane.c   | 4 +++-
- 3 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
-index 9ff9f4ac0522..7b0c319f23c9 100644
---- a/drivers/gpu/drm/virtio/virtgpu_drv.h
-+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
-@@ -138,6 +138,7 @@ struct virtio_gpu_output {
- 	int cur_x;
- 	int cur_y;
- 	bool enabled;
-+	bool need_update;
- };
- #define drm_crtc_to_virtio_gpu_output(x) \
- 	container_of(x, struct virtio_gpu_output, crtc)
-diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
-index cc7fd957a307..378be5956b30 100644
---- a/drivers/gpu/drm/virtio/virtgpu_display.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-@@ -100,6 +100,7 @@ static void virtio_gpu_crtc_atomic_enable(struct drm_crtc *crtc,
- 	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
- 
- 	output->enabled = true;
-+	output->need_update = true;
- }
- 
- static void virtio_gpu_crtc_atomic_disable(struct drm_crtc *crtc,
-diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
-index 52d24179bcec..5948031a9ce8 100644
---- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-@@ -163,7 +163,8 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 	    plane->state->src_w != old_state->src_w ||
- 	    plane->state->src_h != old_state->src_h ||
- 	    plane->state->src_x != old_state->src_x ||
--	    plane->state->src_y != old_state->src_y) {
-+	    plane->state->src_y != old_state->src_y ||
-+	    output->need_update) {
- 		DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n",
- 			  bo->hw_res_handle,
- 			  plane->state->crtc_w, plane->state->crtc_h,
-@@ -178,6 +179,7 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 					   plane->state->src_h >> 16,
- 					   plane->state->src_x >> 16,
- 					   plane->state->src_y >> 16);
-+		output->need_update = false;
- 	}
- 
- 	virtio_gpu_cmd_resource_flush(vgdev, bo->hw_res_handle,
--- 
-2.18.4
-
-
-
-  Hi,
-
-> > --- a/drivers/gpu/drm/virtio/virtgpu_display.c
-> > +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-> > @@ -100,6 +100,7 @@ static void virtio_gpu_crtc_atomic_enable(struct drm_crtc *crtc,
-> >  	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
-> >  
-> >  	output->enabled = true;
-> > +	output->need_update = true;
-
-> > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-> > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-> > @@ -163,7 +163,8 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
-> >  	    plane->state->src_w != old_state->src_w ||
-> >  	    plane->state->src_h != old_state->src_h ||
-> >  	    plane->state->src_x != old_state->src_x ||
-> > -	    plane->state->src_y != old_state->src_y) {
-> > +	    plane->state->src_y != old_state->src_y ||
-> > +	    output->need_update) {
-> 
-> Uh instead of hand-rolling what's essentially a drm_crtc_needs_modeset
-> check, why not use that one? atomic helpers try to keep the usual suspects
-> for state transitions already handy, to avoid every driver rolling their
-> own. Or do I miss something here?
-
-Well, the virtio-gpu virtual hardware can't do plane updates and crtc
-updates independant from each other.  So the crtc callbacks handle
-disable only (we don't need a fb for that) and leave the enable to the
-plane update.
-
-I suspect calling drm_atomic_crtc_needs_modeset() in plane update isn't
-going to fly ...
-
-take care,
-  Gerd
-
-
-
-On Mon, Aug 17, 2020 at 11:03:42AM +0200, Gerd Hoffmann wrote:
->   Hi,
-> 
-> > > --- a/drivers/gpu/drm/virtio/virtgpu_display.c
-> > > +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-> > > @@ -100,6 +100,7 @@ static void virtio_gpu_crtc_atomic_enable(struct drm_crtc *crtc,
-> > >  	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
-> > >  
-> > >  	output->enabled = true;
-> > > +	output->need_update = true;
-> 
-> > > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-> > > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-> > > @@ -163,7 +163,8 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
-> > >  	    plane->state->src_w != old_state->src_w ||
-> > >  	    plane->state->src_h != old_state->src_h ||
-> > >  	    plane->state->src_x != old_state->src_x ||
-> > > -	    plane->state->src_y != old_state->src_y) {
-> > > +	    plane->state->src_y != old_state->src_y ||
-> > > +	    output->need_update) {
-> > 
-> > Uh instead of hand-rolling what's essentially a drm_crtc_needs_modeset
-> > check, why not use that one? atomic helpers try to keep the usual suspects
-> > for state transitions already handy, to avoid every driver rolling their
-> > own. Or do I miss something here?
-> 
-> Well, the virtio-gpu virtual hardware can't do plane updates and crtc
-> updates independant from each other.  So the crtc callbacks handle
-> disable only (we don't need a fb for that) and leave the enable to the
-> plane update.
-> 
-> I suspect calling drm_atomic_crtc_needs_modeset() in plane update isn't
-> going to fly ...
-
-Digged a bit more, seems crtc_state->*_changed is cleared after modeset
-so the following plane update wouldn't see it.  Which I think means
-there is no way around tracking that in need_update.
-
-output->enabled is probably not needed though, seems I can replace that
-by either output->crtc.state->enable or ->active.  Not fully sure which
-one, probably ->active.
-
-take care,
-  Gerd
-
-
-
-When going through a disable/enable cycle without changing the
-framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio:
-skip set_scanout if framebuffer didn't change") causes the screen stay
-blank.  Add a bool to force an update to fix that.
-
-v2: use drm_atomic_crtc_needs_modeset() (Daniel).
-
-Cc: <email address hidden>
-Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change")
-Signed-off-by: Gerd Hoffmann <email address hidden>
----
- drivers/gpu/drm/virtio/virtgpu_drv.h     |  1 +
- drivers/gpu/drm/virtio/virtgpu_display.c | 11 +++++++++++
- drivers/gpu/drm/virtio/virtgpu_plane.c   |  4 +++-
- 3 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
-index 9ff9f4ac0522..4ab1b0ba2925 100644
---- a/drivers/gpu/drm/virtio/virtgpu_drv.h
-+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
-@@ -138,6 +138,7 @@ struct virtio_gpu_output {
- 	int cur_x;
- 	int cur_y;
- 	bool enabled;
-+	bool needs_modeset;
- };
- #define drm_crtc_to_virtio_gpu_output(x) \
- 	container_of(x, struct virtio_gpu_output, crtc)
-diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
-index 2c2742b8d657..6c26b41f4e0d 100644
---- a/drivers/gpu/drm/virtio/virtgpu_display.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-@@ -123,6 +123,17 @@ static int virtio_gpu_crtc_atomic_check(struct drm_crtc *crtc,
- static void virtio_gpu_crtc_atomic_flush(struct drm_crtc *crtc,
- 					 struct drm_crtc_state *old_state)
- {
-+	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
-+
-+	/*
-+	 * virtio-gpu can't do modeset and plane update operations
-+	 * independant from each other.  So the actual modeset happens
-+	 * in the plane update callback, and here we just check
-+	 * whenever we must force the modeset.
-+	 */
-+	if (drm_atomic_crtc_needs_modeset(crtc->state)) {
-+		output->needs_modeset = true;
-+	}
- }
- 
- static const struct drm_crtc_helper_funcs virtio_gpu_crtc_helper_funcs = {
-diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
-index 52d24179bcec..65757409d9ed 100644
---- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-@@ -163,7 +163,9 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 	    plane->state->src_w != old_state->src_w ||
- 	    plane->state->src_h != old_state->src_h ||
- 	    plane->state->src_x != old_state->src_x ||
--	    plane->state->src_y != old_state->src_y) {
-+	    plane->state->src_y != old_state->src_y ||
-+	    output->needs_modeset) {
-+		output->needs_modeset = false;
- 		DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n",
- 			  bo->hw_res_handle,
- 			  plane->state->crtc_w, plane->state->crtc_h,
--- 
-2.18.4
-
-
-
-From: Gerd Hoffmann <email address hidden>
-
-When going through a disable/enable cycle without changing the
-framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio:
-skip set_scanout if framebuffer didn't change") causes the screen stay
-blank.  Add a bool to force an update to fix that.
-
-v2: use drm_atomic_crtc_needs_modeset() (Daniel).
-
-Cc: <email address hidden>
-Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change")
-Signed-off-by: Gerd Hoffmann <email address hidden>
-Tested-by: Jiri Slaby <email address hidden>
-Tested-by: Diego Viola <email address hidden>
----
- drivers/gpu/drm/virtio/virtgpu_display.c | 11 +++++++++++
- drivers/gpu/drm/virtio/virtgpu_drv.h     |  1 +
- drivers/gpu/drm/virtio/virtgpu_plane.c   |  4 +++-
- 3 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
-index af55b334be2f..35b5c80f5d85 100644
---- a/drivers/gpu/drm/virtio/virtgpu_display.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
-@@ -123,6 +123,17 @@ static int virtio_gpu_crtc_atomic_check(struct drm_crtc *crtc,
- static void virtio_gpu_crtc_atomic_flush(struct drm_crtc *crtc,
- 					 struct drm_crtc_state *old_state)
- {
-+	struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc);
-+
-+	/*
-+	 * virtio-gpu can't do modeset and plane update operations
-+	 * independant from each other.  So the actual modeset happens
-+	 * in the plane update callback, and here we just check
-+	 * whenever we must force the modeset.
-+	 */
-+	if (drm_atomic_crtc_needs_modeset(crtc->state)) {
-+		output->needs_modeset = true;
-+	}
- }
- 
- static const struct drm_crtc_helper_funcs virtio_gpu_crtc_helper_funcs = {
-diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
-index 9ff9f4ac0522..4ab1b0ba2925 100644
---- a/drivers/gpu/drm/virtio/virtgpu_drv.h
-+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
-@@ -138,6 +138,7 @@ struct virtio_gpu_output {
- 	int cur_x;
- 	int cur_y;
- 	bool enabled;
-+	bool needs_modeset;
- };
- #define drm_crtc_to_virtio_gpu_output(x) \
- 	container_of(x, struct virtio_gpu_output, crtc)
-diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
-index 52d24179bcec..65757409d9ed 100644
---- a/drivers/gpu/drm/virtio/virtgpu_plane.c
-+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
-@@ -163,7 +163,9 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
- 	    plane->state->src_w != old_state->src_w ||
- 	    plane->state->src_h != old_state->src_h ||
- 	    plane->state->src_x != old_state->src_x ||
--	    plane->state->src_y != old_state->src_y) {
-+	    plane->state->src_y != old_state->src_y ||
-+	    output->needs_modeset) {
-+		output->needs_modeset = false;
- 		DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n",
- 			  bo->hw_res_handle,
- 			  plane->state->crtc_w, plane->state->crtc_h,
--- 
-2.28.0
-
-
-
-On Mon, Aug 24, 2020 at 09:24:40AM +0200, Jiri Slaby wrote:
-> On 18. 08. 20, 9:25, Gerd Hoffmann wrote:
-> > When going through a disable/enable cycle without changing the
-> > framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio:
-> > skip set_scanout if framebuffer didn't change") causes the screen stay
-> > blank.  Add a bool to force an update to fix that.
-> > 
-> > v2: use drm_atomic_crtc_needs_modeset() (Daniel).
-> > 
-> > Cc: <email address hidden>
-> > Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change")
-> > Signed-off-by: Gerd Hoffmann <email address hidden>
-> 
-> Tested-by: Jiri Slaby <email address hidden>
-
-Ping.  Need an ack or an review to merge this.
-
-thanks,
-  Gerd
-
-
-
-This bug is now fixed with Linux 5.9-rc5, thank you.
-