GNU bug report logs - #76805
31.0.50; [PATH] Fix Emacs uses 100% CPU after switching graphic frame to inactive

Previous Next

Package: emacs;

Reported by: Lin Sun <sunlin7 <at> hotmail.com>

Date: Fri, 7 Mar 2025 08:23:01 UTC

Severity: normal

Found in version 31.0.50

Done: Stefan Kangas <stefankangas <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Lin Sun <sunlin7 <at> hotmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>, Po Lu <luangruo <at> yahoo.com>
Cc: "76805 <at> debbugs.gnu.org" <76805 <at> debbugs.gnu.org>
Subject: bug#76805: 31.0.50; [PATH] Fix Emacs uses 100% CPU after switching graphic frame to inactive
Date: Thu, 13 Mar 2025 17:52:29 +0000
[Message part 1 (text/plain, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
Sent: Thursday, March 13, 2025 02:43 PM
To: Po Lu <luangruo <at> yahoo.com>

> From: Po Lu <luangruo <at> yahoo.com>
> Cc: sunlin7 <at> hotmail.com,  76805 <at> debbugs.gnu.org
> Date: Thu, 13 Mar 2025 20:03:09 +0800
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> >> From: Po Lu <luangruo <at> yahoo.com>
> >> Cc: Lin Sun <sunlin7 <at> hotmail.com>,  76805 <at> debbugs.gnu.org
> >> Date: Sun, 09 Mar 2025 21:58:38 +0800
> >>
> >> Eli Zaretskii <eliz <at> gnu.org> writes:
> >>
> >> >> From: Lin Sun <sunlin7 <at> hotmail.com>
> >> >> Date: Fri, 7 Mar 2025 08:17:31 +0000
> >> >>
> >> >> Emacs sometimes takes 100% CPU after I switch emacs graphic frame to inactive.
> >> >> This patch will fix the issue.
> >> >>
> >> >> Reproduce steps:
> >> >> 1. Build Emacs with gtk3 and xinput2 on Ubuntu 22.04.
> >> >> 2. (setq x-use-fast-mouse-position 'really-fast) in early-init.el.
> >> >> 3. On a windows-host start a X11 server, and ssh -XY
> >> >> ubuntu-host:emacs to Start emacs with X11 forwared-frame, and open
> >> >> emacs "src/eval.c", enable the show-paren-mode in emacs.
> >> >> 4. On the windows host, move the mouse out of emacs-graphic frame
> >> >> first, the move the mouse in emacs-graphic frame and click.
> >> >> 5. On the windows host, switch the emacs-graphic frame to inactive (switch a native windows app to active).
> >> >> Repeat steps 4,5 sometimes the emacs will takes 100% CPU.
> >> >>
> >> >> The issue won't happen if set the x-use-fast-mouse-position to `t` or `nil` instead of the 'really-fast.
> >> >>
> >> >> According to my debugging and tracking the variables, I found that
> >> >> 1. the xterm.c:21710 will let "dpyinfo->last_mouse_motion_frame = NULL;", then
> >> >> 2. later calls `x_fast_mouse_position` will no chance to let "XX->mouse_moved = false", then
> >> >> 3. the function some_mouse_moved() in keyboard.c always return true; then
> >> >> 4. the function timer_start_idle() in keyboard.c will be called again and again, which leads 100% CPU usage.
> >> >>
> >> >> As contrast when setting the x-use-fast-mouse-position to `t`, the
> >> >> "XX->mouse_moved = false;" always run, then the issue won't happen.
> >> >>
> >> >> Please help review the patch. Thanks
> >> >
> >> > Thanks.
> >> >
> >> > Po Lu, any comments?
> >>
> >> I'll investigate this issue tomorrow.  Thank you for reporting it.
> >
> > Did you have a chance to look into this?
>
> I fixed it but neglected to report the fact here, my apologies.

> Thanks, so should this bug be closed now?

I found commit now: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=ab5bfcebddf4c0613ef352231628d4034c8cb178 .

Thank you all of you. Please feel free to close the ticket.
[Message part 2 (text/html, inline)]

This bug report was last modified 67 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.