From: Jens Axboe <axboe@suse.de>
To: Andre Hedrick <andre@linux-ide.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Linus Torvalds <torvalds@transmeta.com>,
james <jdickens@ameritech.net>, Ingo Molnar <mingo@elte.hu>,
Jeff Garzik <jgarzik@pobox.com>,
Larry Kessler <kessler@us.ibm.com>,
linux-kernel mailing list <linux-kernel@vger.kernel.org>,
"Andrew V. Savochkin" <saw@saw.sw.com.sg>,
Rusty Russell <rusty@rustcorp.com.au>,
Richard J Moore <richardj_moore@uk.ibm.com>
Subject: Re: v2.6 vs v3.0
Date: Mon, 30 Sep 2002 13:54:21 +0200 [thread overview]
Message-ID: <20020930115421.GA979@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.10.10209300235480.13669-100000@master.linux-ide.org>
On Mon, Sep 30 2002, Andre Hedrick wrote:
> On Mon, 30 Sep 2002, Jens Axboe wrote:
>
> > On Sun, Sep 29 2002, Alan Cox wrote:
> > > On Sun, 2002-09-29 at 18:42, Linus Torvalds wrote:
> > > > I can say that the IDE code is the same code that is in 2.4.x, so if
> > > > you're comfortable with 2.4.x wrt IDE, then you should be comfy with
> > > > 2.5.x too.
> > >
> > > *NO*
> > >
> > > The IDE code is the experimental code in 2.4-ac. It is _NOT_ the IDE
> > > code in 2.4 and its a lot less tested. I don't think it has any
> > > corruption bugs but it is most definitely not the base 2.4 code and has
> > > plenty of non corruption bugs (PCMCIA hang, taskfile write hang, irq
> > > blocking performance problems)
> >
> > 2.5 at least does not have the taskfile hang, because I killed taskfile
> > io.
>
> Great :-/ Now that you have restored the "rq->wrq" aka working copy of
Make taskfile io work 2.4-ac, and it will work in 2.5 as well. The only
sensible thing to do right now was to disable it in 2.5, imo, and so I
did.
> the request which in its past life under PIO only updated to block when
> the entire request was completed. So there are no partial completions
> possible given the old method in the legacy path.
I haven't restored anything. 2.4-ac (your base) uses ->wrq copy, so does
2.5.
> One of the issues Linus kick my can over was the "requirement" of partial
> completeions. What I need rom block is a way to know how much is
> completed of the original total request. So whatever value is the
> original rq->nr_sectors assigned to "TF.2/HF.2" or nsector_offset(s),
> needs to be carried in block and updated to reflect how much more is
> remaining of this CDB task.
Now that the block layer really can do partial completions properly, I
patched ide-disk to do just that. It's not very well tested, just did it
last week as proof-of-concept.
This breaks the typical offset rules, ie
current_segment_offset = rq->hard_cur_sectors - rq->current_nr_sectors;
total_offset = rq->hard_nr_sectors - rq->nr_sectors;
Haven't though too much about that yet.
> I do not care if you call it "rq->dumbass_accounting_for_andre", but
> provide this dummy accounting variable in "struct request" and I will be
> happy. This has nothing to do with bio or bh segments from the kernel.
> It is everything about device side accounting carried by block; whereas,
> the ll_driver can use it to determine what or if there is to be another
> interrupt.
What you ask for is already there, but requires that you massage
current_nr_sectors and nr_sectors like ide has always done.
> Why are we getting lost interrupts?
>
> Because there is a beautiful "data-block completion" v/s "immediate
> interrupt assertion" race between the device and the kernel. So please
> provide a counter which can be used to determine where the interrupt
> driven partial completion model the driver is wrt the device/request.
>
> Jens, not asking for much.
Indeed, you are asking for stuff we've had for years.
===== drivers/ide/ide-disk.c 1.16 vs edited =====
--- 1.16/drivers/ide/ide-disk.c Sat Sep 21 02:32:22 2002
+++ edited/drivers/ide/ide-disk.c Mon Sep 23 17:18:48 2002
@@ -139,8 +139,8 @@
*/
static ide_startstop_t read_intr (ide_drive_t *drive)
{
- ide_hwif_t *hwif = HWIF(drive);
- int i = 0, nsect = 0, msect = drive->mult_count;
+ ide_hwif_t *hwif = HWIF(drive);
+ int nsect = 0, msect = drive->mult_count;
struct request *rq;
unsigned long flags;
u8 stat;
@@ -174,25 +174,24 @@
(unsigned long) rq->buffer+(nsect<<9), rq->nr_sectors-nsect);
#endif
ide_unmap_buffer(rq, to, &flags);
- rq->sector += nsect;
- rq->errors = 0;
- i = (rq->nr_sectors -= nsect);
- if (((long)(rq->current_nr_sectors -= nsect)) <= 0)
- ide_end_request(drive, 1, rq->hard_cur_sectors);
+
+ /*
+ * all done
+ */
+ if (!ide_end_request(drive, 1, nsect))
+ return ide_stopped;
+
/*
* Another BH Page walker and DATA INTERGRITY Questioned on ERROR.
* If passed back up on multimode read, BAD DATA could be ACKED
* to FILE SYSTEMS above ...
*/
- if (i > 0) {
- if (msect)
- goto read_next;
- if (HWGROUP(drive)->handler != NULL)
- BUG();
- ide_set_handler(drive, &read_intr, WAIT_CMD, NULL);
- return ide_started;
- }
- return ide_stopped;
+ if (msect)
+ goto read_next;
+ if (HWGROUP(drive)->handler != NULL)
+ BUG();
+ ide_set_handler(drive, &read_intr, WAIT_CMD, NULL);
+ return ide_started;
}
/*
@@ -203,7 +202,6 @@
ide_hwgroup_t *hwgroup = HWGROUP(drive);
ide_hwif_t *hwif = HWIF(drive);
struct request *rq = hwgroup->rq;
- int i = 0;
u8 stat;
if (!OK_STAT(stat = hwif->INB(IDE_STATUS_REG),
@@ -217,23 +215,19 @@
rq->nr_sectors-1);
#endif
if ((rq->nr_sectors == 1) ^ ((stat & DRQ_STAT) != 0)) {
- rq->sector++;
- rq->errors = 0;
- i = --rq->nr_sectors;
- --rq->current_nr_sectors;
- if (((long)rq->current_nr_sectors) <= 0)
- ide_end_request(drive, 1, rq->hard_cur_sectors);
- if (i > 0) {
- unsigned long flags;
- char *to = ide_map_buffer(rq, &flags);
- taskfile_output_data(drive, to, SECTOR_WORDS);
- ide_unmap_buffer(rq, to, &flags);
- if (HWGROUP(drive)->handler != NULL)
- BUG();
- ide_set_handler(drive, &write_intr, WAIT_CMD, NULL);
- return ide_started;
- }
- return ide_stopped;
+ unsigned long flags;
+ char *to;
+
+ if (!ide_end_request(drive, 1, 1))
+ return ide_stopped;
+
+ to = ide_map_buffer(rq, &flags);
+ taskfile_output_data(drive, to, SECTOR_WORDS);
+ ide_unmap_buffer(rq, to, &flags);
+ if (HWGROUP(drive)->handler != NULL)
+ BUG();
+ ide_set_handler(drive, &write_intr, WAIT_CMD, NULL);
+ return ide_started;
}
/* the original code did this here (?) */
return ide_stopped;
===== drivers/ide/ide-taskfile.c 1.4 vs edited =====
--- 1.4/drivers/ide/ide-taskfile.c Fri Sep 20 00:13:51 2002
+++ edited/drivers/ide/ide-taskfile.c Mon Sep 23 17:04:47 2002
@@ -611,9 +611,8 @@
* BH walking or segment can only be updated after we have a good
* hwif->INB(IDE_STATUS_REG); return.
*/
- if (--rq->current_nr_sectors <= 0)
- if (!DRIVER(drive)->end_request(drive, 1, 0))
- return ide_stopped;
+ if (!DRIVER(drive)->end_request(drive, 1, 1))
+ return ide_stopped;
/*
* ERM, it is techincally legal to leave/exit here but it makes
* a mess of the code ...
@@ -669,7 +668,6 @@
taskfile_input_data(drive, pBuf, nsect * SECTOR_WORDS);
task_unmap_rq(rq, pBuf, &flags);
rq->errors = 0;
- rq->current_nr_sectors -= nsect;
msect -= nsect;
/*
* FIXME :: We really can not legally get a new page/bh
@@ -677,10 +675,8 @@
* BH walking or segment can only be updated after we have a
* good hwif->INB(IDE_STATUS_REG); return.
*/
- if (!rq->current_nr_sectors) {
- if (!DRIVER(drive)->end_request(drive, 1, 0))
- return ide_stopped;
- }
+ if (!DRIVER(drive)->end_request(drive, 1, 1))
+ return ide_stopped;
} while (msect);
if (HWGROUP(drive)->handler == NULL)
ide_set_handler(drive, &task_mulin_intr, WAIT_WORSTCASE, NULL);
@@ -740,9 +736,9 @@
* Safe to update request for partial completions.
* We have a good STATUS CHECK!!!
*/
- if (!rq->current_nr_sectors)
- if (!DRIVER(drive)->end_request(drive, 1, 0))
- return ide_stopped;
+ if (!DRIVER(drive)->end_request(drive, 1, 1))
+ return ide_stopped;
+
if ((rq->current_nr_sectors==1) ^ (stat & DRQ_STAT)) {
rq = HWGROUP(drive)->rq;
pBuf = task_map_rq(rq, &flags);
@@ -802,13 +798,10 @@
msect -= nsect;
taskfile_output_data(drive, pBuf, nsect * SECTOR_WORDS);
task_unmap_rq(rq, pBuf, &flags);
- rq->current_nr_sectors -= nsect;
- if (!rq->current_nr_sectors) {
- if (!DRIVER(drive)->end_request(drive, 1, 0))
- if (!rq->bio) {
- stat = hwif->INB(IDE_STATUS_REG);
- return ide_stopped;
- }
+ if (!DRIVER(drive)->end_request(drive, 1, 1)) {
+ /* stat for...? */
+ stat = hwif->INB(IDE_STATUS_REG);
+ return ide_stopped;
}
} while (msect);
rq->errors = 0;
@@ -922,18 +915,14 @@
msect -= nsect;
taskfile_output_data(drive, pBuf, nsect * SECTOR_WORDS);
task_unmap_rq(rq, pBuf, &flags);
- rq->current_nr_sectors -= nsect;
/*
* FIXME :: We really can not legally get a new page/bh
* regardless, if this is the end of our segment.
* BH walking or segment can only be updated after we
* have a good hwif->INB(IDE_STATUS_REG); return.
*/
- if (!rq->current_nr_sectors) {
- if (!DRIVER(drive)->end_request(drive, 1, 0))
- if (!rq->bio)
- return ide_stopped;
- }
+ if (!DRIVER(drive)->end_request(drive, 1, 1))
+ return ide_stopped;
} while (msect);
rq->errors = 0;
if (HWGROUP(drive)->handler == NULL)
--
Jens Axboe
next prev parent reply other threads:[~2002-09-30 11:49 UTC|newest]
Thread overview: 212+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-24 1:54 [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAID device driver Larry Kessler
2002-09-24 2:22 ` Jeff Garzik
2002-09-26 15:52 ` Alan Cox
2002-09-26 22:55 ` [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAIDdevice driver Larry Kessler
2002-09-26 22:58 ` Jeff Garzik
2002-09-26 23:07 ` Linus Torvalds
2002-09-27 2:27 ` Jeff Garzik
2002-09-27 4:45 ` Linus Torvalds
2002-09-28 7:46 ` Ingo Molnar
2002-09-28 9:16 ` jw schultz
2002-09-30 14:05 ` Denis Vlasenko
2002-09-30 10:22 ` Tomas Szepe
2002-09-30 11:10 ` jw schultz
2002-09-30 11:17 ` Adrian Bunk
2002-09-30 19:48 ` Rik van Riel
2002-09-30 20:30 ` Christoph Hellwig
2002-09-28 15:40 ` Kernel version [Was: Re: [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAIDdevice driver] Horst von Brand
2002-09-29 1:31 ` v2.6 vs v3.0 Linus Torvalds
2002-09-29 6:14 ` james
2002-09-29 6:55 ` Andre Hedrick
2002-09-29 12:59 ` Gerhard Mack
2002-09-29 13:46 ` Dr. David Alan Gilbert
2002-09-29 14:06 ` Wakko Warner
2002-09-29 15:42 ` Jens Axboe
2002-09-29 16:21 ` Alan Cox
2002-09-29 16:17 ` Jens Axboe
2002-09-30 0:39 ` Jeff Chua
2002-09-29 16:22 ` Dave Jones
2002-09-29 16:26 ` Jens Axboe
2002-09-29 21:46 ` Matthias Andree
2002-09-30 7:05 ` Michael Clark
2002-09-30 7:22 ` Andrew Morton
2002-09-30 13:08 ` Kevin Corry
2002-09-30 13:05 ` Kevin Corry
2002-09-30 13:49 ` Michael Clark
2002-09-30 14:26 ` Kevin Corry
2002-09-30 13:59 ` Michael Clark
2002-09-30 15:50 ` Kevin Corry
2002-09-29 17:06 ` Jochen Friedrich
2002-09-29 15:18 ` Trever L. Adams
2002-09-29 15:45 ` Jens Axboe
2002-09-29 15:59 ` Trever L. Adams
2002-09-29 16:06 ` Jens Axboe
2002-09-29 16:13 ` Trever L. Adams
2002-09-30 6:54 ` Kai Henningsen
2002-09-30 18:40 ` Bill Davidsen
2002-10-01 12:38 ` Matthias Andree
2002-10-04 19:58 ` Bill Davidsen
2002-09-29 17:42 ` Linus Torvalds
2002-09-29 17:54 ` Rik van Riel
2002-09-29 18:24 ` Alan Cox
2002-09-30 7:56 ` Jens Axboe
2002-09-30 9:53 ` Andre Hedrick
2002-09-30 11:54 ` Jens Axboe [this message]
2002-09-30 12:58 ` Alan Cox
2002-09-30 13:05 ` Jens Axboe
2002-10-01 2:17 ` Andre Hedrick
2002-09-30 16:39 ` jbradford
2002-09-30 16:47 ` Pau Aliagas
2002-09-29 7:16 ` jbradford
2002-09-29 8:08 ` Jeff Garzik
2002-09-29 8:17 ` David S. Miller
2002-09-29 9:12 ` Jens Axboe
2002-09-29 11:19 ` Murray J. Root
2002-09-29 15:50 ` Jens Axboe
2002-09-30 7:01 ` Kai Henningsen
2002-09-29 16:04 ` Zwane Mwaikambo
2002-09-29 14:56 ` Alan Cox
2002-09-29 15:38 ` Jens Axboe
2002-09-29 16:30 ` Dave Jones
2002-09-29 16:42 ` Bjoern A. Zeeb
2002-09-29 21:16 ` Russell King
2002-09-29 21:32 ` Alan Cox
2002-09-29 21:49 ` steve
2002-09-29 21:52 ` Matthias Andree
2002-09-30 7:31 ` Tomas Szepe
2002-09-30 15:33 ` Jan Harkes
2002-09-30 18:13 ` Jeff Willis
2002-09-29 17:48 ` Linus Torvalds
2002-09-29 18:13 ` Jaroslav Kysela
2002-09-30 19:32 ` Bill Davidsen
2002-10-01 6:26 ` Jens Axboe
2002-10-01 7:54 ` Mikael Pettersson
2002-10-01 8:27 ` Jens Axboe
2002-10-01 8:44 ` jbradford
2002-10-01 11:31 ` Alan Cox
2002-10-01 11:25 ` Jens Axboe
2002-09-29 15:34 ` Andi Kleen
2002-09-29 17:26 ` Jochen Friedrich
2002-09-29 17:35 ` Jeff Garzik
2002-09-30 0:00 ` Andi Kleen
2002-10-01 19:28 ` IPv6 stability (success story ;) Petr Baudis
2002-09-29 9:15 ` v2.6 vs v3.0 Jens Axboe
2002-09-29 19:53 ` james
2002-09-29 15:26 ` Matthias Andree
2002-09-29 16:24 ` Alan Cox
2002-09-29 22:00 ` Matthias Andree
2002-09-30 19:02 ` Bill Davidsen
2002-09-30 18:37 ` Bill Davidsen
2002-10-03 15:51 ` [OT] 2.6 not 3.0 - (WAS Re: [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAIDdevice) jbradford
2002-10-03 15:57 ` Linus Torvalds
2002-10-03 16:16 ` [OT] 2.6 not 3.0 - (WAS Re: [PATCH-RFC] 4 of 4 - New problem jbradford
2002-10-03 22:30 ` Greg KH
2002-10-04 6:33 ` jbradford
2002-10-04 6:37 ` Greg KH
2002-10-04 7:17 ` jbradford
2002-10-04 7:30 ` Greg KH
2002-10-03 16:37 ` [OT] 2.6 not 3.0 - (WAS Re: [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAIDdevice) Alan Cox
2002-10-03 16:56 ` Linus Torvalds
2002-10-03 17:40 ` Alan Cox
2002-10-03 19:55 ` jlnance
2002-10-03 16:51 ` Dave Jones
2002-10-03 17:04 ` Alan Cox
2002-10-03 20:43 ` Andrew Morton
2002-10-03 22:05 ` Dave Jones
2002-10-04 3:46 ` Andreas Boman
2002-10-04 7:44 ` jbradford
2002-10-03 19:51 ` Rik van Riel
2002-10-04 22:26 ` [OT] 2.6 not 3.0 - (NUMA) Martin J. Bligh
2002-10-04 23:13 ` Linus Torvalds
2002-10-05 0:21 ` Martin J. Bligh
2002-10-05 0:36 ` Linus Torvalds
2002-10-05 1:25 ` Michael Hohnbaum
2002-10-05 20:30 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 - (NUMA)) Rob Landley
2002-10-06 2:15 ` Andrew Morton
2002-10-06 9:42 ` Russell King
2002-10-06 17:06 ` Alan Cox
2002-10-06 13:44 ` Oliver Neukum
2002-10-06 15:19 ` Martin J. Bligh
2002-10-06 15:14 ` Oliver Neukum
2002-10-07 8:08 ` Helge Hafting
2002-10-07 9:18 ` Oliver Neukum
2002-10-07 14:11 ` Jan Hudec
2002-10-07 15:01 ` Jesse Pollard
2002-10-07 15:34 ` Jan Hudec
2002-10-08 3:12 ` [OT] " Scott Mcdermott
2002-10-10 23:49 ` Mike Fedyk
2002-10-07 15:15 ` Martin J. Bligh
2002-10-08 13:49 ` Helge Hafting
2002-10-07 17:43 ` Daniel Phillips
2002-10-07 18:31 ` Andrew Morton
2002-10-07 18:51 ` Linus Torvalds
2002-10-07 20:14 ` Alan Cox
2002-10-07 20:31 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not3.0 " Andrew Morton
2002-10-07 20:46 ` Linus Torvalds
2002-10-07 20:44 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 " Linus Torvalds
2002-10-07 21:16 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not3.0 " Andrew Morton
2002-10-07 23:47 ` jw schultz
2002-10-11 0:02 ` Mike Fedyk
2002-10-07 18:58 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 " Chris Friesen
2002-10-07 19:21 ` Daniel Phillips
2002-10-07 19:35 ` Linus Torvalds
2002-10-08 0:39 ` Theodore Ts'o
2002-10-08 2:59 ` Andrew Morton
2002-10-08 16:15 ` Theodore Ts'o
2002-10-08 19:39 ` Andrew Morton
2002-10-08 17:06 ` Rob Landley
2002-10-07 19:36 ` Andrew Morton
2002-10-08 2:36 ` Simon Kirby
2002-10-08 2:47 ` Daniel Phillips
2002-10-08 2:50 ` Andrew Morton
2002-10-08 2:54 ` Simon Kirby
2002-10-08 3:00 ` Andrew Morton
2002-10-08 16:17 ` Theodore Ts'o
2002-10-08 12:49 ` jlnance
2002-10-08 17:09 ` Andrew Morton
2002-10-10 20:53 ` Thomas Zimmerman
2002-10-08 13:54 ` Helge Hafting
2002-10-08 15:31 ` Andreas Dilger
2002-10-07 19:05 ` Daniel Phillips
2002-10-07 19:24 ` Linus Torvalds
2002-10-07 20:02 ` Daniel Phillips
2002-10-07 20:14 ` Andrew Morton
2002-10-07 20:22 ` Daniel Phillips
2002-10-07 20:28 ` Linus Torvalds
2002-10-07 21:16 ` Daniel Phillips
2002-10-07 21:55 ` Linus Torvalds
2002-10-07 22:02 ` Daniel Phillips
2002-10-07 22:12 ` Andrew Morton
2002-10-08 8:49 ` Padraig Brady
2002-10-07 22:14 ` Charles Cazabon
2002-10-30 18:26 ` Lee Leahu
2002-10-06 6:33 ` Martin J. Bligh
2002-10-07 5:28 ` John Alvord
2002-10-07 8:39 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 n Giuliano Pochini
2002-10-07 13:56 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 - (NUMA)) Jesse Pollard
2002-10-07 14:03 ` Rob Landley
2002-10-08 22:14 ` Jesse Pollard
2002-10-08 19:11 ` Rob Landley
2002-10-09 8:17 ` Alexander Kellett
2002-10-07 18:22 ` Daniel Phillips
2002-10-08 8:19 ` Jan Hudec
2002-10-11 23:53 ` Hans Reiser
2002-10-11 20:26 ` Rob Landley
2002-10-12 4:14 ` Nick LeRoy
2002-10-13 17:27 ` Rob Landley
2002-10-12 10:03 ` Hans Reiser
2002-10-13 17:32 ` Rob Landley
2002-10-13 23:51 ` Hans Reiser
2002-10-14 16:33 ` Rob Landley
2002-10-14 7:10 ` Nikita Danilov
2002-10-21 15:36 ` [OT] Please don't call it 3.0!! (was Re: The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 - (NUMA))) Calin A. Culianu
2002-10-21 16:20 ` Wakko Warner
2002-10-12 11:42 ` The reason to call it 3.0 is the desktop (was Re: [OT] 2.6 not 3.0 - (NUMA)) Matthias Andree
2002-10-12 14:56 ` Hugh Dickins
2002-09-27 11:32 ` [PATCH-RFC] 4 of 4 - New problem logging macros, SCSI RAIDdevice driver Alan Cox
[not found] <fa.e52m04v.plkfqo@ifi.uio.no>
[not found] ` <fa.jgmettv.1hku79s@ifi.uio.no>
2002-09-30 0:16 ` v2.6 vs v3.0 walt
-- strict thread matches above, loose matches on Subject: below --
2002-09-30 18:20 John L. Males
[not found] ` <200209302059.g8UKxQEh007769@darkstar.example.net>
2002-09-30 22:02 ` John L. Males
2002-10-01 2:02 ` Nick Piggin
2002-10-01 11:20 ` Christoph Hellwig
2002-10-02 7:55 Mikael Pettersson
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=20020930115421.GA979@suse.de \
--to=axboe@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andre@linux-ide.org \
--cc=jdickens@ameritech.net \
--cc=jgarzik@pobox.com \
--cc=kessler@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=richardj_moore@uk.ibm.com \
--cc=rusty@rustcorp.com.au \
--cc=saw@saw.sw.com.sg \
--cc=torvalds@transmeta.com \
/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.