All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qiling Zhu <kmatzkaczor244@gmail.com>
To: "Henrique de Moraes Holschuh" <hmh@hmh.eng.br>,
	"Hans de Goede" <hansg@kernel.org>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Mark Pearson <mpearson-lenovo@squebb.ca>,
	 "Derek J. Clark" <derekjohn.clark@gmail.com>,
	platform-driver-x86@vger.kernel.org,
	 ibm-acpi-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: [BUG] thinkpad_acpi: intermittent boot hang in hotkey_poll_setup on ThinkPad X1 Carbon Gen 14
Date: Sat, 3 Oct 2026 18:19:50 +0800	[thread overview]
Message-ID: <asDVVtAXt8YVbZ3C@ThinkPad> (raw)

Hi,

I am seeing an intermittent boot hang in thinkpad_acpi hotkey polling
on a Lenovo ThinkPad X1 Carbon Gen 14 (machine type 21V8A028CD).

I originally encountered this while testing linux-next kernels for an
unrelated camera issue.

The problem has occurred with at least:

  next-20260928
  next-20261002

When it happens, boot stalls and many udev/modprobe tasks end up blocked
in async_synchronize_cookie_domain(). One of the blocked tasks had the
following relevant stack:

  hotkey_poll_setup [thinkpad_acpi]
  hotkey_inputdev_open [thinkpad_acpi]
  input_open_device
  kbd_connect
  ...
  tpacpi_pdriver_probe [thinkpad_acpi]
  ...
  thinkpad_acpi_module_init [thinkpad_acpi]

The failure is intermittent. The same kernel can sometimes boot
successfully, while another boot hangs.

I tested two workarounds:

1. Blacklisting thinkpad_acpi allows the machine to boot normally.

2. More importantly, keeping thinkpad_acpi enabled but building the
   same kernel with only

     # CONFIG_THINKPAD_ACPI_HOTKEY_POLL is not set

   also makes boot reliable in my testing.

For example, with next-20261002 I built two otherwise equivalent
kernels:

  CONFIG_THINKPAD_ACPI=m
  CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y

and

  CONFIG_THINKPAD_ACPI=m
  # CONFIG_THINKPAD_ACPI_HOTKEY_POLL is not set

The first configuration can intermittently hang during boot. With only
HOTKEY_POLL disabled, the machine boots normally into KDE/Wayland and
thinkpad_acpi is loaded:

  thinkpad_acpi 196608 0

The usual ThinkPad hotkeys I have tried also still appear to work
normally with HOTKEY_POLL disabled.

A normal Arch Linux 7.2.8-arch1-2 kernel boots reliably on the same
machine.

This therefore appears to be specifically related to the
thinkpad_acpi hotkey polling path rather than thinkpad_acpi as a whole.

The issue is intermittent, so I have not yet bisected it to a specific
commit. I still have persistent journal logs from both successful and
failed boots, and can provide complete task stacks or test additional
debug patches if useful.

Hardware:

  Lenovo ThinkPad X1 Carbon Gen 14
  Machine type: 21V8A028CD
  Intel Core Ultra 7 356H / Panther Lake

Thanks,
Qiling Zhu

                 reply	other threads:[~2026-10-03 10:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=asDVVtAXt8YVbZ3C@ThinkPad \
    --to=kmatzkaczor244@gmail.com \
    --cc=derekjohn.clark@gmail.com \
    --cc=hansg@kernel.org \
    --cc=hmh@hmh.eng.br \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpearson-lenovo@squebb.ca \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.