From: Dirk Behme <dirk.behme@de.bosch.com>
To: Michael Turquette <mturquette@baylibre.com>,
Julien Grall <julien.grall@arm.com>,
linux-arm-kernel@lists.infradead.org,
Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org
Cc: xen-devel@lists.xenproject.org,
Stefano Stabellini <sstabellini@kernel.org>,
Stephen Boyd <sboyd@codeaurora.org>,
linux-clk@vger.kernel.org
Subject: Re: [PATCH v2] xen/arm: register clocks used by the hypervisor
Date: Thu, 7 Jul 2016 09:32:34 +0200 [thread overview]
Message-ID: <dad950db-4c02-e5a2-0ce9-682a40cd12d7__47777.1160811701$1467876818$gmane$org@de.bosch.com> (raw)
In-Reply-To: <146783774807.35356.6362595927321996311@resonance>
Hi Michael,
On 06.07.2016 22:42, Michael Turquette wrote:
> Hi Julien,
>
> Quoting Julien Grall (2016-07-06 06:10:52)
>> On 06/07/16 02:34, Michael Turquette wrote:
>>> Hi!
>>
>> Hello Michael,
>>
>>> Quoting Dirk Behme (2016-06-30 03:32:32)
>>>> Some clocks might be used by the Xen hypervisor and not by the Linux
>>>> kernel. If these are not registered by the Linux kernel, they might be
>>>> disabled by clk_disable_unused() as the kernel doesn't know that they
>>>> are used. The clock of the serial console handled by Xen is one
>>>> example for this. It might be disabled by clk_disable_unused() which
>>>> stops the whole serial output, even from Xen, then.
>>>
>>> This whole thread had me confused until I realized that it all boiled
>>> down to some nomenclature issues (for me).
>>>
>>> This code does not _register_ any clocks. It simply gets them and
>>> enables them, which is what every other clk consumer in the Linux kernel
>>> does. More details below.
>>>
>>>>
>>>> Up to now, the workaround for this has been to use the Linux kernel
>>>> command line parameter 'clk_ignore_unused'. See Xen bug
>>>>
>>>> http://bugs.xenproject.org/xen/bug/45
>>>
>>> clk_ignore_unused is a band-aid, not a proper medical solution. Setting
>>> that flag will not turn clocks on for you, nor will it guarantee that
>>> those clocks are never turned off in the future. It looks like you
>>> figured this out correctly in the patch below but it is worth repeating.
>>>
>>> Also the new CLK_IS_CRITICAL flag might be of interest to you, but that
>>> flag only exists as a way to enable clocks that must be enabled for the
>>> system to function (hence, "critical") AND when those same clocks do not
>>> have an accompanying Linux driver to consume them and enable them.
>>
>> I don't think we want the kernel to enable the clock for the hypervisor.
>> We want to tell the kernel "don't touch at all to this clock, it does
>> not belong to you".
>
> But the patch *does* touch the clock from the kernel. It enables the
> clock via a call clk_prepare_enable. I'm utterly confused.
Maybe we need some advice here :)
I've used clk_prepare_enable() 'just' to get the enable count incremented
http://lxr.free-electrons.com/source/drivers/clk/clk.c#L751
Because it's my understanding that enable_count is needed to prevent
clk_disable_unused() from disabling the clock.
If there is an other / better / correct way to achieve that, please let
us know.
I've had a look to use the CLK_IGNORE_UNUSED flag, too. But couldn't
find a function exported by the clock framework to set that flag (?)
Best regards
Dirk
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-07-07 7:32 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1467282752-14053-1-git-send-email-dirk.behme@de.bosch.com>
2016-06-30 14:21 ` [PATCH v2] xen/arm: register clocks used by the hypervisor Mark Rutland
[not found] ` <20160630142136.GE20363@leverpostej>
2016-06-30 14:56 ` Dirk Behme
[not found] ` <57753328.9060300@gmail.com>
2016-06-30 15:18 ` Mark Rutland
2016-06-30 15:33 ` Julien Grall
2016-07-05 13:53 ` Stefano Stabellini
[not found] ` <alpine.DEB.2.10.1607051449370.2575@sstabellini-ThinkPad-X260>
2016-07-05 13:54 ` Julien Grall
[not found] ` <577BBC1A.8020209@arm.com>
2016-07-05 14:02 ` Julien Grall
2016-07-05 14:04 ` Stefano Stabellini
[not found] ` <alpine.DEB.2.10.1607051456410.2575@sstabellini-ThinkPad-X260>
2016-07-05 14:08 ` Julien Grall
[not found] ` <577BBF69.8010809@arm.com>
2016-07-05 14:37 ` Stefano Stabellini
2016-07-06 1:34 ` Michael Turquette
[not found] ` <146776885213.35356.11565744417822933094@resonance>
2016-07-06 13:10 ` Julien Grall
[not found] ` <577D035C.7090504@arm.com>
2016-07-06 13:16 ` Stefano Stabellini
[not found] ` <alpine.DEB.2.10.1607061412370.26575@sstabellini-ThinkPad-X260>
2016-07-06 13:26 ` Julien Grall
2016-07-06 13:48 ` Mark Rutland
2016-07-06 20:42 ` Michael Turquette
[not found] ` <146783774807.35356.6362595927321996311@resonance>
2016-07-07 7:32 ` Dirk Behme [this message]
[not found] ` <dad950db-4c02-e5a2-0ce9-682a40cd12d7@de.bosch.com>
2016-07-08 2:50 ` Michael Turquette
[not found] ` <146794625655.73491.13497001485518368066@resonance>
2016-07-08 5:51 ` Dirk Behme
[not found] ` <373bf006-1a5e-0b2b-278d-d5ec0d8737fd@de.bosch.com>
2016-07-08 9:21 ` Julien Grall
2016-07-08 6:48 ` Dirk Behme
[not found] ` <20733b68-9529-bdb9-2a7d-576c8193f15c@de.bosch.com>
2016-07-08 9:35 ` Julien Grall
[not found] <1467701423-31138-1-git-send-email-dirk.behme@de.bosch.com>
2016-07-05 10:39 ` Mark Rutland
[not found] ` <20160705103917.GC20478@leverpostej>
2016-07-05 10:45 ` Dirk Behme
[not found] ` <b2431af6-f415-41db-5651-8cb8d3b08822@de.bosch.com>
2016-07-05 11:07 ` Mark Rutland
[not found] ` <20160705110736.GD20478@leverpostej>
2016-07-06 23:38 ` Michael Turquette
2016-07-05 6:50 Dirk Behme
-- strict thread matches above, loose matches on Subject: below --
2016-06-30 10:32 Dirk Behme
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='dad950db-4c02-e5a2-0ce9-682a40cd12d7__47777.1160811701$1467876818$gmane$org@de.bosch.com' \
--to=dirk.behme@de.bosch.com \
--cc=devicetree@vger.kernel.org \
--cc=julien.grall@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mturquette@baylibre.com \
--cc=sboyd@codeaurora.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/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;
as well as URLs for NNTP newsgroup(s).