From: Suzuki K Poulose <suzuki.poulose@arm.com>
To: Kim Phillips <kim.phillips@arm.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Leo Yan <leo.yan@linaro.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Alex Williamson <alex.williamson@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
David Howells <dhowells@redhat.com>,
Eric Auger <eric.auger@redhat.com>,
Eric Biederman <ebiederm@xmission.com>,
Gargi Sharma <gs051095@gmail.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Kefeng Wang <wangkefeng.wang@huawei.com>,
Kirill Tkhai <ktkhai@virtuozzo.com>,
Mike Rapoport <rppt@linux.vnet.ibm.com>,
Oleg Nesterov <oleg@redhat.com>,
Pavel Tatashin <pasha.tatashin@oracle.com>,
Rik van Riel <riel@redhat.com>,
Robin Murphy <robin.murphy@arm.com>,
Russell King <linux@armlinux.org.uk>,
Thierry Reding <treding@nvidia.com>, Todd Kjos <tkjos@google.com>,
Randy Dunlap <rdunlap@infradead.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 05/14] coresight: get/put module in coresight_build/release_path
Date: Fri, 8 Jun 2018 10:22:34 +0100 [thread overview]
Message-ID: <a637db36-4b82-d744-677e-0b4555201a80@arm.com> (raw)
In-Reply-To: <20180607164747.7e4bb30f69a1fb4c160b6ef1@arm.com>
On 06/07/2018 10:47 PM, Kim Phillips wrote:
> On Thu, 7 Jun 2018 22:10:07 +0100
> Suzuki K Poulose <suzuki.poulose@arm.com> wrote:
>
>> On 06/07/2018 06:13 PM, Kim Phillips wrote:
>>> I'm going to assume the series is still valid after this discussion,
>>> since technically just this patch can get dropped, and the user is able
>>> to shoot themselves in the foot.
>>
>> That doesn't mean the kernel can panic() if the user decided to unload
>> the module while the trace session is in progress. It only means that
>> the trace session could be stopped in between in the worst case. But
>> nothing more harmful to the system.
Kim,
>
> FWIW, I didn't see the kernel panic in my basic tests; just some bad
> accesses: the new remove functions take care of cleaning up most items,
> and most drivers still depend on the links and sinks (funnel,
> replicator) drivers, so they can't be upset too bad.
Bad accesses are still bad. The bad access could trigger an Oops for
e.g, or could even corrupt the other parts of the kernel if we try
to access a memory that is free'd (and reallocated to somebody else).
So, the point is there are issues with the series which we know for
sure from code analysis. It may take different forms to show up at
runtime.
>
>>> This series is for development purposes, after all.
>>
>> Do you mean that this series is for internal development purposes and
>> not upstream ? Making the drivers modular are always helpful, especially
>
> no, I'm posting them for upstream review because I'd like them upstream.
>
>> for something related to tracing, that allows the module to be unloaded
>> after use. So, it would be good to have this series in, but in a manner
>> which is usable and doesn't cause harm to the overall system usage.
>>
>> I think the summary of the discussion is that we need more robust code
>> to handle the situation, which also allows unloading the modules without
>> any trouble.
>
> Trouble's relative. My point was since the series is going to be used
> mainly by developers testing their code, they already prepare for, and
> expect badness to occur anyway. Greg's point isn't lost here, and in
Making something modular is not really just for the use of developers.
There are and will be other users for a device driver as a module and
it is a fundamental feature people expect (especially in the enterprise
world, where there is one kernel which builds most of the stuff as
module to let the users pick the individual drivers as they need).
So, at the kernel driver you can't really be sure, if the user is
actually aware of the "developer" only mode and he knows that we can
crash the kernel.
> my interpretation, his review of this patch was that it was in the
> wrong direction of safety: it made things unnecessarily too safe, up
> front, and that items relative to the perf core should strive to adhere
One of the areas of improvement towards the "modern" behavior is failing
the activation of the trace schedule, when a component in the path has
been removed when we go through coresight_enable_path(). Right now, we
create a path and then we do enable_path() and disable_path() around the
trace schedules and the path is destroyed only at pmu->free_aux(). With
the current patch, we hold the reference to the device/driver throughout
the duration of the life time of the tracing, even when the tracing
may be disabled in between.
I think, if we get to that point, we should be at the best we can reach
towards the expected behavior. But having said that, it is indeed tricky
to get that. May be we could play a little bit with the refcounting on
csdev and check if the refcount is only held by the number of paths this
component is part of (needs more thought).
Suzuki
next prev parent reply other threads:[~2018-06-08 9:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 21:06 [PATCH v4 00/14] coresight: allow to build components as modules Kim Phillips
2018-06-05 21:06 ` [PATCH v4 01/14] coresight: cpu_debug: minor module fixups Kim Phillips
2018-06-06 8:25 ` Greg Kroah-Hartman
2018-06-05 21:06 ` [PATCH v4 02/14] coresight: use IS_ENABLED for CONFIGs that may be modules Kim Phillips
2018-06-05 21:06 ` [PATCH v4 03/14] coresight: move shared barrier_pkt[] to coresight_priv.h Kim Phillips
2018-06-06 8:27 ` Greg Kroah-Hartman
2018-06-05 21:07 ` [PATCH v4 04/14] coresight: export coresight_timeout and etm_perf_symlink Kim Phillips
2018-06-05 21:07 ` [PATCH v4 05/14] coresight: get/put module in coresight_build/release_path Kim Phillips
2018-06-05 21:14 ` Suzuki K Poulose
2018-06-06 8:24 ` Greg Kroah-Hartman
2018-06-06 9:46 ` Suzuki K Poulose
2018-06-06 20:55 ` Kim Phillips
2018-06-07 8:34 ` Greg Kroah-Hartman
2018-06-07 9:04 ` Suzuki K Poulose
2018-06-07 9:13 ` Greg Kroah-Hartman
2018-06-07 9:32 ` Suzuki K Poulose
2018-06-07 9:34 ` Suzuki K Poulose
2018-06-07 9:53 ` Greg Kroah-Hartman
2018-06-07 10:07 ` Suzuki K Poulose
2018-06-07 17:13 ` Kim Phillips
2018-06-07 21:10 ` Suzuki K Poulose
2018-06-07 21:40 ` Mathieu Poirier
2018-06-07 21:47 ` Kim Phillips
2018-06-07 21:59 ` Mathieu Poirier
2018-06-08 9:22 ` Suzuki K Poulose [this message]
2018-06-07 9:43 ` Suzuki K Poulose
2018-06-05 21:07 ` [PATCH v4 06/14] coresight: allow stm to be built as a module Kim Phillips
2018-06-05 21:07 ` [PATCH v4 07/14] coresight: allow dynamic-replicator " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 08/14] coresight: allow etm3x " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 09/14] coresight: allow etm4x " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 10/14] coresight: allow etb " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 11/14] coresight: allow tpiu " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 12/14] coresight: allow tmc " Kim Phillips
2018-06-05 21:07 ` [PATCH v4 13/14] coresight: allow funnel and replicator drivers to be built as modules Kim Phillips
2018-06-05 21:07 ` [PATCH v4 14/14] coresight: allow the coresight core driver to be built as a module Kim Phillips
2018-06-06 8:33 ` Greg Kroah-Hartman
2018-06-06 9:57 ` Suzuki K Poulose
2018-06-07 21:46 ` Mathieu Poirier
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=a637db36-4b82-d744-677e-0b4555201a80@arm.com \
--to=suzuki.poulose@arm.com \
--cc=akpm@linux-foundation.org \
--cc=alex.williamson@redhat.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=dhowells@redhat.com \
--cc=ebiederm@xmission.com \
--cc=eric.auger@redhat.com \
--cc=geert+renesas@glider.be \
--cc=gregkh@linuxfoundation.org \
--cc=gs051095@gmail.com \
--cc=kim.phillips@arm.com \
--cc=ktkhai@virtuozzo.com \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mathieu.poirier@linaro.org \
--cc=oleg@redhat.com \
--cc=pasha.tatashin@oracle.com \
--cc=rdunlap@infradead.org \
--cc=riel@redhat.com \
--cc=robin.murphy@arm.com \
--cc=rppt@linux.vnet.ibm.com \
--cc=tkjos@google.com \
--cc=treding@nvidia.com \
--cc=wangkefeng.wang@huawei.com \
/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
all inboxes | Powered by JetHome®