From: Ingo Molnar <mingo@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: Robert Richter <rric@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Vince Weaver <vince@deater.net>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH] perf/stat: Add --disable-hwdt
Date: Tue, 7 Feb 2017 08:25:12 +0100 [thread overview]
Message-ID: <20170207072512.GB18584@gmail.com> (raw)
In-Reply-To: <20170206132349.bl6qbpjflez3lpkp@pd.tnic>
* Borislav Petkov <bp@alien8.de> wrote:
> On Mon, Feb 06, 2017 at 02:18:32PM +0100, Robert Richter wrote:
>
> > Isn't there the danger the previous watchdog state is never restored if for
> > some reason perf got killed? So maybe have some other task running that
> > restores it once perf is gone.
>
> Currently, I'm restoring it in the atexit() sighandler. Isn't that always
> called?
Normally yes, but it's not guaranteed as atexit() is all user-space, SIGKILL (or
OOM) or a straight exit (or a crash in the exit handler itself) will cause it to
not run.
But there's only so much we can do about that, the /proc/sys API is fundamentally
lossy in that regard. We'd have to add much more involved kernel support to
guarantee that the watchdog state is restored.
A way to do it would be create a new /proc/sys/kernel/watchdog_disable_file that
disables that watchdog while it's _open_. When a task exits and the kernel
automatically closes the file, the watchdog is re-enabled again. (Or the process
itself can close the file too.)
This method would also nest properly and would handle multi-processes races
correctly: for example if a script runs perf as root, and root uses 'perf top',
the two should not race and the hardware watchdog should not end up being
disabled...
Thanks,
Ingo
next prev parent reply other threads:[~2017-02-07 7:25 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-06 12:15 [RFC PATCH] perf/stat: Add --disable-hwdt Borislav Petkov
2017-02-06 12:22 ` Ingo Molnar
2017-02-06 12:41 ` Borislav Petkov
2017-02-06 12:44 ` Ingo Molnar
2017-02-06 12:49 ` Borislav Petkov
2017-02-06 13:18 ` Robert Richter
2017-02-06 13:23 ` Borislav Petkov
2017-02-07 7:25 ` Ingo Molnar [this message]
2017-02-07 10:54 ` Borislav Petkov
2017-02-07 15:06 ` Borislav Petkov
2017-02-11 17:03 ` Borislav Petkov
2017-02-11 17:59 ` Ingo Molnar
2017-02-11 18:32 ` Borislav Petkov
2017-02-11 20:41 ` Ingo Molnar
2017-03-07 7:21 ` [tip:perf/core] perf stat: Issue a HW watchdog disable hint tip-bot for Borislav Petkov
2017-02-06 14:23 ` [RFC PATCH] perf/stat: Add --disable-hwdt Vince Weaver
2017-02-06 17:02 ` Borislav Petkov
2017-02-07 1:08 ` Borislav Petkov
2017-02-07 1:09 ` [PATCH 1/2] tools/lib/api/fs: Add procfs int read/write helpers Borislav Petkov
2017-02-07 1:43 ` Arnaldo Carvalho de Melo
2017-02-07 10:30 ` Borislav Petkov
2017-02-07 15:00 ` Arnaldo Carvalho de Melo
2017-02-07 15:08 ` Borislav Petkov
2017-02-07 15:34 ` Arnaldo Carvalho de Melo
2017-02-07 1:10 ` [PATCH 2/2] perf stat: Disable HW watchdog around a perf stat session Borislav Petkov
2017-02-07 1:45 ` Arnaldo Carvalho de Melo
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=20170207072512.GB18584@gmail.com \
--to=mingo@kernel.org \
--cc=acme@kernel.org \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=rric@kernel.org \
--cc=vince@deater.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox