All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Russell King <rmk+kernel@armlinux.org.uk>
Cc: <linux-pm@vger.kernel.org>, <loongarch@lists.linux.dev>,
	<linux-acpi@vger.kernel.org>, <linux-arch@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-riscv@lists.infradead.org>, <kvmarm@lists.linux.dev>,
	<x86@kernel.org>, <linux-csky@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-ia64@vger.kernel.org>,
	<linux-parisc@vger.kernel.org>,
	Salil Mehta <salil.mehta@huawei.com>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	<jianyong.wu@arm.com>, <justin.he@arm.com>,
	James Morse <james.morse@arm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Subject: Re: [PATCH 05/21] ACPI: Move ACPI_HOTPLUG_CPU to be disabled on arm64 and riscv
Date: Thu, 30 Nov 2023 16:49:27 +0000	[thread overview]
Message-ID: <20231130164927.00003b96@Huawei.com> (raw)
In-Reply-To: <E1r5R31-00Csyt-Jq@rmk-PC.armlinux.org.uk>

On Tue, 21 Nov 2023 13:44:15 +0000
Russell King <rmk+kernel@armlinux.org.uk> wrote:

> From: James Morse <james.morse@arm.com>
> 
> Neither arm64 nor riscv support physical hotadd of CPUs that were not
> present at boot. For arm64 much of the platform description is in static
> tables which do not have update methods. arm64 does support HOTPLUG_CPU,
> which is backed by a firmware interface to turn CPUs on and off.
> 
> acpi_processor_hotadd_init() and acpi_processor_remove() are for adding
> and removing CPUs that were not present at boot. arm64 systems that do this
> are not supported as there is currently insufficient information in the
> platform description. (e.g. did the GICR get removed too?)
> 
> arm64 currently relies on the MADT enabled flag check in map_gicc_mpidr()
> to prevent CPUs that were not described as present at boot from being
> added to the system. Similarly, riscv relies on the same check in
> map_rintc_hartid(). Both architectures also rely on the weak 'always fails'
> definitions of acpi_map_cpu() and arch_register_cpu().
> 
> Subsequent changes will redefine ACPI_HOTPLUG_CPU as making possible
> CPUs present. Neither arm64 nor riscv support this.
> 
> Disable ACPI_HOTPLUG_CPU for arm64 and riscv by removing 'default y' and
> selecting it on the other three ACPI architectures. This allows the weak
> definitions of some symbols to be removed.
> 
> Signed-off-by: James Morse <james.morse@arm.com>
> Reviewed-by: Shaoqin Huang <shahuang@redhat.com>
> Reviewed-by: Gavin Shan <gshan@redhat.com>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Russell King <rmk+kernel@armlinux.org.uk>
Cc: <linux-pm@vger.kernel.org>, <loongarch@lists.linux.dev>,
	<linux-acpi@vger.kernel.org>, <linux-arch@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-riscv@lists.infradead.org>, <kvmarm@lists.linux.dev>,
	<x86@kernel.org>, <linux-csky@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-ia64@vger.kernel.org>,
	<linux-parisc@vger.kernel.org>,
	Salil Mehta <salil.mehta@huawei.com>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	<jianyong.wu@arm.com>, <justin.he@arm.com>,
	James Morse <james.morse@arm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Subject: Re: [PATCH 05/21] ACPI: Move ACPI_HOTPLUG_CPU to be disabled on arm64 and riscv
Date: Thu, 30 Nov 2023 16:49:27 +0000	[thread overview]
Message-ID: <20231130164927.00003b96@Huawei.com> (raw)
In-Reply-To: <E1r5R31-00Csyt-Jq@rmk-PC.armlinux.org.uk>

On Tue, 21 Nov 2023 13:44:15 +0000
Russell King <rmk+kernel@armlinux.org.uk> wrote:

