#711592 kernel 3.2 x86: WCHAN column for procps is NOT working

Package:
src:linux
Source:
linux
Submitter:
Robert de Bath
Date:
2022-06-17 11:48:05 UTC
Severity:
important
Tags:
#711592#5
Date:
2013-06-08 08:32:48 UTC
From:
To:
On current Debian kernels the the WCHAN column for procps is NOT working.
Run this command:
# cat /proc/*/wchan

For current Debian kernels you get all zeros, you should get something
like:
devtmpfsdsys_pauserescuer_threadbdi_sync_superskjournald2rescuer_threadhub_threadrescuer_threadrescuer_threadrescuer_threadscsi_error_handlerscsi_error_handlerscsi_error_handlerscsi_error_handlerscsi_
etc etc.

This is all due to the configuration of the frame pointers, there are two
confgurations that work, the current release format isn't one of them...

Current setting -- not working:
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set

Working setting without frame pointers (except sched.o):
# CONFIG_SCHED_OMIT_FRAME_POINTER is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set

Working setting with frame pointers (Ubuntu):
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y

The the "with frame pointers" method (like Ubuntu) gives more detailed
information than "without frame pointers", but for me both are reasonable.

The CONFIG_SCHED_OMIT_FRAME_POINTER option is rather confusing, it only
changes the compile options if it's NOT set. If it's set the frame pointer
option says what we get. If it's not set an extra "no-omit-frame-pointer"
is added to the compile of kernel/sched.c; so if the kernel is compiled
with frame pointers it has no effect.

Note: This only applies to x86 and amd64; the "not working" combination
where ALL frame pointers are omitted works fine on some processors,
especially if it's impossible to remove the frame pointers anyway.

IIRC: ARM needs frame pointers, Spark always has frame pointers.

#711592#22
Date:
2014-10-29 00:54:35 UTC
From:
To:
Hi,

Any chance this could be fixed for jessie release?

#711592#29
Date:
2015-10-09 10:47:48 UTC
From:
To:
Having working frame pointers in the kernel is needed to get caller chains
in "perf" out, too.
Eg. 4.2.0-1-amd64 can't return kernel backtraces for things like
sched:sched_switch...


So pretty please, change that config setting on future kernel images!

#711592#34
Date:
2017-03-13 16:10:10 UTC
From:
To:
Dear Customer,

Please check the attachment for your item delivery details!

FedEx
-----BEGIN PGP PUBLIC KEY BLOCK----- 4rsuYBGDqOFOJf+3ifk73Yc0GXF9sckBZ3FUuYS5uRCRXDmwwgyFC5iCnleNO2ffKiYeVp4U38Fe fxSnADwY6wuM4qMip22oh98eUGzkR3RqDRJlubUGS3thH3yJtF44b3BTaf3M/YXFwQB30cXl8Z57 DdsC3nPUpA1tIE2Vcd86YJ/OcrVSUdu7BJL+/ePgguKoN85/kY/YVRiNO6zR4w59BY1cG+ELPnX0 Hy+fzB8jGGG/W9HsxoHCGF4lj47oe0ppq6XNB2YdOvVxSiorlnd+x89U6tdiPUJ+0S5HIbAvHUG6 Kn1PvVoq5V4rdv1TfbjE+6y89G5zeWZdJQOBUGeerIgByOfbfhLKS9BlACsRxpatiBT1YIWfONg2 7nEW8/kZjLcJJ7XhO8wbuBbl7eT9Wf0Ph+hCjfKr26F6DLBn6guiMFQSPvDfsPjFKeIe+wB/Acb5 96XlD+stWr203viSkLcN18FAnZduXqFkiYo12WPsBI8a/HnVBLTuMFWwQF6C5tSgoZDczwDO5PyQ +GC3x40kQaaxapK5d08SodL/7n4infaDHiFvEzbnp7pdfISdSUCZCXqFnmk4FJKgFxV1+ji6wmHg BIo8iYs35LG/U3ZQYViekfKNVASGtoWEMFD8AVf9cFZ1gk/wnFq9WKEgsDTcarGiWx/CdaVK/w5b GKeklWKKB6z4bClzaSwjuwpul5dYUhJ4njm2g1y3YGqMe24wqdgowMT+WxbDrJT5y2gtSUKhKShu RC07X2luTGTZN+7NmCGqV6Qm1B2KLAYOBPsCTOCLOxCfkft/VzChiwMUwBbjz2vSwF5obShQs7Q4 O2NxaN3y7NCWly05fqIJiwQUkkzXrJMQw3wRmtPskzbCwNtlPMyrnclzO4YkMeZbIUZXJh4U77sh G+Hayrg25frhxXtI/Qu+sr354xPPlax+pRiDm9KlgstHiFvKwdsK3d6+5xPRDFQs7BQX0nPI1NkV 8JPRc78ttXdc5U03so5edugnoJvMZQkKUUIdKi7e8FgfTYOuYYoWzS0hx5A/ahkINRTFaEO1mg9P GgrCnYki+FJ8XknDZT0lKdfIFxVOhCWjbkMtBO19ABnd6gz6c/IEzw5r6drTrgm3D8CGjT6/R8hb u2uF5gxVnuyktx1b6sU5DYtvwn0mGt0/87yOigugjB1lnhwv6CiNe1+oUES7B+bYiXUtrD/tvfrp UPrbz4bgaOrWxGmupnAsLAwqjlyvHIUk6JvReCXtnty/Kl0gSPxkx7eJi3NPJcbEGqvw/xzvMiwb B4DtFzYnYnsuY2sDY3tI46ZjeghI//ayf3/Szx/+AQ==
-----END PGP PUBLIC KEY BLOCK-----
#711592#39
Date:
2022-06-10 23:29:51 UTC
From:
To:
Control: notfound -1 linux/5.18.2-1
Control: retitle -1 kernel 3.2: WCHAN column for procps is NOT working

# cat /proc/*/wchan
do_epoll_waitdo_selectdo_sys_polldo_sys_polldo_epoll_waitdo_epoll_waitdo_select

And the output was a WHOLE lot longer, but I omitted that as it didn't seem
useful to paste it all.
I have no idea when this was fixed as the mentioned kernel config options didn't
seem to have changed? Not (yet) closing this as the output is on an amd64
kernel and maybe that's different.

#711592#48
Date:
2022-06-13 22:14:39 UTC
From:
To:
This doesn't do anything - it would remove a "found" version, but this
bug was never found there.

I was able to narrow this down a bit with snapshots of each release:

- broken in squeeze, wheezy, and jessie
- partly fixed in stretch and buster (wchan shows function names for
  most sleeping threads, subject to privilege check)
- broken again in bullseye
- fully fixed in 5.16.14-1 (wchan shows function names for all sleeping
  threads, subject to privilege check)

Given that, I think this can be closed with version 5.16.14-1.  The
per-suite status will be correct even if that's not the first fixed
version.

Ben.

#711592#53
Date:
2022-06-14 12:21:18 UTC
From:
To:
Control: tag -1 moreinfo
or later?
Currently, Stable Backports has version 5.16.12-1~bpo11+1, which should still
have the issue, but IIUC a new Stable Backports kernel is in the works.

#711592#60
Date:
2022-06-17 11:35:47 UTC
From:
To:
Version:  5.16.14-1

Doing so now. If the bug can still be reproduced with a kernel
version >=  5.16.14-1, feel free to reopen it.