From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>, Theodore Tso <tytso@mit.edu>,
Jeff Garzik <jeff@garzik.org>, Neil Brown <neilb@suse.de>,
ext2-devel <ext2-devel@lists.sourceforge.net>,
linux-kernel@vger.kernel.org,
Chase Venters <chase.venters@clientec.com>,
cmm@us.ibm.com, linux-fsdevel@vger.kernel.org,
Kyle Moffett <mrmacman_g4@mac.com>,
Alex Tomas <alex@clusterfs.com>,
Andreas Dilger <adilger@clusterfs.com>
Subject: Re: Stable/devel policy - was Re: [RFC 0/13] extents and 48bit ext3
Date: Sun, 11 Jun 2006 09:32:14 +0200 [thread overview]
Message-ID: <20060611073214.GB11558@elte.hu> (raw)
In-Reply-To: <Pine.LNX.4.64.0606102207030.5498@g5.osdl.org>
* Linus Torvalds <torvalds@osdl.org> wrote:
> And even more interestingly (at least to me), the question might
> become one of "how does that affect the tools and build and
> configuration infrastructure", and just the general flow of
> development.
>
> I don't think one or two filesystems (and a few drivers) splitting is
> anythign new, but if this ends up becoming _more_ common, maybe that
> implies a new model entirely..
at least for core kernel stuff, it's hard to split things in any
manageable way (as you mentioned it as well) - so higher flux is
inevitable.
So what i've been focusing on more in the past year or so is to enable
the core kernel to take more development flux, via kernel features.
Instead of adding more features to the kernel, i'm quite interested in
seeing more technologies that make a higher development flux safer: to
make the kernel more debuggable, to make bugs more reportable for users,
to make the effects of bugs less harmful, and to make the kernel itself
notice more bugs by itself.
To be able to handle a higher development flux in core code, i think we
need the following policies wrt. core kernel changes:
- More code consolidation between architectures and subsystems.
Core kernel changes impact "non-mainstream" architectures the most -
while some of our best technologies root from non-mainstream
technologies. So it's a net loss to only concentrate on the
mainstream, because developer and technology distribution does not
follow user distribution.
The generic irq subsystem, spinlock and semaphore/mutex consolidation
are all efforts in this direction. I consider the Generic Time Of Day
(GTOD) effort a similarly important item, for the same reasons. There
are other good examples too, for example klibc is a good step towards
a more consolidated boot process. The Xen subarch work triggers
consolidation too - etc. Andrew's policy of "you must not break _any_
architecture in -mm" is very important too.
And we should do consolidation even in cases where there's some
minimal runtime cost. Being able to handle higher flux is more
important than getting the last cycle out of the system. This does
not mean we should reject patches that do get those last cycles, this
only means we should not reject consolidation patches on the grounds
that they _lose_ a few cycles. I dont think this is a common problem
for consolidation projects right now - but it could happen in the
future.
- Even more cleanups.
We always preferred cleanups but it now becomes critical: i strongly
believe that cleanups must take precedence over feature work. [with a
few rare and temporary exceptions perhaps, like hardware-enablement
or really critical features.] It's much easier to spot bugs in clean
code, plus it's much easier for automated correctness validators to
find bugs in clean code.
(My own examples here include spinlock-init cleanups, which directly
enabled things like the lock validator. But pure code cleanups apply
too. )
- More automated correctness-checking tools and kernel features.
While the preferred mode of avoiding bugs should be a clean
design and clean code, higher flux introduces higher noise and bugs
are inevitable. So the importance of automated tools (both static and
dynamic analysis) increased.
Sparse annotations are one good example. My own examples here are the
lock validator, the mutex debugging code, the consolidated
spinlock debugging code. Some of these are direct feature-enablers:
for example the smp_processor_id() debugging code directly enabled a
safe and painless migration to PREEMPT_BKL. One nice feature in the
works that can find hard-to-spot bugs is kmemleak.
- Coding style police!
With higher development flux it is becoming even more important for
kernel developers to review other developer's work. But that is very
hard if the coding style varies too much. This is a fundamentally
human problem, and the only sane solution is brutal: the _strict_
Linus coding style must be used in all high-flux subsystems.
- More debuggability, reportability.
In this area we still suck quite a bit, and this affects userspace
too: currently we have nothing equivalent to things like Dr Watson,
in Linux most of the info about the first userspace crash almost
always gets lost! (and even afterwards, once debug packages are
downloaded and the app is run in gdb, it's still too painful for the
user, so we lose lots of feedback.)
Some of the GUIs try to do something about this and automate crash
reporting, but it doesnt cover most of the app crashes and userspace
clearly needs kernel help, because ptrace is too inflexible for this
purpose. (help is on the way though, there's a next-gen ptrace
project that solves these problems very cleanly.)
There are a number of important projects going on in this area - for
example the dwarf unwinder for x86_64 to improve the quality of
kernel oopses, and kgdb (or bits of NLKD) if it gets clean enough.
my own impression is that things are going in the right direction, but
that there should be more awareness of these principles. I think if we
add a couple of more key technologies then we can take the higher kernel
development flux just fine, without compromising quality. Even though
Linux has lots of developers, we should be more economic with that
development power and should waste less of that on unnecessarily complex
debugging tasks.
I do consider the forking of a subsystem the "easy way out" - the hard
and more correct approach is i think to turn every drastic rewrite into
small manageable steps. That's much easier said than done, and it's
sometimes 10 times the work but it's alot safer - and the end result is
often wildly different (and alot cleaner!) from what one would do via a
drastic rewrite. A dumb 'cp -a' copying of a subsystem will preserve
most of the legacies and architectural inefficiencies. Even an
intelligent drastic rewrite preserves most of the legacies - there's
just so much of change users can take at once, and _eventually_ a new
subsystem has to be exposed to real users - at which point the
compatibility constraints apply again. I have yet to see a single case
of hard physical necessity to throw away an old subsystem due to
legacies. I think the prime example to follow is how Al Viro works -
he's beein maintaining the VFS for many years without having to
duplicate functionality, without breaking the world, but he still
managed to turn the VFS upside down, inside out, in small, manageable
steps. It _is_ possible in almost every case, for all but the most
spaghetti pieces of code.
Ingo
next prev parent reply other threads:[~2006-06-11 7:32 UTC|newest]
Thread overview: 294+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-09 1:20 [RFC 0/13] extents and 48bit ext3 Mingming Cao
2006-06-09 2:40 ` Valdis.Kletnieks
2006-06-09 8:20 ` Andreas Dilger
2006-06-09 18:35 ` [Ext2-devel] " Stephen C. Tweedie
2006-06-09 19:20 ` Jeff Garzik
2006-06-09 19:28 ` Alex Tomas
2006-06-09 19:32 ` Jeff Garzik
2006-06-09 19:41 ` Alex Tomas
2006-06-09 15:23 ` Mingming Cao
2006-06-09 2:49 ` Jeff Garzik
2006-06-09 8:35 ` Andreas Dilger
2006-06-09 15:08 ` Jeff Garzik
2006-06-09 15:25 ` Jeff Garzik
2006-06-09 15:40 ` Linus Torvalds
2006-06-09 15:47 ` Jeff Garzik
2006-06-09 15:55 ` Alex Tomas
2006-06-09 15:56 ` Jeff Garzik
2006-06-09 16:07 ` Alex Tomas
2006-06-09 16:09 ` [Ext2-devel] " Jeff Garzik
2006-06-09 18:04 ` Matthew Frost
2006-06-09 18:10 ` Alex Tomas
2006-06-09 18:14 ` [Ext2-devel] " Andreas Dilger
2006-06-09 18:51 ` Jeff Garzik
2006-06-09 19:39 ` Gerrit Huizenga
2006-06-09 19:45 ` [Ext2-devel] " Jeff Garzik
2006-06-09 20:38 ` Gerrit Huizenga
2006-06-10 10:03 ` Christoph Hellwig
2006-06-09 19:49 ` [Ext2-devel] " Theodore Tso
2006-06-09 20:04 ` Jeff Garzik
2006-06-09 20:57 ` Stephen C. Tweedie
2006-06-09 21:49 ` Jeff Garzik
2006-06-09 21:55 ` [Ext2-devel] " Stephen C. Tweedie
2006-06-09 23:44 ` Jeff Garzik
2006-06-10 0:45 ` [Ext2-devel] " Andreas Dilger
2006-06-10 0:47 ` Theodore Tso
2006-06-10 1:09 ` Jeff Garzik
2006-06-10 1:30 ` [Ext2-devel] " Andreas Dilger
2006-06-10 1:43 ` Jeff Garzik
2006-06-10 2:03 ` Theodore Tso
2006-06-10 2:11 ` [Ext2-devel] " Jeff Garzik
2006-06-10 2:54 ` Theodore Tso
2006-06-10 3:11 ` Jeff Garzik
2006-06-10 12:15 ` Theodore Tso
2006-06-10 14:31 ` Jeff Garzik
2006-06-10 2:58 ` [Ext2-devel] " Jeff Garzik
2006-06-10 2:26 ` Andreas Dilger
2006-06-10 2:31 ` Jeff Garzik
2006-06-10 4:22 ` Andreas Dilger
2006-06-09 22:37 ` [Ext2-devel] " Andreas Dilger
2006-06-11 16:02 ` Arjan van de Ven
2006-06-11 16:30 ` Nikita Danilov
2006-06-11 16:55 ` [Ext2-devel] " Arjan van de Ven
2006-06-12 6:35 ` Andreas Dilger
2006-06-12 22:06 ` [Ext2-devel] " Pavel Machek
2006-06-14 14:31 ` Barry K. Nathan
2006-06-14 21:34 ` [Ext2-devel] " Pavel Machek
2006-06-15 0:28 ` Barry K. Nathan
2006-06-15 4:55 ` Theodore Tso
2006-06-15 7:43 ` Barry K. Nathan
2006-06-15 9:15 ` Pavel Machek
2006-06-15 9:40 ` Barry K. Nathan
2006-06-15 9:50 ` [Ext2-devel] " Pavel Machek
2006-06-09 20:52 ` Stephen C. Tweedie
2006-06-09 21:47 ` [Ext2-devel] " Jeff Garzik
2006-06-10 0:41 ` James Morris
2006-06-09 16:01 ` Linus Torvalds
2006-06-09 20:38 ` Stephen C. Tweedie
2006-06-09 15:57 ` Jeff Garzik
2006-06-09 16:10 ` [Ext2-devel] " Alex Tomas
2006-06-09 16:10 ` Jeff Garzik
2006-06-09 16:24 ` Erik Mouw
2006-06-09 16:28 ` Jeff Garzik
2006-06-09 16:24 ` [Ext2-devel] " Chase Venters
2006-06-09 16:25 ` Alex Tomas
2006-06-09 16:28 ` Jeff Garzik
2006-06-09 16:50 ` Alex Tomas
2006-06-09 16:53 ` [Ext2-devel] " Jeff Garzik
2006-06-09 17:01 ` Alex Tomas
2006-06-09 17:10 ` Jeff Garzik
2006-06-09 16:25 ` Linus Torvalds
2006-06-09 16:48 ` Alex Tomas
2006-06-09 16:54 ` KELEMEN Peter
2006-06-09 16:55 ` Jeff Garzik
2006-06-09 17:12 ` [Ext2-devel] " Alex Tomas
2006-06-09 17:12 ` Jeff Garzik
2006-06-09 19:57 ` Theodore Tso
2006-06-09 20:09 ` Jeff Garzik
2006-06-09 20:14 ` Alex Tomas
2006-06-09 20:28 ` Jeff Garzik
2006-06-19 7:48 ` [Ext2-devel] " Helge Hafting
2006-06-09 20:38 ` Joel Becker
2006-06-09 20:50 ` Dave Jones
2006-06-09 21:09 ` Joel Becker
2006-06-09 21:51 ` Mike Snitzer
2006-06-09 21:32 ` [Ext2-devel] " Jeff Garzik
2006-06-09 22:56 ` Andreas Dilger
2006-06-09 23:06 ` Linus Torvalds
2006-06-09 23:09 ` Jeff Garzik
2006-06-09 23:37 ` [Ext2-devel] " Andreas Dilger
2006-06-09 23:54 ` Linus Torvalds
2006-06-09 21:03 ` Theodore Tso
2006-06-09 21:24 ` Joel Becker
2006-06-09 21:36 ` [Ext2-devel] " Chase Venters
2006-06-09 21:51 ` Theodore Tso
2006-06-09 22:07 ` Joel Becker
2006-06-09 22:31 ` [Ext2-devel] " Theodore Tso
2006-06-09 22:47 ` Joel Becker
2006-06-09 23:54 ` [Ext2-devel] " Theodore Tso
2006-06-09 23:48 ` Jeff Garzik
2006-06-12 8:58 ` Jes Sorensen
2006-06-10 0:07 ` Olivier Galibert
2006-06-10 0:13 ` Jeff Garzik
2006-06-09 16:54 ` [Ext2-devel] " Linus Torvalds
2006-06-09 17:04 ` Alex Tomas
2006-06-09 17:30 ` [Ext2-devel] " Linus Torvalds
2006-06-09 17:41 ` Matthew Wilcox
2006-06-09 17:50 ` Jeff Garzik
2006-06-09 18:00 ` Alex Tomas
2006-06-09 18:04 ` [Ext2-devel] " Linus Torvalds
2006-06-09 18:17 ` Michael Poole
2006-06-09 17:44 ` Theodore Tso
2006-06-09 17:58 ` Jeff Garzik
2006-06-09 18:10 ` [Ext2-devel] " Andreas Dilger
2006-06-09 18:22 ` Linus Torvalds
2006-06-09 18:30 ` Alex Tomas
2006-06-09 18:38 ` Linus Torvalds
2006-06-09 18:50 ` [Ext2-devel] " Chase Venters
2006-06-09 19:00 ` Chase Venters
2006-06-10 13:33 ` Adrian Bunk
2006-06-09 19:01 ` Jeff Garzik
2006-06-10 19:27 ` Kyle Moffett
2006-06-10 19:44 ` Linus Torvalds
2006-06-10 20:02 ` [Ext2-devel] " Linus Torvalds
2006-06-10 21:26 ` Theodore Tso
2006-06-10 21:31 ` Linus Torvalds
2006-06-10 22:12 ` Jeff Garzik
2006-06-10 22:21 ` Jeff Garzik
2006-06-11 4:39 ` Stable/devel policy - was Re: [Ext2-devel] " Neil Brown
2006-06-11 5:19 ` Stable/devel policy - was " Linus Torvalds
2006-06-11 7:32 ` Ingo Molnar [this message]
2006-06-13 0:28 ` Stable/devel policy - was Re: [Ext2-devel] " Mingming Cao
2006-06-09 19:21 ` Alan Cox
2006-06-09 19:13 ` [Ext2-devel] " Chase Venters
2006-06-09 19:24 ` Alex Tomas
2006-06-09 19:25 ` Jeff Garzik
2006-06-09 19:35 ` Alex Tomas
2006-06-09 19:35 ` [Ext2-devel] " Jeff Garzik
2006-06-09 20:44 ` Joel Becker
2006-06-09 20:49 ` Alex Tomas
2006-06-09 21:11 ` Joel Becker
2006-06-09 21:20 ` Alex Tomas
2006-06-09 21:29 ` Joel Becker
2006-06-09 21:33 ` Alex Tomas
2006-06-09 21:43 ` Joel Becker
2006-06-11 20:14 ` [Ext2-devel] " grundig
2006-06-14 16:45 ` Alex Tomas
2006-06-09 19:22 ` Alex Tomas
2006-06-09 19:22 ` Jeff Garzik
2006-06-09 20:16 ` Andreas Dilger
2006-06-09 20:31 ` Linus Torvalds
2006-06-09 20:31 ` Jeff Garzik
2006-06-09 18:43 ` [Ext2-devel] " Jeff Garzik
2006-06-09 18:50 ` Diego Calleja
2006-06-09 19:08 ` Diego Calleja
2006-06-09 18:40 ` [Ext2-devel] " Jeff Garzik
2006-06-09 18:59 ` Andrew Morton
2006-06-09 19:16 ` Jeff Garzik
2006-06-09 20:27 ` [Ext2-devel] " Chase Venters
2006-06-09 20:44 ` Alan Cox
2006-06-11 15:52 ` [Ext2-devel] " Arjan van de Ven
2006-06-09 18:41 ` Jeff Garzik
2006-06-09 17:12 ` Jeff Anderson-Lee
2006-06-09 18:02 ` Andrew Morton
2006-06-10 19:10 ` Kyle Moffett
2006-06-10 19:27 ` Linus Torvalds
2006-06-09 15:28 ` [Ext2-devel] " Alex Tomas
2006-06-09 15:31 ` Matthew Wilcox
2006-06-10 3:26 ` Continuation Inodes Explained! (was Re: [RFC 0/13] extents and 48bit ext3) Valerie Henson
2006-06-10 5:25 ` Andreas Dilger
2006-06-10 5:41 ` Valerie Henson
2006-06-10 6:22 ` Andreas Dilger
2006-06-10 14:22 ` Jeff Garzik
2006-06-09 15:44 ` [Ext2-devel] [RFC 0/13] extents and 48bit ext3 Jeff Garzik
2006-06-09 15:53 ` Alex Tomas
2006-06-09 15:52 ` Jeff Garzik
2006-06-09 16:02 ` Alex Tomas
2006-06-09 16:04 ` [Ext2-devel] " Jeff Garzik
2006-06-09 18:29 ` Andreas Dilger
2006-06-09 15:53 ` [Ext2-devel] " Gerrit Huizenga
2006-06-09 16:03 ` Jeff Garzik
2006-06-09 16:09 ` Linus Torvalds
2006-06-09 17:58 ` Gerrit Huizenga
2006-06-09 18:25 ` [Ext2-devel] " Chase Venters
2006-06-10 13:46 ` Adrian Bunk
2006-06-10 14:42 ` Ingo Molnar
2006-06-10 15:03 ` Jeff Garzik
2006-06-11 6:00 ` Ingo Molnar
2006-06-10 16:00 ` Adrian Bunk
2006-06-10 16:05 ` Christoph Hellwig
2006-06-10 23:05 ` Mike Galbraith
2006-06-13 13:34 ` [Ext2-devel] " Helge Hafting
2006-06-09 20:32 ` Stephen C. Tweedie
2006-06-09 20:46 ` Linus Torvalds
2006-06-09 20:56 ` Alex Tomas
2006-06-20 6:15 ` [Ext2-devel] " Qi Yong
2006-06-20 8:26 ` Laurent Vivier
2006-06-20 8:30 ` Jeff Garzik
2006-06-20 9:21 ` Laurent Vivier
2006-06-20 9:48 ` Jeff Garzik
2006-06-20 10:40 ` Laurent Vivier
2006-06-09 17:14 ` Alan Cox
2006-06-09 9:13 ` Christoph Hellwig
2006-06-09 10:07 ` Andrew Morton
2006-06-09 15:40 ` Jeff Garzik
2006-06-09 15:42 ` Matthew Wilcox
2006-06-09 15:51 ` Jeff Garzik
2006-06-09 17:29 ` Alan Cox
2006-06-09 16:56 ` Andrew Morton
2006-06-09 17:07 ` Jeff Garzik
2006-06-09 17:35 ` Andrew Morton
2006-06-09 17:48 ` Jeff Garzik
2006-06-09 17:59 ` Jeff Garzik
2006-06-09 18:27 ` [Ext2-devel] " Mike Snitzer
2006-06-09 18:54 ` Jeff Garzik
2006-06-09 19:22 ` Alex Tomas
2006-06-09 19:23 ` Jeff Garzik
2006-06-09 22:49 ` Valdis.Kletnieks
2006-06-09 23:34 ` [Ext2-devel] " Andreas Dilger
2006-06-10 13:49 ` Adrian Bunk
2006-06-10 13:51 ` Christoph Hellwig
2006-06-10 14:54 ` Jeff Garzik
2006-06-10 18:01 ` [Ext2-devel] " Andreas Dilger
2006-06-09 21:42 ` Sonny Rao
2006-06-09 22:15 ` Andrew Morton
2006-06-09 23:11 ` Andreas Dilger
2006-06-09 23:15 ` Jeff Garzik
2006-06-10 3:37 ` Valerie Henson
2006-06-10 3:49 ` Nathan Scott
2006-06-09 18:23 ` Michael Poole
2006-06-09 18:55 ` Jeff Garzik
2006-06-09 19:42 ` [Ext2-devel] " Gerrit Huizenga
2006-06-09 20:00 ` Jeff Garzik
2006-06-09 20:08 ` Alex Tomas
2006-06-09 20:10 ` [Ext2-devel] " Jeff Garzik
2006-06-09 20:35 ` Theodore Tso
2006-06-09 21:41 ` Jeff Garzik
2006-06-09 21:45 ` [Ext2-devel] " Michael Poole
2006-06-09 21:53 ` Jeff Garzik
2006-06-09 22:04 ` Theodore Tso
2006-06-10 0:49 ` Sven-Haegar Koch
2006-06-10 1:06 ` Theodore Tso
2006-06-10 14:07 ` Olivier Galibert
2006-06-10 19:52 ` Theodore Tso
2006-06-09 10:49 ` Andreas Dilger
2006-06-09 11:26 ` Alex Tomas
2006-06-09 14:23 ` [Ext2-devel] " Jeff Garzik
2006-06-09 14:33 ` Alex Tomas
2006-06-09 14:34 ` Alex Tomas
2006-06-09 14:35 ` Jeff Garzik
2006-06-09 14:57 ` Alex Tomas
2006-06-09 15:17 ` [Ext2-devel] " Jeff Garzik
2006-06-09 16:21 ` Mike Snitzer
2006-06-09 16:27 ` Jeff Garzik
2006-06-09 16:48 ` Alex Tomas
2006-06-09 16:51 ` Jeff Garzik
2006-06-09 16:33 ` Alex Tomas
2006-06-09 16:37 ` [Ext2-devel] " Jeff Garzik
2006-06-09 22:52 ` Valdis.Kletnieks
2006-06-09 23:21 ` Andreas Dilger
2006-06-10 1:21 ` Valdis.Kletnieks
2006-06-10 2:09 ` [Ext2-devel] " Andreas Dilger
2006-06-10 2:45 ` Nicholas Miell
2006-06-10 4:29 ` Andreas Dilger
2006-06-09 16:56 ` Andreas Dilger
2006-06-09 17:32 ` [Ext2-devel] " Greg KH
2006-06-09 18:48 ` Jeff Garzik
2006-06-30 0:16 ` [RFC][Update 0/16]extents and 48bit ext3/4 patches Mingming Cao
2006-06-30 0:16 ` [RFC][Update][Patch 1/16]core extent map support Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 2/16]sector_t type format string Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 3/16]convert ext3_fsblk_t to sector_t to support >32 bit block in kernel Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 4/16]support 48 bit blk number in extents Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 5/16]block type convert " Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 6/16]handing unitialized extents Mingming Cao
2006-06-30 0:17 ` [RFC][Update][Patch 7/16]Core 64 bit JBD changes Mingming Cao
2006-06-30 0:18 ` [RFC][Update][Patch 8/16]Avoid potential block overflow when writing journal metadata tags Mingming Cao
2006-06-30 0:18 ` [RFC][Update][Patch 9/16]Fix reading of 32-bit tag descriptors Mingming Cao
2006-06-30 0:18 ` [RFC][Update][Patch 10/16]Cleanup journal_tag_bytes() Mingming Cao
2006-06-30 0:18 ` [RFC][Update][Patch 11/16]JBD layer in-kernel block variables type fixes Mingming Cao
2006-06-30 0:18 ` [RFC][Update][Patch 12/16]Fix undefined ">> 32" in revoke code Mingming Cao
2006-06-30 3:15 ` H. Peter Anvin
2006-06-30 0:18 ` [RFC][Update][Patch 13/16] 48 bit on-disk i_file_acl support Mingming Cao
2006-06-30 0:19 ` [RFC][Update][Patch 14/16] 48bit super block (metadata) changes Mingming Cao
2006-06-30 0:19 ` [RFC][Update][Patch 15/16] compile warning fix and change 64bit to INCOMPAT feature Mingming Cao
2006-06-30 0:19 ` [RFC][Update][Patch 16/16]Update ext3 superblock definition Mingming Cao
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=20060611073214.GB11558@elte.hu \
--to=mingo@elte.hu \
--cc=adilger@clusterfs.com \
--cc=akpm@osdl.org \
--cc=alex@clusterfs.com \
--cc=chase.venters@clientec.com \
--cc=cmm@us.ibm.com \
--cc=ext2-devel@lists.sourceforge.net \
--cc=jeff@garzik.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mrmacman_g4@mac.com \
--cc=neilb@suse.de \
--cc=torvalds@osdl.org \
--cc=tytso@mit.edu \
/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).