> From: James Morse <james.morse@arm.com>
> 
> Neither arm64 nor riscv support physical hotadd of CPUs that were not
> present at boot. For arm64 much of the platform description is in static
> tables which do not have update methods. arm64 does support HOTPLUG_CPU,
> which is backed by a firmware interface to turn CPUs on and off.
> 
> acpi_processor_hotadd_init() and acpi_processor_remove() are for adding
> and removing CPUs that were not present at boot. arm64 systems that do this
> are not supported as there is currently insufficient information in the
> platform description. (e.g. did the GICR get removed too?)
> 
> arm64 currently relies on the MADT enabled flag check in map_gicc_mpidr()
> to prevent CPUs that were not described as present at boot from being
> added to the system. Similarly, riscv relies on the same check in
> map_rintc_hartid(). Both architectures also rely on the weak 'always fails'
> definitions of acpi_map_cpu() and arch_register_cpu().
> 
> Subsequent changes will redefine ACPI_HOTPLUG_CPU as making possible
> CPUs present. Neither arm64 nor riscv support this.
> 
> Disable ACPI_HOTPLUG_CPU for arm64 and riscv by removing 'default y' and
> selecting it on the other three ACPI architectures. This allows the weak
> definitions of some symbols to be removed.
> 
> Signed-off-by: James Morse <james.morse@arm.com>
> Reviewed-by: Shaoqin Huang <shahuang@redhat.com>
> Reviewed-by: Gavin Shan <gshan@redhat.com>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Russell King <rmk+kernel@armlinux.org.uk>
Cc: <linux-pm@vger.kernel.org>, <loongarch@lists.linux.dev>,
	<linux-acpi@vger.kernel.org>, <linux-arch@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-riscv@lists.infradead.org>, <kvmarm@lists.linux.dev>,
	<x86@kernel.org>, <linux-csky@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-ia64@vger.kernel.org>,
	<linux-parisc@vger.kernel.org>,
	Salil Mehta <salil.mehta@huawei.com>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	<jianyong.wu@arm.com>, <justin.he@arm.com>,
	James Morse <james.morse@arm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Subject: Re: [PATCH 05/21] ACPI: Move ACPI_HOTPLUG_CPU to be disabled on arm64 and riscv
Date: Thu, 30 Nov 2023 16:49:27 +0000	[thread overview]
Message-ID: <20231130164927.00003b96@Huawei.com> (raw)
In-Reply-To: <E1r5R31-00Csyt-Jq@rmk-PC.armlinux.org.uk>

On Tue, 21 Nov 2023 13:44:15 +0000
Russell King <rmk+kernel@armlinux.org.uk> wrote:

> From: James Morse <james.morse@arm.com>
> 
> Neither arm64 nor riscv support physical hotadd of CPUs that were not
> present at boot. For arm64 much of the platform description is in static
> tables which do not have update methods. arm64 does support HOTPLUG_CPU,
> which is backed by a firmware interface to turn CPUs on and off.
> 
> acpi_processor_hotadd_init() and acpi_processor_remove() are for adding
> and removing CPUs that were not present at boot. arm64 systems that do this
> are not supported as there is currently insufficient information in the
> platform description. (e.g. did the GICR get removed too?)
> 
> arm64 currently relies on the MADT enabled flag check in map_gicc_mpidr()
> to prevent CPUs that were not described as present at boot from being
> added to the system. Similarly, riscv relies on the same check in
> map_rintc_hartid(). Both architectures also rely on the weak 'always fails'
> definitions of acpi_map_cpu() and arch_register_cpu().
> 
> Subsequent changes will redefine ACPI_HOTPLUG_CPU as making possible
> CPUs present. Neither arm64 nor riscv support this.
> 
> Disable ACPI_HOTPLUG_CPU for arm64 and riscv by removing 'default y' and
> selecting it on the other three ACPI architectures. This allows the weak
> definitions of some symbols to be removed.
> 
> Signed-off-by: James Morse <james.morse@arm.com>
> Reviewed-by: Shaoqin Huang <shahuang@redhat.com>
> Reviewed-by: Gavin Shan <gshan@redhat.com>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2023-11-30 16:49 UTC|newest]

