From: Kent Overstreet <koverstreet@google.com>
To: Tejun Heo <tj@kernel.org>
Cc: linux-bcache@vger.kernel.org, linux-kernel@vger.kernel.org,
dm-devel@redhat.com, axboe@kernel.dk, agk@redhat.com,
neilb@suse.de, drbd-dev@lists.linbit.com, vgoyal@redhat.com,
mpatocka@redhat.com, sage@newdream.net, yehuda@hq.newdream.net
Subject: Re: [PATCH v5 08/12] block: Introduce new bio_split()
Date: Mon, 13 Aug 2012 14:55:11 -0700 [thread overview]
Message-ID: <20120813215511.GE9541@google.com> (raw)
In-Reply-To: <20120808225839.GG6983@dhcp-172-17-108-109.mtv.corp.google.com>
On Wed, Aug 08, 2012 at 03:58:39PM -0700, Tejun Heo wrote:
> On Mon, Aug 06, 2012 at 03:08:37PM -0700, Kent Overstreet wrote:
> > + *
> > + * BIG FAT WARNING:
> > + *
> > + * If you're calling this from under generic_make_request() (i.e.
> > + * current->bio_list != NULL), you should mask out __GFP_WAIT and punt to
> > + * workqueue if the allocation fails. Otherwise, your code will probably
> > + * deadlock.
>
> If the condition is detectable, WARN_ON_ONCE() please.
I know I said I liked this idea, but I changed my mind.
Sticking a WARN_ON_ONCE() there is saying that passing __GFP_WAIT from
under generic_make_request() is always wrong - it might as well be a
BUG_ON() except warn is better for the user.
If that's true, then an assertion is completely wrong because we can
just do the right thing instead - mask out __GFP_WAIT if
current->bio_list != NULL and document that it can fail in that
situation.
Which is what my original code did.
The alternative is accepting that there are situations where it is
technically possible to pass __GFP_WAIT from under
generic_make_request() without deadlocking and allow it, but my position
is still that that is far too subtle to expect that it'll be gotten
right (especially considering the ways that the code is wrong today
wrt deadlocks).
But honestly this is turning into bikeshedding. The current bio
splitting and merge_bvec_fn stuff is crap, and there are worse potential
deadlocks/bugs in the existing code than what we're arguing over here.
WARNING: multiple messages have this Message-ID (diff)
From: Kent Overstreet <koverstreet@google.com>
To: Tejun Heo <tj@kernel.org>
Cc: axboe@kernel.dk, dm-devel@redhat.com, neilb@suse.de,
linux-kernel@vger.kernel.org, linux-bcache@vger.kernel.org,
mpatocka@redhat.com, vgoyal@redhat.com, yehuda@hq.newdream.net,
sage@newdream.net, agk@redhat.com, drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] [PATCH v5 08/12] block: Introduce new bio_split()
Date: Mon, 13 Aug 2012 14:55:11 -0700 [thread overview]
Message-ID: <20120813215511.GE9541@google.com> (raw)
In-Reply-To: <20120808225839.GG6983@dhcp-172-17-108-109.mtv.corp.google.com>
On Wed, Aug 08, 2012 at 03:58:39PM -0700, Tejun Heo wrote:
> On Mon, Aug 06, 2012 at 03:08:37PM -0700, Kent Overstreet wrote:
> > + *
> > + * BIG FAT WARNING:
> > + *
> > + * If you're calling this from under generic_make_request() (i.e.
> > + * current->bio_list != NULL), you should mask out __GFP_WAIT and punt to
> > + * workqueue if the allocation fails. Otherwise, your code will probably
> > + * deadlock.
>
> If the condition is detectable, WARN_ON_ONCE() please.
I know I said I liked this idea, but I changed my mind.
Sticking a WARN_ON_ONCE() there is saying that passing __GFP_WAIT from
under generic_make_request() is always wrong - it might as well be a
BUG_ON() except warn is better for the user.
If that's true, then an assertion is completely wrong because we can
just do the right thing instead - mask out __GFP_WAIT if
current->bio_list != NULL and document that it can fail in that
situation.
Which is what my original code did.
The alternative is accepting that there are situations where it is
technically possible to pass __GFP_WAIT from under
generic_make_request() without deadlocking and allow it, but my position
is still that that is far too subtle to expect that it'll be gotten
right (especially considering the ways that the code is wrong today
wrt deadlocks).
But honestly this is turning into bikeshedding. The current bio
splitting and merge_bvec_fn stuff is crap, and there are worse potential
deadlocks/bugs in the existing code than what we're arguing over here.
next prev parent reply other threads:[~2012-08-13 21:55 UTC|newest]
Thread overview: 196+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-06 22:08 [PATCH v5 00/12] Block cleanups Kent Overstreet
2012-08-06 22:08 ` Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 02/12] dm: Use bioset's front_pad for dm_rq_clone_bio_info Kent Overstreet
2012-08-06 22:08 ` Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-3-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:06 ` Tejun Heo
2012-08-08 22:06 ` Tejun Heo
2012-08-08 22:06 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808220612.GA6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-08 23:57 ` Kent Overstreet
2012-08-08 23:57 ` Kent Overstreet
2012-08-08 23:57 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120808235731.GA7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-11 5:24 ` Joseph Glanville
2012-08-11 5:24 ` Joseph Glanville
2012-08-11 5:24 ` [Drbd-dev] " Joseph Glanville
2012-08-13 21:44 ` Kent Overstreet
2012-08-13 21:44 ` [Drbd-dev] " Kent Overstreet
2012-08-19 11:46 ` Robert Kim App and Facebook Marketing
2012-08-19 11:46 ` [Drbd-dev] " Robert Kim App and Facebook Marketing
2012-08-14 5:33 ` Jun'ichi Nomura
2012-08-14 5:33 ` [Drbd-dev] " Jun'ichi Nomura
[not found] ` <5029E320.3050603-JhyGz2TFV9J8UrSeD/g0lQ@public.gmane.org>
2012-08-15 20:46 ` Kent Overstreet
2012-08-15 20:46 ` Kent Overstreet
2012-08-15 20:46 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 03/12] block: Add bio_reset() Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-4-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:11 ` Tejun Heo
2012-08-08 22:11 ` Tejun Heo
2012-08-08 22:11 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808221129.GB6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 0:07 ` Kent Overstreet
2012-08-09 0:07 ` Kent Overstreet
2012-08-09 0:07 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809000711.GB7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:00 ` Tejun Heo
2012-08-09 6:00 ` Tejun Heo
2012-08-09 6:00 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120809060019.GA2845-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 6:06 ` Kent Overstreet
2012-08-09 6:06 ` Kent Overstreet
2012-08-09 6:06 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809060640.GA9088-RcKxWJ4Cfj3IzGYXcIpNmNLIRw13R84JkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 6:30 ` Tejun Heo
2012-08-09 6:30 ` Tejun Heo
2012-08-09 6:30 ` [Drbd-dev] " Tejun Heo
2012-08-06 22:08 ` [PATCH v5 04/12] pktcdvd: Switch to bio_kmalloc() Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-5-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:13 ` Tejun Heo
2012-08-08 22:13 ` Tejun Heo
2012-08-08 22:13 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808221359.GC6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 0:08 ` Kent Overstreet
2012-08-09 0:08 ` Kent Overstreet
2012-08-09 0:08 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 05/12] block: Kill bi_destructor Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-6-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-07 3:19 ` Mike Snitzer
2012-08-07 3:19 ` Mike Snitzer
2012-08-07 3:19 ` [Drbd-dev] " Mike Snitzer
[not found] ` <20120807031921.GA31977-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-08-09 0:14 ` Kent Overstreet
2012-08-09 0:14 ` Kent Overstreet
2012-08-09 0:14 ` [Drbd-dev] " Kent Overstreet
2012-08-08 22:22 ` Tejun Heo
2012-08-08 22:22 ` [Drbd-dev] " Tejun Heo
2012-08-09 0:21 ` Kent Overstreet
2012-08-09 0:21 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809002154.GE7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:05 ` Tejun Heo
2012-08-09 6:05 ` Tejun Heo
2012-08-09 6:05 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120809060517.GB2845-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 6:12 ` Kent Overstreet
2012-08-09 6:12 ` Kent Overstreet
2012-08-09 6:12 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809061214.GA9128-RcKxWJ4Cfj3IzGYXcIpNmNLIRw13R84JkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 6:34 ` Tejun Heo
2012-08-09 6:34 ` Tejun Heo
2012-08-09 6:34 ` [Drbd-dev] " Tejun Heo
2012-08-15 22:19 ` Kent Overstreet
2012-08-15 22:19 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 06/12] block: Add an explicit bio flag for bios that own their bvec Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-7-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:28 ` Tejun Heo
2012-08-08 22:28 ` Tejun Heo
2012-08-08 22:28 ` [Drbd-dev] " Tejun Heo
2012-08-06 22:08 ` [PATCH v5 08/12] block: Introduce new bio_split() Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-9-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:58 ` Tejun Heo
2012-08-08 22:58 ` Tejun Heo
2012-08-08 22:58 ` [Drbd-dev] " Tejun Heo
2012-08-09 1:19 ` Kent Overstreet
2012-08-09 1:19 ` Kent Overstreet
2012-08-09 1:19 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809011928.GG7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:44 ` Tejun Heo
2012-08-09 6:44 ` Tejun Heo
2012-08-09 6:44 ` [Drbd-dev] " Tejun Heo
2012-08-13 21:55 ` Kent Overstreet [this message]
2012-08-13 21:55 ` Kent Overstreet
[not found] ` <20120813215511.GE9541-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-13 22:05 ` Tejun Heo
2012-08-13 22:05 ` Tejun Heo
2012-08-13 22:05 ` [Drbd-dev] " Tejun Heo
2012-08-08 23:05 ` Tejun Heo
2012-08-08 23:05 ` Tejun Heo
2012-08-08 23:05 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808230532.GH6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 1:39 ` Kent Overstreet
2012-08-09 1:39 ` Kent Overstreet
2012-08-09 1:39 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809013923.GH7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 7:22 ` Tejun Heo
2012-08-09 7:22 ` Tejun Heo
2012-08-09 7:22 ` [Drbd-dev] " Tejun Heo
2012-08-09 7:33 ` Kent Overstreet
2012-08-09 7:33 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809073334.GD9128-RcKxWJ4Cfj3IzGYXcIpNmNLIRw13R84JkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 17:32 ` Tejun Heo
2012-08-09 17:32 ` Tejun Heo
2012-08-09 17:32 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120809173217.GA6644-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-13 22:09 ` Kent Overstreet
2012-08-13 22:09 ` Kent Overstreet
2012-08-13 22:09 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 09/12] block: Rework bio_pair_split() Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-10-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 23:09 ` Tejun Heo
2012-08-08 23:09 ` Tejun Heo
2012-08-08 23:09 ` [Drbd-dev] " Tejun Heo
2012-08-06 22:08 ` [PATCH v5 10/12] block: Add bio_clone_kmalloc() Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-11-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 23:15 ` Tejun Heo
2012-08-08 23:15 ` Tejun Heo
2012-08-08 23:15 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808231552.GJ6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 1:57 ` Kent Overstreet
2012-08-09 1:57 ` Kent Overstreet
2012-08-09 1:57 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809015704.GI7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:55 ` Tejun Heo
2012-08-09 6:55 ` Tejun Heo
2012-08-09 6:55 ` [Drbd-dev] " Tejun Heo
2012-08-09 7:02 ` Kent Overstreet
2012-08-09 7:02 ` [Drbd-dev] " Kent Overstreet
2012-08-09 2:38 ` [PATCH] Consolidate bio_clone_bioset(), bio_kmalloc() Kent Overstreet
2012-08-09 2:38 ` Kent Overstreet
2012-08-09 2:38 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809023811.GJ7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:56 ` Tejun Heo
2012-08-09 6:56 ` Tejun Heo
2012-08-09 6:56 ` [Drbd-dev] " Tejun Heo
[not found] ` <1344290921-25154-1-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-06 22:08 ` [PATCH v5 01/12] block: Generalized bio pool freeing Kent Overstreet
2012-08-06 22:08 ` Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-2-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 22:25 ` Tejun Heo
2012-08-08 22:25 ` Tejun Heo
2012-08-08 22:25 ` [Drbd-dev] " Tejun Heo
2012-08-09 0:26 ` Kent Overstreet
2012-08-09 0:26 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 07/12] block: Rename bio_split() -> bio_pair_split() Kent Overstreet
2012-08-06 22:08 ` Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 11/12] block: Add bio_clone_bioset() Kent Overstreet
2012-08-06 22:08 ` Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-12-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-08 23:21 ` Tejun Heo
2012-08-08 23:21 ` Tejun Heo
2012-08-08 23:21 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808232120.GK6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 2:56 ` Kent Overstreet
2012-08-09 2:56 ` Kent Overstreet
2012-08-09 2:56 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809025610.GK7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 6:52 ` Tejun Heo
2012-08-09 6:52 ` Tejun Heo
2012-08-09 6:52 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120809065251.GD2845-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-09 6:59 ` Kent Overstreet
2012-08-09 6:59 ` Kent Overstreet
2012-08-09 6:59 ` [Drbd-dev] " Kent Overstreet
2012-08-06 22:08 ` [PATCH v5 12/12] block: Only clone bio vecs that are in use Kent Overstreet
2012-08-06 22:08 ` [Drbd-dev] " Kent Overstreet
[not found] ` <1344290921-25154-13-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-06 23:16 ` [dm-devel] " Mikulas Patocka
2012-08-06 23:16 ` Mikulas Patocka
2012-08-06 23:16 ` [Drbd-dev] " Mikulas Patocka
[not found] ` <Pine.LNX.4.64.1208061913500.21956-e+HWlsje6Db1wF9wiOj0lkEOCMrvLtNR@public.gmane.org>
2012-08-08 23:28 ` Tejun Heo
2012-08-08 23:28 ` Tejun Heo
2012-08-08 23:28 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120808232804.GL6983-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-08 23:47 ` Muthu Kumar
2012-08-08 23:47 ` Muthu Kumar
2012-08-08 23:47 ` [Drbd-dev] " Muthu Kumar
[not found] ` <CAFR8uedZiG0NWgWQQa03r+kKh8rT0jzpj+hwPzq+i7K6zhpT_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-08-09 3:19 ` Kent Overstreet
2012-08-09 3:19 ` Kent Overstreet
2012-08-09 3:19 ` [Drbd-dev] " Kent Overstreet
[not found] ` <20120809031936.GM7262-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-09 3:25 ` Kent Overstreet
2012-08-09 3:25 ` Kent Overstreet
2012-08-09 3:25 ` [Drbd-dev] " Kent Overstreet
2012-08-10 1:50 ` Muthu Kumar
2012-08-10 1:50 ` Muthu Kumar
2012-08-10 1:50 ` [Drbd-dev] " Muthu Kumar
2012-08-09 7:01 ` Tejun Heo
2012-08-09 7:01 ` Tejun Heo
2012-08-09 7:01 ` [Drbd-dev] " Tejun Heo
[not found] ` <20120809070154.GG2845-RcKxWJ4Cfj1J2suj2OqeGauc2jM2gXBXkQQo+JxHRPFibQn6LdNjmg@public.gmane.org>
2012-08-10 2:29 ` Muthu Kumar
2012-08-10 2:29 ` Muthu Kumar
2012-08-10 2:29 ` [Drbd-dev] " Muthu Kumar
2012-08-08 23:30 ` Tejun Heo
2012-08-08 23:30 ` Tejun Heo
2012-08-08 23:30 ` [Drbd-dev] " Tejun Heo
2012-08-09 3:06 ` Kent Overstreet
2012-08-09 3:06 ` [Drbd-dev] " Kent Overstreet
2012-08-09 17:37 ` Tejun Heo
2012-08-09 17:37 ` Tejun Heo
2012-08-09 17:37 ` [Drbd-dev] " Tejun Heo
2012-08-13 21:46 ` Kent Overstreet
2012-08-13 21:46 ` [Drbd-dev] " Kent Overstreet
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=20120813215511.GE9541@google.com \
--to=koverstreet@google.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=drbd-dev@lists.linbit.com \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=neilb@suse.de \
--cc=sage@newdream.net \
--cc=tj@kernel.org \
--cc=vgoyal@redhat.com \
--cc=yehuda@hq.newdream.net \
/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.