From: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Kevin Hilman <khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
Thierry Reding
<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Geert Uytterhoeven
<geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC PATCH 1/2] genirq: Add runtime resume/suspend support for IRQ chips
Date: Fri, 13 Nov 2015 09:01:42 +0000 [thread overview]
Message-ID: <5645A6F6.6020202@nvidia.com> (raw)
In-Reply-To: <7hio56dctz.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
On 12/11/15 23:20, Kevin Hilman wrote:
> Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> writes:
>
>> Some IRQ chips may be located in a power domain outside of the CPU subsystem
>> and hence will require device specific runtime power management. Ideally,
>> rather than adding more functions to the irq_chip_ops function table, using
>> existing chip functions such as irq_startup/shutdown or
>> irq_request/release_resources() would be best. However, these existing chip
>> functions are called in the context of a spinlock which is not ideal for
>> power management operations that may take some time to power up a domain.
>>
>> Two possible solutions are:
>> 1. Move existing chip operators such as irq_request/release_resources()
>> outside of the spinlock and use these helpers.
>> 2. Add new chip operators that are called outside of any spinlocks while
>> setting up and freeing an IRQ.
>
>> Not knowing whether we can safely move irq_request/release_resources() to
>> outside the spinlock (but hopefully this will solicit some feedback), add
>> new chip operators for runtime resuming and suspending of an IRQ chip.
>
> I'm not quite seeing how this would connect to the actual hardware
> power domain (presumabaly managed by genpd) and any other devices in
> that domain (presumably managed by runtime PM.)
So this patch is just providing some hooks that an irqchip can use to
perform any PM related operations. If you look at the 2nd patch in the
series you will see for the GIC that these helpers are used to call
pm_runtime_get/put() which would handle the power-domain.
> If all the RPM devices in the domain go idle, it will be powered off
> independently of the status of the irqchip because the irqchip isn't
> using RPM.
That's dependent on how the irqchip uses these helpers. If these helpers
invoke RPM then that will not be the case.
> Is there a longer-term plan to handle the irqchips as a "normal" device
> and use RPM? IMO, that approach would be helpful even for irqchips that
> share power domains with CPUs, since there are efforts working towards
> using genpd/RPM to manage CPUs/clusters.
That would ideal. However, the majority of irqchips today
create/register them with IRQCHIP_DECLARE() and not as "normal" devices.
Therefore, I was reluctant to add "struct device" to the irqchip
structure. However, if this is what you would prefer and Thomas is ok
with it, then that would be fine with me.
Cheers
Jon
next prev parent reply other threads:[~2015-11-13 9:01 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 14:39 [RFC PATCH 0/2] Add support for Tegra210 AGIC Jon Hunter
2015-11-10 14:39 ` [RFC PATCH 1/2] genirq: Add runtime resume/suspend support for IRQ chips Jon Hunter
[not found] ` <1447166377-19707-2-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-10 15:26 ` Thomas Gleixner
2015-11-10 15:58 ` Jon Hunter
[not found] ` <56421421.8070807-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-10 16:47 ` Grygorii Strashko
[not found] ` <56421FA5.4020801-l0cyMroinI0@public.gmane.org>
2015-11-10 18:07 ` Lars-Peter Clausen
[not found] ` <56423245.1040602-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-11 10:13 ` Jon Hunter
[not found] ` <564314D9.9040502-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-11 15:41 ` Grygorii Strashko
[not found] ` <564361AE.4070303-l0cyMroinI0@public.gmane.org>
2015-11-12 10:59 ` Jon Hunter
[not found] ` <5644710D.7080108-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-12 13:20 ` Lars-Peter Clausen
2015-11-12 13:29 ` Grygorii Strashko
[not found] ` <5644943E.1060102-l0cyMroinI0@public.gmane.org>
2015-11-12 13:34 ` Lars-Peter Clausen
[not found] ` <5644957D.6060202-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-13 18:07 ` Grygorii Strashko
2015-11-12 13:35 ` Jon Hunter
2015-11-12 13:47 ` Lars-Peter Clausen
[not found] ` <5644986B.5030901-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-12 14:02 ` Jon Hunter
[not found] ` <56449BF0.9090408-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-12 14:37 ` Lars-Peter Clausen
[not found] ` <5644A418.2020906-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-12 15:38 ` Jon Hunter
2015-11-12 17:04 ` Sören Brinkmann
2015-11-12 23:20 ` Kevin Hilman
[not found] ` <7hio56dctz.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2015-11-13 9:01 ` Jon Hunter [this message]
[not found] ` <5645A6F6.6020202-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-13 20:01 ` Thomas Gleixner
2015-11-16 9:46 ` Jon Hunter
2015-11-16 9:49 ` Geert Uytterhoeven
[not found] ` <CAMuHMdXazgRcw=+O-w+PsZpwiW8iCwZ8MmhNSjcOoZGRP45Y6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-16 10:34 ` Jon Hunter
[not found] ` <5649B135.8050800-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-16 10:48 ` Geert Uytterhoeven
[not found] ` <CAMuHMdW2L1gYO7cNjeeaBTcQQdEXc9q45E1sZj-=TPwokkGx2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-17 11:57 ` Jon Hunter
2015-11-10 14:39 ` [RFC PATCH 2/2] irqchip/gic: Add support for tegra AGIC interrupt controller Jon Hunter
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=5645A6F6.6020202@nvidia.com \
--to=jonathanh-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
--cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
--cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
--cc=khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=marc.zyngier-5wv7dgnIgG8@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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).