Thread overview: 165+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-21 13:43 [PATCH 00/21] Initial cleanups for vCPU hotplug Russell King (Oracle)
2023-11-21 13:43 ` Russell King (Oracle)
2023-11-21 13:43 ` Russell King (Oracle)
2023-11-21 13:43 ` [PATCH 01/21] arch_topology: Make register_cpu_capacity_sysctl() tolerant to late CPUs Russell King
2023-11-21 13:43   ` Russell King
2023-11-21 13:43   ` Russell King
2023-11-30 16:46   ` Jonathan Cameron
2023-11-30 16:46     ` Jonathan Cameron
2023-11-30 16:46     ` Jonathan Cameron
2023-12-01 10:45   ` Thomas Gleixner
2023-12-01 10:45     ` Thomas Gleixner
2023-12-01 10:45     ` Thomas Gleixner
2023-11-21 13:44 ` [PATCH 02/21] x86: intel_epb: Don't rely on link order Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-22 20:12   ` Rafael J. Wysocki
2023-11-22 20:12     ` Rafael J. Wysocki
2023-11-22 20:12     ` Rafael J. Wysocki
2023-11-21 13:44 ` [PATCH 03/21] x86/topology: remove arch_*register_cpu() exports Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-30 16:48   ` Jonathan Cameron
2023-11-30 16:48     ` Jonathan Cameron
2023-11-30 16:48     ` Jonathan Cameron
2023-11-21 13:44 ` [PATCH 04/21] Loongarch: " Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-30 16:48   ` Jonathan Cameron
2023-11-30 16:48     ` Jonathan Cameron
2023-11-30 16:48     ` Jonathan Cameron
2023-11-21 13:44 ` [PATCH 05/21] ACPI: Move ACPI_HOTPLUG_CPU to be disabled on arm64 and riscv Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-22 20:16   ` Rafael J. Wysocki
2023-11-22 20:16     ` Rafael J. Wysocki
2023-11-22 20:16     ` Rafael J. Wysocki
2023-11-30 16:49   ` Jonathan Cameron [this message]
2023-11-30 16:49     ` Jonathan Cameron
2023-11-30 16:49     ` Jonathan Cameron
2023-11-21 13:44 ` [PATCH 06/21] drivers: base: Use present CPUs in GENERIC_CPU_DEVICES Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44 ` [PATCH 07/21] drivers: base: Allow parts of GENERIC_CPU_DEVICES to be overridden Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-30 16:50   ` Jonathan Cameron
2023-11-30 16:50     ` Jonathan Cameron
2023-11-30 16:50     ` Jonathan Cameron
2023-11-21 13:44 ` [PATCH 08/21] drivers: base: Implement weak arch_unregister_cpu() Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-30 16:50   ` Jonathan Cameron
2023-11-30 16:50     ` Jonathan Cameron
2023-11-30 16:50     ` Jonathan Cameron
2023-12-01  3:47   ` Gavin Shan
2023-12-01  3:47     ` Gavin Shan
2023-12-01  3:47     ` Gavin Shan
2023-12-01 11:06   ` Thomas Gleixner
2023-12-01 11:06     ` Thomas Gleixner
2023-12-01 11:06     ` Thomas Gleixner
2023-11-21 13:44 ` [PATCH 09/21] drivers: base: add arch_cpu_is_hotpluggable() Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-30 16:51   ` Jonathan Cameron
2023-11-30 16:51     ` Jonathan Cameron
2023-11-30 16:51     ` Jonathan Cameron
2023-12-01  3:47   ` Gavin Shan
2023-12-01  3:47     ` Gavin Shan
2023-12-01  3:47     ` Gavin Shan
2023-11-21 13:44 ` [PATCH 10/21] drivers: base: Move cpu_dev_init() after node_dev_init() Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-30 16:52   ` Jonathan Cameron
2023-11-30 16:52     ` Jonathan Cameron
2023-11-30 16:52     ` Jonathan Cameron
2023-12-01  3:48   ` Gavin Shan
2023-12-01  3:48     ` Gavin Shan
2023-12-01  3:48     ` Gavin Shan
2023-11-21 13:44 ` [PATCH 11/21] drivers: base: Print a warning instead of panic() when register_cpu() fails Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-30 16:53   ` Jonathan Cameron
2023-11-30 16:53     ` Jonathan Cameron
2023-11-30 16:53     ` Jonathan Cameron
2023-12-01  3:49   ` Gavin Shan
2023-12-01  3:49     ` Gavin Shan
2023-12-01  3:49     ` Gavin Shan
2023-11-21 13:44 ` [PATCH 12/21] arm64: setup: Switch over to GENERIC_CPU_DEVICES using arch_register_cpu() Russell King
2023-11-21 13:44   ` Russell King
2023-11-21 13:44   ` Russell King
2023-11-30 16:54   ` Jonathan Cameron
2023-11-30 16:54     ` Jonathan Cameron
2023-11-30 16:54     ` Jonathan Cameron
2023-12-11 13:20   ` Will Deacon
2023-12-11 13:20     ` Will Deacon
2023-12-11 13:20     ` Will Deacon
2023-11-21 13:44 ` [PATCH 13/21] arm64: convert to arch_cpu_is_hotpluggable() Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-21 13:44   ` Russell King (Oracle)
2023-11-30 16:54   ` Jonathan Cameron
2023-11-30 16:54     ` Jonathan Cameron
2023-11-30 16:54     ` Jonathan Cameron
2023-12-11 13:21   ` Will Deacon
2023-12-11 13:21     ` Will Deacon
2023-12-11 13:21     ` Will Deacon
2023-11-21 13:45 ` [PATCH 14/21] x86/topology: Switch over to GENERIC_CPU_DEVICES Russell King
2023-11-21 13:45   ` Russell King
2023-11-21 13:45   ` Russell King
2023-11-30 16:56   ` Jonathan Cameron
2023-11-30 16:56     ` Jonathan Cameron
2023-11-30 16:56     ` Jonathan Cameron
2023-11-21 13:45 ` [PATCH 15/21] x86/topology: use weak version of arch_unregister_cpu() Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-30 16:57   ` Jonathan Cameron
2023-11-30 16:57     ` Jonathan Cameron
2023-11-30 16:57     ` Jonathan Cameron
2023-11-21 13:45 ` [PATCH 16/21] x86/topology: convert to use arch_cpu_is_hotpluggable() Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-30 16:55   ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-11-21 13:45 ` [PATCH 17/21] LoongArch: Switch over to GENERIC_CPU_DEVICES Russell King
2023-11-21 13:45   ` Russell King
2023-11-21 13:45   ` Russell King
2023-11-30 16:57   ` Jonathan Cameron
2023-11-30 16:57     ` Jonathan Cameron
2023-11-30 16:57     ` Jonathan Cameron
2023-11-21 13:45 ` [PATCH 18/21] LoongArch: Use the __weak version of arch_unregister_cpu() Russell King
2023-11-21 13:45   ` Russell King
2023-11-21 13:45   ` Russell King
2023-11-21 13:45 ` [PATCH 19/21] LoongArch: convert to use arch_cpu_is_hotpluggable() Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-30 16:55   ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-11-21 13:45 ` [PATCH 20/21] riscv: Switch over to GENERIC_CPU_DEVICES Russell King
2023-11-21 13:45   ` Russell King
2023-11-21 13:45   ` Russell King
2023-11-22 20:05   ` Samuel Holland
2023-11-22 20:05     ` Samuel Holland
2023-11-22 20:05     ` Samuel Holland
2023-11-21 13:45 ` [PATCH 21/21] riscv: convert to use arch_cpu_is_hotpluggable() Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-21 13:45   ` Russell King (Oracle)
2023-11-22 20:08   ` Samuel Holland
2023-11-22 20:08     ` Samuel Holland
2023-11-22 20:08     ` Samuel Holland
2023-11-30 16:55   ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-11-30 16:55     ` Jonathan Cameron
2023-12-01  8:53 ` [PATCH 00/21] Initial cleanups for vCPU hotplug Thomas Gleixner
2023-12-01  8:53   ` Thomas Gleixner
2023-12-01  8:53   ` Thomas Gleixner
2023-12-01 11:25 ` Thomas Gleixner
2023-12-01 11:25   ` Thomas Gleixner
2023-12-01 11:25   ` Thomas Gleixner
2023-12-01 12:28   ` Greg Kroah-Hartman
2023-12-01 12:28     ` Greg Kroah-Hartman
2023-12-01 12:28     ` Greg Kroah-Hartman
2023-12-01 16:09     ` Thomas Gleixner
2023-12-01 16:09       ` Thomas Gleixner
2023-12-01 16:09       ` Thomas Gleixner

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=20231130164927.00003b96@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=bp@alien8.de \
    --cc=chenhuacai@kernel.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jean-philippe@linaro.org \
    --cc=jianyong.wu@arm.com \
    --cc=justin.he@arm.com \
    --cc=kernel@xen0n.name \
    --cc=kvmarm@lists.linux.dev \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=loongarch@lists.linux.dev \
    --cc=mingo@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=rafael@kernel.org \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=salil.mehta@huawei.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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.