All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@kernel.org>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Simon Horman <horms@verge.net.au>,
	Magnus Damm <magnus.damm@gmail.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Philipp Zabel <philipp.zabel@gmail.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	"linux-sh@vger.kernel.org" <linux-sh@vger.kernel.org>,
	linux-pm@vger.kernel.org,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support
Date: Mon, 03 Nov 2014 17:28:54 -0800	[thread overview]
Message-ID: <7hegtj69ex.fsf@deeprootsystems.com> (raw)
In-Reply-To: <CANLsYkzVw_fQQuK9pEomMp6A_z2Qg9L-Hj1f+8b_1o7cFjMiDw@mail.gmail.com> (Mathieu Poirier's message of "Mon, 3 Nov 2014 14:02:31 -0700")

Mathieu Poirier <mathieu.poirier@linaro.org> writes:

> On 3 November 2014 08:34, Geert Uytterhoeven <geert+renesas@glider.be> wrote:
>>         Hi Rafael, Simon, Magnus,
>>
>> This patch series enables DT support for PM domains on Renesas R-Mobile SoCs.
>>
>> Currently it's limited to R-Mobile A1 (r8a7740), but given the similarity of
>> the SYSC System-Controller on the various SH-Mobile/R-Mobile SoCs, and the
>> abstraction of PM domains in DT, it should be sufficiently generic to handle
>> other SoCs in the future (e.g. SH-Mobile AP4 (sh7372), SH-Mobile AG5 (sh73a0),
>> R-Mobile APE6 (r8a73a4)).
>>
>> Functionality-wise, this behaves the same as the legacy (non-DT) version
>> (modulo missing DT support in some device drivers).
>>
>> Dependencies:
>>   - This is based on Simon Horman's renesas-devel-20141030-v3.18-rc2, and
>>     Rafael J. Wysocki's linux-pm.git#linux-next,
>>   - This depends on "PM / Domains: Change prototype for the ->attach_dev()
>>     callback" from Ulf hanson, which is intended to still enter v3.18-rcX
>>     through the linux-pm tree.
>>     As this is a one-line change, I included this patch as the first patch of
>>     this series.  Perhaps it's even acceptable for Simon to (also) apply it, so
>>     we don't have to wait for the v3.18-rcX that will include it?
>>
>> For your convenience, I've also pushed this to
>> git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#rmobile-genpd
>>
>> Changes compared to v3 (more detailed changelogs in the individual patches):
>>   - I dropped the patch to add preliminary PM domain latencies, as I want to do
>>     more measurements for PM domains that are currently never powered off.
>>     Values seem to range between 8.5 and 26 us, depending on the PM domain.
>>   - I dropped all patches related to QoS device latencies, as these need more
>>     discussion,
>>   - The power-{on,off}-latency properties have been changed from a single value
>>     to a list,
>>   - Device save/restore state latencies have been dropped, as they're Linux
>>     driver-specific, and thus don't belong in DT,
>>   - Use proper pm_clk_create()/pm_clk_destroy(), and update for attach_dev()
>>     returning an error code again,
>>   - New patch to enable module clocks if !CONFIG_PM_RUNTIME,
>>   - Always keep D4 powered, until the new Coresight code handles runtime
>>     PM,
>
> I took the time to really look at the problems you are experiencing
> with pm runtime in hw_breackpoint.c this weekend.  The coresight
> patchset, when supplemented with PM runtime awareness, will fix that
> problem *only* when traces are activated.  The other obvious condition
> is that other component using the same power domain are also converted
> to using runtime PM.
>
> That being said, the coresight framework and breakpoint handler code
> are two different subsystem.  Their only commonality is that they make
> use of the debug registers (and not even the same ones).  As such (and
> in my opinion) the code in hw_breakpoint should be getting its own pm
> runtime reference without relying on the coresight subsystem.  As
> indicated above, that would only work in some cases.
>
> Supplementing hw_breakpoint to interact with the runtime PM may prove
> trickier than it seems... I'm especially worried about the
> non-blocking requirement inherent to using "smp_call_function()".  I'm
> stepping forward to look into that problem but before doing so I need
> to finish runtime PM on coresight.

Matthieu, without looking more deeply myself, I'm not sure this is what
you need, but have a look at the "IRQ safe" mode of runtime PM.  If you
know your devices runtime PM callbacks are IRQ safe, you can call
pm_runtime_irq_safe(), and your callbacks will be called with IRQs
disabled.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@kernel.org>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support
Date: Tue, 04 Nov 2014 01:28:54 +0000	[thread overview]
Message-ID: <7hegtj69ex.fsf@deeprootsystems.com> (raw)
In-Reply-To: <CANLsYkzVw_fQQuK9pEomMp6A_z2Qg9L-Hj1f+8b_1o7cFjMiDw@mail.gmail.com> (Mathieu Poirier's message of "Mon, 3 Nov 2014 14:02:31 -0700")

Mathieu Poirier <mathieu.poirier@linaro.org> writes:

> On 3 November 2014 08:34, Geert Uytterhoeven <geert+renesas@glider.be> wrote:
>>         Hi Rafael, Simon, Magnus,
>>
>> This patch series enables DT support for PM domains on Renesas R-Mobile SoCs.
>>
>> Currently it's limited to R-Mobile A1 (r8a7740), but given the similarity of
>> the SYSC System-Controller on the various SH-Mobile/R-Mobile SoCs, and the
>> abstraction of PM domains in DT, it should be sufficiently generic to handle
>> other SoCs in the future (e.g. SH-Mobile AP4 (sh7372), SH-Mobile AG5 (sh73a0),
>> R-Mobile APE6 (r8a73a4)).
>>
>> Functionality-wise, this behaves the same as the legacy (non-DT) version
>> (modulo missing DT support in some device drivers).
>>
>> Dependencies:
>>   - This is based on Simon Horman's renesas-devel-20141030-v3.18-rc2, and
>>     Rafael J. Wysocki's linux-pm.git#linux-next,
>>   - This depends on "PM / Domains: Change prototype for the ->attach_dev()
>>     callback" from Ulf hanson, which is intended to still enter v3.18-rcX
>>     through the linux-pm tree.
>>     As this is a one-line change, I included this patch as the first patch of
>>     this series.  Perhaps it's even acceptable for Simon to (also) apply it, so
>>     we don't have to wait for the v3.18-rcX that will include it?
>>
>> For your convenience, I've also pushed this to
>> git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#rmobile-genpd
>>
>> Changes compared to v3 (more detailed changelogs in the individual patches):
>>   - I dropped the patch to add preliminary PM domain latencies, as I want to do
>>     more measurements for PM domains that are currently never powered off.
>>     Values seem to range between 8.5 and 26 us, depending on the PM domain.
>>   - I dropped all patches related to QoS device latencies, as these need more
>>     discussion,
>>   - The power-{on,off}-latency properties have been changed from a single value
>>     to a list,
>>   - Device save/restore state latencies have been dropped, as they're Linux
>>     driver-specific, and thus don't belong in DT,
>>   - Use proper pm_clk_create()/pm_clk_destroy(), and update for attach_dev()
>>     returning an error code again,
>>   - New patch to enable module clocks if !CONFIG_PM_RUNTIME,
>>   - Always keep D4 powered, until the new Coresight code handles runtime
>>     PM,
>
> I took the time to really look at the problems you are experiencing
> with pm runtime in hw_breackpoint.c this weekend.  The coresight
> patchset, when supplemented with PM runtime awareness, will fix that
> problem *only* when traces are activated.  The other obvious condition
> is that other component using the same power domain are also converted
> to using runtime PM.
>
> That being said, the coresight framework and breakpoint handler code
> are two different subsystem.  Their only commonality is that they make
> use of the debug registers (and not even the same ones).  As such (and
> in my opinion) the code in hw_breakpoint should be getting its own pm
> runtime reference without relying on the coresight subsystem.  As
> indicated above, that would only work in some cases.
>
> Supplementing hw_breakpoint to interact with the runtime PM may prove
> trickier than it seems... I'm especially worried about the
> non-blocking requirement inherent to using "smp_call_function()".  I'm
> stepping forward to look into that problem but before doing so I need
> to finish runtime PM on coresight.

Matthieu, without looking more deeply myself, I'm not sure this is what
you need, but have a look at the "IRQ safe" mode of runtime PM.  If you
know your devices runtime PM callbacks are IRQ safe, you can call
pm_runtime_irq_safe(), and your callbacks will be called with IRQs
disabled.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: khilman@kernel.org (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support
Date: Mon, 03 Nov 2014 17:28:54 -0800	[thread overview]
Message-ID: <7hegtj69ex.fsf@deeprootsystems.com> (raw)
In-Reply-To: <CANLsYkzVw_fQQuK9pEomMp6A_z2Qg9L-Hj1f+8b_1o7cFjMiDw@mail.gmail.com> (Mathieu Poirier's message of "Mon, 3 Nov 2014 14:02:31 -0700")

Mathieu Poirier <mathieu.poirier@linaro.org> writes:

> On 3 November 2014 08:34, Geert Uytterhoeven <geert+renesas@glider.be> wrote:
>>         Hi Rafael, Simon, Magnus,
>>
>> This patch series enables DT support for PM domains on Renesas R-Mobile SoCs.
>>
>> Currently it's limited to R-Mobile A1 (r8a7740), but given the similarity of
>> the SYSC System-Controller on the various SH-Mobile/R-Mobile SoCs, and the
>> abstraction of PM domains in DT, it should be sufficiently generic to handle
>> other SoCs in the future (e.g. SH-Mobile AP4 (sh7372), SH-Mobile AG5 (sh73a0),
>> R-Mobile APE6 (r8a73a4)).
>>
>> Functionality-wise, this behaves the same as the legacy (non-DT) version
>> (modulo missing DT support in some device drivers).
>>
>> Dependencies:
>>   - This is based on Simon Horman's renesas-devel-20141030-v3.18-rc2, and
>>     Rafael J. Wysocki's linux-pm.git#linux-next,
>>   - This depends on "PM / Domains: Change prototype for the ->attach_dev()
>>     callback" from Ulf hanson, which is intended to still enter v3.18-rcX
>>     through the linux-pm tree.
>>     As this is a one-line change, I included this patch as the first patch of
>>     this series.  Perhaps it's even acceptable for Simon to (also) apply it, so
>>     we don't have to wait for the v3.18-rcX that will include it?
>>
>> For your convenience, I've also pushed this to
>> git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#rmobile-genpd
>>
>> Changes compared to v3 (more detailed changelogs in the individual patches):
>>   - I dropped the patch to add preliminary PM domain latencies, as I want to do
>>     more measurements for PM domains that are currently never powered off.
>>     Values seem to range between 8.5 and 26 us, depending on the PM domain.
>>   - I dropped all patches related to QoS device latencies, as these need more
>>     discussion,
>>   - The power-{on,off}-latency properties have been changed from a single value
>>     to a list,
>>   - Device save/restore state latencies have been dropped, as they're Linux
>>     driver-specific, and thus don't belong in DT,
>>   - Use proper pm_clk_create()/pm_clk_destroy(), and update for attach_dev()
>>     returning an error code again,
>>   - New patch to enable module clocks if !CONFIG_PM_RUNTIME,
>>   - Always keep D4 powered, until the new Coresight code handles runtime
>>     PM,
>
> I took the time to really look at the problems you are experiencing
> with pm runtime in hw_breackpoint.c this weekend.  The coresight
> patchset, when supplemented with PM runtime awareness, will fix that
> problem *only* when traces are activated.  The other obvious condition
> is that other component using the same power domain are also converted
> to using runtime PM.
>
> That being said, the coresight framework and breakpoint handler code
> are two different subsystem.  Their only commonality is that they make
> use of the debug registers (and not even the same ones).  As such (and
> in my opinion) the code in hw_breakpoint should be getting its own pm
> runtime reference without relying on the coresight subsystem.  As
> indicated above, that would only work in some cases.
>
> Supplementing hw_breakpoint to interact with the runtime PM may prove
> trickier than it seems... I'm especially worried about the
> non-blocking requirement inherent to using "smp_call_function()".  I'm
> stepping forward to look into that problem but before doing so I need
> to finish runtime PM on coresight.

Matthieu, without looking more deeply myself, I'm not sure this is what
you need, but have a look at the "IRQ safe" mode of runtime PM.  If you
know your devices runtime PM callbacks are IRQ safe, you can call
pm_runtime_irq_safe(), and your callbacks will be called with IRQs
disabled.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@kernel.org>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Simon Horman <horms@verge.net.au>,
	Magnus Damm <magnus.damm@gmail.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Philipp Zabel <philipp.zabel@gmail.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	"linux-sh\@vger.kernel.org" <linux-sh@vger.kernel.org>,
	linux-pm@vger.kernel.org,
	"linux-arm-kernel\@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree\@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support
Date: Mon, 03 Nov 2014 17:28:54 -0800	[thread overview]
Message-ID: <7hegtj69ex.fsf@deeprootsystems.com> (raw)
In-Reply-To: <CANLsYkzVw_fQQuK9pEomMp6A_z2Qg9L-Hj1f+8b_1o7cFjMiDw@mail.gmail.com> (Mathieu Poirier's message of "Mon, 3 Nov 2014 14:02:31 -0700")

Mathieu Poirier <mathieu.poirier@linaro.org> writes:

> On 3 November 2014 08:34, Geert Uytterhoeven <geert+renesas@glider.be> wrote:
>>         Hi Rafael, Simon, Magnus,
>>
>> This patch series enables DT support for PM domains on Renesas R-Mobile SoCs.
>>
>> Currently it's limited to R-Mobile A1 (r8a7740), but given the similarity of
>> the SYSC System-Controller on the various SH-Mobile/R-Mobile SoCs, and the
>> abstraction of PM domains in DT, it should be sufficiently generic to handle
>> other SoCs in the future (e.g. SH-Mobile AP4 (sh7372), SH-Mobile AG5 (sh73a0),
>> R-Mobile APE6 (r8a73a4)).
>>
>> Functionality-wise, this behaves the same as the legacy (non-DT) version
>> (modulo missing DT support in some device drivers).
>>
>> Dependencies:
>>   - This is based on Simon Horman's renesas-devel-20141030-v3.18-rc2, and
>>     Rafael J. Wysocki's linux-pm.git#linux-next,
>>   - This depends on "PM / Domains: Change prototype for the ->attach_dev()
>>     callback" from Ulf hanson, which is intended to still enter v3.18-rcX
>>     through the linux-pm tree.
>>     As this is a one-line change, I included this patch as the first patch of
>>     this series.  Perhaps it's even acceptable for Simon to (also) apply it, so
>>     we don't have to wait for the v3.18-rcX that will include it?
>>
>> For your convenience, I've also pushed this to
>> git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#rmobile-genpd
>>
>> Changes compared to v3 (more detailed changelogs in the individual patches):
>>   - I dropped the patch to add preliminary PM domain latencies, as I want to do
>>     more measurements for PM domains that are currently never powered off.
>>     Values seem to range between 8.5 and 26 us, depending on the PM domain.
>>   - I dropped all patches related to QoS device latencies, as these need more
>>     discussion,
>>   - The power-{on,off}-latency properties have been changed from a single value
>>     to a list,
>>   - Device save/restore state latencies have been dropped, as they're Linux
>>     driver-specific, and thus don't belong in DT,
>>   - Use proper pm_clk_create()/pm_clk_destroy(), and update for attach_dev()
>>     returning an error code again,
>>   - New patch to enable module clocks if !CONFIG_PM_RUNTIME,
>>   - Always keep D4 powered, until the new Coresight code handles runtime
>>     PM,
>
> I took the time to really look at the problems you are experiencing
> with pm runtime in hw_breackpoint.c this weekend.  The coresight
> patchset, when supplemented with PM runtime awareness, will fix that
> problem *only* when traces are activated.  The other obvious condition
> is that other component using the same power domain are also converted
> to using runtime PM.
>
> That being said, the coresight framework and breakpoint handler code
> are two different subsystem.  Their only commonality is that they make
> use of the debug registers (and not even the same ones).  As such (and
> in my opinion) the code in hw_breakpoint should be getting its own pm
> runtime reference without relying on the coresight subsystem.  As
> indicated above, that would only work in some cases.
>
> Supplementing hw_breakpoint to interact with the runtime PM may prove
> trickier than it seems... I'm especially worried about the
> non-blocking requirement inherent to using "smp_call_function()".  I'm
> stepping forward to look into that problem but before doing so I need
> to finish runtime PM on coresight.

Matthieu, without looking more deeply myself, I'm not sure this is what
you need, but have a look at the "IRQ safe" mode of runtime PM.  If you
know your devices runtime PM callbacks are IRQ safe, you can call
pm_runtime_irq_safe(), and your callbacks will be called with IRQs
disabled.

Kevin

  reply	other threads:[~2014-11-04  1:28 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-03 15:34 [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support Geert Uytterhoeven
2014-11-03 15:34 ` Geert Uytterhoeven
2014-11-03 15:34 ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 1/9] PM / Domains: Change prototype for the ->attach_dev() callback Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 18:15   ` Andreas Schwab
2014-11-03 18:15     ` Andreas Schwab
2014-11-03 18:15     ` Andreas Schwab
2014-11-03 15:34 ` [PATCH v4 2/9] PM / Domains: Add DT bindings for power-on/off latencies Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 3/9] PM / Domains: Add DT bindings for the R-Mobile System Controller Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 4/9] ARM: shmobile: R-Mobile: Use generic_pm_domain.attach_dev() for pm_clk setup Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
     [not found] ` <1415028896-9005-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2014-11-03 15:34   ` [PATCH v4 5/9] ARM: shmobile: R-Mobile: Enable module clocks if !CONFIG_PM_RUNTIME Geert Uytterhoeven
2014-11-03 15:34     ` Geert Uytterhoeven
2014-11-03 15:34     ` Geert Uytterhoeven
2014-11-03 15:34     ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 6/9] ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 7/9] ARM: shmobile: R-Mobile: Add DT support for PM domains Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34 ` [PATCH v4 8/9] ARM: shmobile: r8a7740 dtsi: Add PM domain support Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 21:24   ` Mathieu Poirier
2014-11-03 21:24     ` Mathieu Poirier
2014-11-03 21:24     ` Mathieu Poirier
2014-11-03 15:34 ` [PATCH v4 9/9] drivers: sh: Disable PM runtime for multi-platform r8a7740 with genpd Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 15:34   ` Geert Uytterhoeven
2014-11-03 21:02 ` [PATCH v4 0/9] ARM: shmobile: R-Mobile: DT PM domain support Mathieu Poirier
2014-11-03 21:02   ` Mathieu Poirier
2014-11-03 21:02   ` Mathieu Poirier
2014-11-04  1:28   ` Kevin Hilman [this message]
2014-11-04  1:28     ` Kevin Hilman
2014-11-04  1:28     ` Kevin Hilman
2014-11-04  1:28     ` Kevin Hilman
2014-11-04 14:57     ` Mathieu Poirier
2014-11-04 14:57       ` Mathieu Poirier
2014-11-04 14:57       ` 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=7hegtj69ex.fsf@deeprootsystems.com \
    --to=khilman@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=grygorii.strashko@ti.com \
    --cc=horms@verge.net.au \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=philipp.zabel@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=tomasz.figa@gmail.com \
    --cc=ulf.hansson@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.