Skip to content

fs: Improve eventpoll logging to stop indicting timerfd#1891

Merged
jerpelea merged 1 commit intosonyxperiadev:aosp/LE.UM.2.3.2.r1.4from
ix5:timerfd
Jan 24, 2019
Merged

fs: Improve eventpoll logging to stop indicting timerfd#1891
jerpelea merged 1 commit intosonyxperiadev:aosp/LE.UM.2.3.2.r1.4from
ix5:timerfd

Conversation

@ix5
Copy link
Copy Markdown

@ix5 ix5 commented Jan 24, 2019

cherry-picked from https://review.lineageos.org/c/LineageOS/android_kernel_xiaomi_jason/+/236442

timerfd doesn't create any wakelocks; eventpoll can, and is creating the wakelocks we see called "[timerfd]". eventpoll creates two kinds of wakelocks: a single top-level lock associated with the eventpoll fd itself, and one additional lock for each fd it is polling that needs such a lock (e.g. those using EPOLLWAKEUP).
Current code names the per-fd locks using the undecorated names of the fds' associated files (hence "[timerfd]"), and is naming the top-level lock after the PID of the caller and the name of the file behind the first fd for which a per-fd lock is created.
To make things clearer, the top-level lock is now named using the caller PID and an "epollfd" designation, while the per-fd locks are also named with the caller's PID (to associate them with the top-level lock) and their respective fds' file names.

@kholk
Copy link
Copy Markdown
Contributor

kholk commented Jan 24, 2019

Harmless and makes debugging life easier.

MERGE

@ix5
Copy link
Copy Markdown
Author

ix5 commented Jan 24, 2019

NOOOO
I haven't even compiled this yet!

fs/timerfd.c Outdated
{
int ufd;
struct timerfd_ctx *ctx;
enum alarmtimer_type type;
Copy link
Copy Markdown
Contributor

@kholk kholk Jan 24, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type: unused variable

@kholk
Copy link
Copy Markdown
Contributor

kholk commented Jan 24, 2019

There's only an unused variable issue to solve, then it's fine.

timerfd doesn't create any wakelocks; eventpoll can, and is creating the
wakelocks we see called "[timerfd]".  eventpoll creates two kinds of
wakelocks: a single top-level lock associated with the eventpoll fd
itself, and one additional lock for each fd it is polling that needs such
a lock (e.g. those using EPOLLWAKEUP).  Current code names the per-fd
locks using the undecorated names of the fds' associated files (hence
"[timerfd]"), and is naming the top-level lock after the PID of the caller
and the name of the file behind the first fd for which a per-fd lock is
created.  To make things clearer, the top-level lock is now named using
the caller PID and an "epollfd" designation, while the per-fd locks are
also named with the caller's PID (to associate them with the top-level
lock) and their respective fds' file names.

Bug: 63622255
Bug: 38042165
Test: Ran on device and observed new wakelock naming in bugreport, dumpsys
batterystats, /d/tracing/trace, and d/wakeup_reasons.
Change-Id: I32bfe5fe6766bb569329a450cc7163d52d59ed34
Signed-off-by: Kelly Rossmoyer <krossmo@google.com>
Signed-off-by: ix5 <ix5@users.noreply.github.com>
@ix5
Copy link
Copy Markdown
Author

ix5 commented Jan 24, 2019

Fixed unused var, compiled, booted, works.

@ix5 ix5 changed the title [DONOTMERGE] fs: Improve eventpoll logging to stop indicting timerfd fs: Improve eventpoll logging to stop indicting timerfd Jan 24, 2019
@kholk
Copy link
Copy Markdown
Contributor

kholk commented Jan 24, 2019

Now there's no excuse for not merging it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants