From: Peter Osterlund <petero2@telia.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>,
"Martin J. Bligh" <mbligh@mbligh.org>,
Lee Revell <rlrevell@joe-job.com>,
"Kjetil Svalastog Matheussen <k.s.matheussen@notam02.no>"
<k.s.matheussen@notam02.no>, Chris Friesen <cfriesen@nortel.com>,
Diego Calleja <diegocg@gmail.com>,
azarah@nosferatu.za.org, akpm@osdl.org, cw@f00f.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
christoph@lameter.org
Subject: Re: High irq load (Re: [PATCH] i386: Selectable Frequency of the Timer Interrupt)
Date: 14 Jul 2005 16:25:12 +0200 [thread overview]
Message-ID: <m3zmsppirb.fsf@telia.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0507131128100.17536@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
> On Wed, 13 Jul 2005, Jan Engelhardt wrote:
> >
> > No, some kernel code causes a triple-fault-and-reboot when the HZ is >=
> > 10KHz. Maybe the highest possible value is 8192 Hz, not sure.
>
> Can you post the triple-fault message? It really shouldn't triple-fault,
> although it _will_ obviously spend all time just doing timer interrupts,
> so it shouldn't get much (if any) real work done either.
...
> There should be no conceptual "highest possible HZ", although there are
> certainly obvious practical limits to it (both on the timer hw itself, and
> just the fact that at some point we'll spend all time on the timer
> interrupt and won't get anything done..)
HZ=10000 appears to work fine here after some hacks to avoid
over/underflows in integer arithmetics. gkrellm reports about 3-4% CPU
usage when the system is idle, on a 3.07 GHz P4.
---
Makefile | 2 +-
arch/i386/kernel/cpu/proc.c | 6 ++++++
fs/nfsd/nfssvc.c | 2 +-
include/linux/jiffies.h | 6 ++++++
include/linux/nfsd/stats.h | 4 ++++
include/linux/timex.h | 2 +-
include/net/tcp.h | 12 +++++++++---
init/calibrate.c | 21 +++++++++++++++++++++
kernel/Kconfig.hz | 6 ++++++
kernel/timer.c | 4 ++--
net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 2 +-
11 files changed, 58 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 13
-EXTRAVERSION =-rc3
+EXTRAVERSION =-rc3-test
NAME=Woozy Numbat
# *DOCUMENTATION*
diff --git a/arch/i386/kernel/cpu/proc.c b/arch/i386/kernel/cpu/proc.c
--- a/arch/i386/kernel/cpu/proc.c
+++ b/arch/i386/kernel/cpu/proc.c
@@ -128,9 +128,15 @@ static int show_cpuinfo(struct seq_file
x86_cap_flags[i] != NULL )
seq_printf(m, " %s", x86_cap_flags[i]);
+#if HZ <= 5000
seq_printf(m, "\nbogomips\t: %lu.%02lu\n\n",
c->loops_per_jiffy/(500000/HZ),
(c->loops_per_jiffy/(5000/HZ)) % 100);
+#else
+ seq_printf(m, "\nbogomips\t: %lu.%02lu\n\n",
+ c->loops_per_jiffy/(500000/HZ),
+ (c->loops_per_jiffy*(HZ/5000)) % 100);
+#endif
return 0;
}
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
--- a/fs/nfsd/nfssvc.c
+++ b/fs/nfsd/nfssvc.c
@@ -160,7 +160,7 @@ update_thread_usage(int busy_threads)
decile = busy_threads*10/nfsdstats.th_cnt;
if (decile>0 && decile <= 10) {
diff = nfsd_last_call - prev_call;
- if ( (nfsdstats.th_usage[decile-1] += diff) >= NFSD_USAGE_WRAP)
+ if ( (nfsdstats.th_usage[decile-1] += diff) >= NFSD_USAGE_WRAP)
nfsdstats.th_usage[decile-1] -= NFSD_USAGE_WRAP;
if (decile == 10)
nfsdstats.th_fullcnt++;
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -38,6 +38,12 @@
# define SHIFT_HZ 9
#elif HZ >= 768 && HZ < 1536
# define SHIFT_HZ 10
+#elif HZ >= 1536 && HZ < 3072
+# define SHIFT_HZ 11
+#elif HZ >= 3072 && HZ < 6144
+# define SHIFT_HZ 12
+#elif HZ >= 6144 && HZ < 12288
+# define SHIFT_HZ 13
#else
# error You lose.
#endif
diff --git a/include/linux/nfsd/stats.h b/include/linux/nfsd/stats.h
--- a/include/linux/nfsd/stats.h
+++ b/include/linux/nfsd/stats.h
@@ -30,7 +30,11 @@ struct nfsd_stats {
};
/* thread usage wraps very million seconds (approx one fortnight) */
+#if HZ < 2048
#define NFSD_USAGE_WRAP (HZ*1000000)
+#else
+#define NFSD_USAGE_WRAP (2048*1000000)
+#endif
#ifdef __KERNEL__
diff --git a/include/linux/timex.h b/include/linux/timex.h
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -90,7 +90,7 @@
*
* FINENSEC is 1 ns in SHIFT_UPDATE units of the time_phase variable.
*/
-#define SHIFT_SCALE 22 /* phase scale (shift) */
+#define SHIFT_SCALE 25 /* phase scale (shift) */
#define SHIFT_UPDATE (SHIFT_KG + MAXTC) /* time offset scale (shift) */
#define SHIFT_USEC 16 /* frequency offset scale (shift) */
#define FINENSEC (1L << (SHIFT_SCALE - 10)) /* ~1 ns in phase units */
diff --git a/include/net/tcp.h b/include/net/tcp.h
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -486,8 +486,8 @@ static __inline__ int tcp_sk_listen_hash
so that we select tick to get range about 4 seconds.
*/
-#if HZ <= 16 || HZ > 4096
-# error Unsupported: HZ <= 16 or HZ > 4096
+#if HZ <= 16
+# error Unsupported: HZ <= 16
#elif HZ <= 32
# define TCP_TW_RECYCLE_TICK (5+2-TCP_TW_RECYCLE_SLOTS_LOG)
#elif HZ <= 64
@@ -502,8 +502,14 @@ static __inline__ int tcp_sk_listen_hash
# define TCP_TW_RECYCLE_TICK (10+2-TCP_TW_RECYCLE_SLOTS_LOG)
#elif HZ <= 2048
# define TCP_TW_RECYCLE_TICK (11+2-TCP_TW_RECYCLE_SLOTS_LOG)
-#else
+#elif HZ <= 4096
# define TCP_TW_RECYCLE_TICK (12+2-TCP_TW_RECYCLE_SLOTS_LOG)
+#elif HZ <= 8192
+# define TCP_TW_RECYCLE_TICK (13+2-TCP_TW_RECYCLE_SLOTS_LOG)
+#elif HZ <= 16384
+# define TCP_TW_RECYCLE_TICK (14+2-TCP_TW_RECYCLE_SLOTS_LOG)
+#else
+# error Unsupported: HZ > 16384
#endif
/*
* TCP option
diff --git a/init/calibrate.c b/init/calibrate.c
--- a/init/calibrate.c
+++ b/init/calibrate.c
@@ -119,16 +119,30 @@ void __devinit calibrate_delay(void)
if (preset_lpj) {
loops_per_jiffy = preset_lpj;
+#if HZ <= 5000
printk("Calibrating delay loop (skipped)... "
"%lu.%02lu BogoMIPS preset\n",
loops_per_jiffy/(500000/HZ),
(loops_per_jiffy/(5000/HZ)) % 100);
+#else
+ printk("Calibrating delay loop (skipped)... "
+ "%lu.%02lu BogoMIPS preset\n",
+ loops_per_jiffy/(500000/HZ),
+ (loops_per_jiffy*(HZ/5000)) % 100);
+#endif
} else if ((loops_per_jiffy = calibrate_delay_direct()) != 0) {
printk("Calibrating delay using timer specific routine.. ");
+#if HZ <= 5000
printk("%lu.%02lu BogoMIPS (lpj=%lu)\n",
loops_per_jiffy/(500000/HZ),
(loops_per_jiffy/(5000/HZ)) % 100,
loops_per_jiffy);
+#else
+ printk("%lu.%02lu BogoMIPS (lpj=%lu)\n",
+ loops_per_jiffy/(500000/HZ),
+ (loops_per_jiffy*(HZ/5000)) % 100,
+ loops_per_jiffy);
+#endif
} else {
loops_per_jiffy = (1<<12);
@@ -164,10 +178,17 @@ void __devinit calibrate_delay(void)
}
/* Round the value and print it */
+#if HZ <= 5000
printk("%lu.%02lu BogoMIPS (lpj=%lu)\n",
loops_per_jiffy/(500000/HZ),
(loops_per_jiffy/(5000/HZ)) % 100,
loops_per_jiffy);
+#else
+ printk("%lu.%02lu BogoMIPS (lpj=%lu)\n",
+ loops_per_jiffy/(500000/HZ),
+ (loops_per_jiffy*(HZ/5000)) % 100,
+ loops_per_jiffy);
+#endif
}
}
diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
--- a/kernel/Kconfig.hz
+++ b/kernel/Kconfig.hz
@@ -36,6 +36,11 @@ choice
1000 HZ is the preferred choice for desktop systems and other
systems requiring fast interactive responses to events.
+ config HZ_10000
+ bool "10000 HZ"
+ help
+ 10000 HZ is for testing only.
+
endchoice
config HZ
@@ -43,4 +48,5 @@ config HZ
default 100 if HZ_100
default 250 if HZ_250
default 1000 if HZ_1000
+ default 10000 if HZ_10000
diff --git a/kernel/timer.c b/kernel/timer.c
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -710,7 +710,7 @@ static void second_overflow(void)
if (ltemp > (MAXPHASE / MINSEC) << SHIFT_UPDATE)
ltemp = (MAXPHASE / MINSEC) << SHIFT_UPDATE;
time_offset += ltemp;
- time_adj = -ltemp << (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE);
+ time_adj = -ltemp << (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE);
} else {
ltemp = time_offset;
if (!(time_status & STA_FLL))
@@ -718,7 +718,7 @@ static void second_overflow(void)
if (ltemp > (MAXPHASE / MINSEC) << SHIFT_UPDATE)
ltemp = (MAXPHASE / MINSEC) << SHIFT_UPDATE;
time_offset -= ltemp;
- time_adj = ltemp << (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE);
+ time_adj = ltemp << (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE);
}
/*
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
--- a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
+++ b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
@@ -87,7 +87,7 @@ static const char *tcp_conntrack_names[]
unsigned long ip_ct_tcp_timeout_syn_sent = 2 MINS;
unsigned long ip_ct_tcp_timeout_syn_recv = 60 SECS;
-unsigned long ip_ct_tcp_timeout_established = 5 DAYS;
+unsigned long ip_ct_tcp_timeout_established = 2 DAYS;
unsigned long ip_ct_tcp_timeout_fin_wait = 2 MINS;
unsigned long ip_ct_tcp_timeout_close_wait = 60 SECS;
unsigned long ip_ct_tcp_timeout_last_ack = 30 SECS;
--
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340
next prev parent reply other threads:[~2005-07-14 14:25 UTC|newest]
Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200506231828.j5NISlCe020350@hera.kernel.org>
2005-07-08 21:49 ` [PATCH] i386: Selectable Frequency of the Timer Interrupt Chris Wedgwood
2005-07-08 21:59 ` Andrew Morton
2005-07-08 22:05 ` Chris Wedgwood
2005-07-08 22:08 ` Linus Torvalds
2005-07-10 10:45 ` Denis Vlasenko
2005-07-08 22:22 ` Lee Revell
2005-07-08 22:33 ` Andrew Morton
2005-07-08 22:59 ` Martin J. Bligh
2005-07-08 23:03 ` Chris Wedgwood
2005-07-08 23:14 ` Martin J. Bligh
2005-07-08 23:29 ` David S. Miller
2005-07-08 23:40 ` Lee Revell
2005-07-09 17:08 ` Martin Schlemmer
2005-07-09 18:16 ` Lee Revell
2005-07-09 18:31 ` Arjan van de Ven
2005-07-09 18:33 ` Chris Wedgwood
2005-07-09 18:36 ` Lee Revell
2005-07-09 19:12 ` Andrew Morton
2005-07-09 19:16 ` Lee Revell
2005-07-09 20:30 ` randy_dunlap
2005-07-09 21:25 ` Lee Revell
2005-07-09 23:30 ` Randy Dunlap
2005-07-11 18:35 ` Martin J. Bligh
2005-07-11 13:23 ` Alan Cox
2005-07-11 14:05 ` Theodore Ts'o
2005-07-11 14:08 ` Arjan van de Ven
2005-07-11 15:18 ` Alan Cox
2005-07-12 2:13 ` Eric St-Laurent
2005-07-11 16:02 ` Chris Wedgwood
2005-07-15 12:17 ` Pavel Machek
2005-07-13 15:59 ` Bill Davidsen
2005-07-13 16:47 ` Lee Revell
2005-07-10 0:44 ` pmarques
2005-07-09 18:39 ` Diego Calleja
2005-07-09 18:41 ` Lee Revell
2005-07-09 18:49 ` Lee Revell
2005-07-09 18:50 ` Chris Wedgwood
2005-07-11 18:38 ` Martin J. Bligh
2005-07-11 20:25 ` Lee Revell
2005-07-11 20:39 ` Chris Friesen
2005-07-12 0:30 ` Lee Revell
2005-07-12 4:07 ` Martin J. Bligh
2005-07-12 4:13 ` Lee Revell
2005-07-12 4:30 ` Martin J. Bligh
2005-07-12 14:21 ` Lee Revell
2005-07-12 14:24 ` Lee Revell
2005-07-12 14:56 ` Martin J. Bligh
2005-07-12 15:00 ` Lee Revell
2005-07-12 15:08 ` Martin J. Bligh
2005-07-12 15:10 ` Lee Revell
2005-07-12 15:22 ` Martin J. Bligh
2005-07-12 19:30 ` Lee Revell
2005-07-12 20:58 ` Lee Revell
2005-07-12 22:22 ` Martin J. Bligh
2005-07-13 5:37 ` Lee Revell
2005-07-13 10:38 ` Jan Engelhardt
2005-07-13 18:42 ` High irq load (Re: [PATCH] i386: Selectable Frequency of the Timer Interrupt) Linus Torvalds
2005-07-14 14:25 ` Peter Osterlund [this message]
2005-07-18 5:53 ` Herbert Poetzl
2005-07-12 0:38 ` [PATCH] i386: Selectable Frequency of the Timer Interrupt George Anzinger
2005-07-12 12:10 ` Vojtech Pavlik
2005-07-12 12:39 ` Con Kolivas
2005-07-12 12:52 ` Con Kolivas
2005-07-12 15:57 ` George Anzinger
2005-07-12 16:27 ` Vojtech Pavlik
2005-07-13 16:26 ` Bill Davidsen
2005-07-13 16:46 ` Lee Revell
2005-07-13 17:24 ` David Lang
2005-07-13 18:42 ` Vojtech Pavlik
2005-07-13 19:10 ` Linus Torvalds
2005-07-13 19:13 ` Lee Revell
2005-07-13 19:32 ` Dmitry Torokhov
2005-07-13 19:33 ` Martin J. Bligh
2005-07-13 20:02 ` Fernando Lopez-Lezcano
2005-07-13 20:17 ` Lee Revell
2005-07-13 20:24 ` Lee Revell
2005-07-13 20:48 ` Andrew Morton
2005-07-13 21:16 ` Chris Wedgwood
2005-07-13 21:24 ` Lee Revell
2005-07-13 21:35 ` Martin J. Bligh
2005-07-13 21:37 ` Chris Friesen
2005-07-13 21:56 ` Chris Wedgwood
2005-07-13 23:07 ` George Anzinger
2005-07-13 21:29 ` Martin J. Bligh
2005-07-13 21:30 ` Lee Revell
2005-07-13 23:41 ` dean gaudet
2005-07-14 0:07 ` Petr Vandrovec
2005-07-14 9:24 ` Jan Engelhardt
2005-07-14 14:20 ` Lee Revell
2005-07-14 18:05 ` Jan Engelhardt
2005-07-14 18:20 ` Linus Torvalds
2005-07-14 0:51 ` Chris Wedgwood
2005-07-14 1:13 ` dean gaudet
2005-07-14 1:33 ` Lee Revell
2005-07-14 1:54 ` Linus Torvalds
2005-07-14 7:42 ` Arjan van de Ven
2005-07-14 12:13 ` Vojtech Pavlik
2005-07-14 16:37 ` Linus Torvalds
2005-07-14 17:02 ` Arjan van de Ven
2005-07-14 17:21 ` Linus Torvalds
2005-07-14 19:09 ` Russell King
2005-07-14 20:06 ` Linus Torvalds
2005-07-14 20:30 ` Russell King
2005-07-15 8:15 ` Gerd Knorr
2005-07-14 20:38 ` Johannes Stezenbach
2005-07-14 17:42 ` Al Boldi
2005-07-14 19:42 ` john stultz
2005-07-14 20:13 ` Linus Torvalds
2005-07-14 20:41 ` Christoph Lameter
2005-07-14 23:03 ` Chris Wedgwood
2005-07-14 21:54 ` john stultz
2005-07-14 22:43 ` Alan Cox
2005-07-14 23:19 ` Linus Torvalds
2005-07-15 12:33 ` Alan Cox
2005-07-14 17:10 ` Chris Friesen
2005-07-14 17:24 ` Linus Torvalds
2005-07-14 19:18 ` john stultz
2005-07-14 22:37 ` Alan Cox
2005-07-14 23:13 ` Linus Torvalds
2005-07-14 23:32 ` Linus Torvalds
2005-07-15 1:17 ` Eric St-Laurent
2005-07-14 23:17 ` Lee Revell
2005-07-14 23:25 ` Linus Torvalds
2005-07-14 23:41 ` Lee Revell
2005-07-14 23:49 ` Linus Torvalds
2005-07-14 23:53 ` Lee Revell
2005-07-15 12:42 ` Bill Davidsen
2005-07-14 23:57 ` Lee Revell
2005-07-15 2:30 ` Fernando Lopez-Lezcano
2005-07-15 12:46 ` Bill Davidsen
2005-07-15 16:46 ` Fernando Lopez-Lezcano
[not found] ` <Pine.LNX.4.58.0507141648070.19183-hNm40g4Ew95AfugRpC6u6w@public.gmane.org>
2005-07-30 5:49 ` [GIT PATCH] ACPI patches for 2.6.13 Len Brown
2005-07-30 5:49 ` Len Brown
2005-07-30 9:58 ` Pavel Machek
2005-07-30 9:58 ` [ACPI] " Pavel Machek
2005-08-03 23:16 ` [GIT PATCH] ACPI patches for 2.6.13-rc5 Len Brown
2005-08-03 23:16 ` Len Brown
2005-08-04 17:11 ` [GIT PATCH] ACPI patches for 2.6.13-rc5+ Len Brown
2005-08-04 17:11 ` Len Brown
2005-08-15 20:35 ` [GIT PATCH] ACPI patch for 2.6.13-rc6 Len Brown
2005-08-15 20:35 ` Len Brown
2005-07-14 23:50 ` [PATCH] i386: Selectable Frequency of the Timer Interrupt Lee Revell
2005-07-15 4:08 ` Con Kolivas
2005-07-15 4:17 ` Lee Revell
2005-07-15 4:54 ` Zwane Mwaikambo
2005-07-15 16:59 ` Lee Revell
2005-07-15 14:51 ` kernel
2005-07-14 18:00 ` Andrew Morton
2005-07-14 8:38 ` Ingo Molnar
2005-07-14 14:55 ` Lee Revell
2005-07-14 15:02 ` Christoph Lameter
2005-07-14 15:25 ` Lee Revell
2005-07-15 11:38 ` [OT] high precision hardware (was Re: [PATCH] i386: Selectable Frequency of the Timer Interrupt) Paul Jakma
2005-07-15 15:57 ` Christoph Lameter
2005-07-15 16:13 ` Lee Revell
2005-07-14 2:08 ` [PATCH] i386: Selectable Frequency of the Timer Interrupt Lee Revell
2005-07-14 9:56 ` Maciej W. Rozycki
2005-07-15 0:04 ` Jesper Juhl
2005-07-15 0:15 ` Lee Revell
2005-07-15 0:17 ` Jesper Juhl
2005-07-15 0:42 ` Linus Torvalds
2005-07-15 8:41 ` Russell King
2005-07-15 0:24 ` Linus Torvalds
2005-07-15 1:40 ` Jesper Juhl
2005-07-15 2:00 ` Eric St-Laurent
2005-07-15 19:58 ` Stephen Pollei
2005-07-16 5:16 ` Eric St-Laurent
2005-07-15 2:07 ` Bill Davidsen
2005-07-15 9:36 ` Matthias Urlichs
2005-07-15 3:46 ` Jesper Juhl
2005-07-15 5:04 ` Linus Torvalds
2005-07-15 13:12 ` Jesper Juhl
2005-07-17 2:13 ` Jesper Juhl
2005-07-17 2:35 ` Lee Revell
2005-07-17 2:35 ` Nish Aravamudan
2005-07-17 3:55 ` Lee Revell
2005-07-23 23:40 ` randy_dunlap
2005-07-25 13:26 ` Vojtech Pavlik
2005-07-23 23:48 ` randy_dunlap
2005-07-23 23:52 ` Jesper Juhl
2005-07-24 12:58 ` Bill Davidsen
2005-07-15 8:44 ` Russell King
2005-07-15 15:41 ` Pavel Machek
2005-07-13 20:02 ` Diego Calleja
2005-07-13 19:35 ` Benjamin LaHaise
2005-07-13 19:41 ` Vojtech Pavlik
2005-07-13 19:53 ` Benjamin LaHaise
2005-07-14 10:04 ` Maciej W. Rozycki
2005-07-13 19:52 ` George Anzinger
2005-07-13 23:54 ` Con Kolivas
2005-07-14 0:43 ` George Anzinger
2005-07-14 10:25 ` Krzysztof Halasa
2005-07-14 12:19 ` Vojtech Pavlik
2005-07-14 21:19 ` Krzysztof Halasa
2005-07-15 1:19 ` Bill Davidsen
2005-07-12 13:30 ` Vojtech Pavlik
2005-07-12 14:05 ` Jan Engelhardt
2005-07-12 16:07 ` Vojtech Pavlik
2005-07-12 15:26 ` [PATCH] " Martin J. Bligh
2005-07-12 17:50 ` john stultz
2005-07-12 22:30 ` Nishanth Aravamudan
2005-07-12 17:56 ` john stultz
2005-07-12 0:45 ` Lee Revell
2005-07-11 13:18 ` Alan Cox
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=m3zmsppirb.fsf@telia.com \
--to=petero2@telia.com \
--cc=akpm@osdl.org \
--cc=azarah@nosferatu.za.org \
--cc=cfriesen@nortel.com \
--cc=christoph@lameter.org \
--cc=cw@f00f.org \
--cc=diegocg@gmail.com \
--cc=jengelh@linux01.gwdg.de \
--cc=k.s.matheussen@notam02.no \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@mbligh.org \
--cc=rlrevell@joe-job.com \
--cc=torvalds@osdl.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.