Thread (5 messages) 5 messages, 3 authors, 2021-12-04

Re: [GIT PULL] ACPI fixes for v5.16-rc3

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-12-04 20:15:41
Also in: linux-acpi, lkml

On Sat, Dec 4, 2021 at 6:04 PM Linus Torvalds
[off-list ref] wrote:
On Fri, Nov 26, 2021 at 11:38 AM Rafael J. Wysocki [off-list ref] wrote:
quoted
 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 acpi-5.16-rc3
Hmm. This may be unrelated, but I don't think I've seen this before..
No, this is not related.  It shows up because of the drain_workqueue()
in __acpi_ec_flush_work().
On my laptop, I get

  WARNING: CPU: 4 PID: 95940 at kernel/workqueue.c:1441 __queue_work+0x2f9/0x3b0
  Workqueue: kec_query acpi_ec_event_processor
  ..
  Call Trace:
   <TASK>
   queue_work_on+0x20/0x30
So this tries to add work to ec_wq while it is draining AFAICS.
   advance_transaction+0x1a1/0x500
   acpi_ec_transaction+0x15c/0x410
   acpi_ec_space_handler+0xd2/0x270
   acpi_ev_address_space_dispatch+0x216/0x2a3
   ? acpi_ec_resume+0x20/0x20
   acpi_ex_access_region+0x1dc/0x255
   ? acpi_os_wait_semaphore+0x48/0x70
   acpi_ex_field_datum_io+0xfd/0x178
   acpi_ex_read_data_from_field+0x12e/0x171
   acpi_ex_resolve_node_to_value+0x1fe/0x281
   acpi_ds_evaluate_name_path+0x75/0xe9
   acpi_ds_exec_end_op+0x8f/0x411
   acpi_ps_parse_loop+0x495/0x5bc
   acpi_ps_parse_aml+0x94/0x2c2
   acpi_ps_execute_method+0x15e/0x193
   acpi_ns_evaluate+0x1c6/0x25d
   acpi_evaluate_object+0x12e/0x226
   acpi_ec_event_processor+0x63/0x90
   process_one_work+0x217/0x3c0

and it seems to be happening at resume time.

This was when running a51e3ac43ddb, so not the very latest git tree,
but recent.

Maybe I've missed a report of this?
It's not been reported or at least I can't recall that, but it is not
a new issue.

There is a commit to address this in my linux-next branch:

https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?h=linux-next&id=4a9af6cac050dce2e895ec3205c4615383ad9112

but it is interesting that you can reproduce it.  I thought it would
be rather theoretical.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help