* Re: 2.6.0-mm1
@ 2003-12-23 16:34 Pascal Schmidt
2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe
0 siblings, 1 reply; 37+ messages in thread
From: Pascal Schmidt @ 2003-12-23 16:34 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel:
>> +atapi-mo-support.patch
>>
>> Fix support for ATAPI MO drives (needs updating to reflect the changes
>> in mt-ranier-support.patch).
> Since the atapi-mo patch is mine, is there something I need to do?
I figured it out. ;) This small additional patch on top of mm1 is
needed to get MO write support to work.
--- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003
+++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003
@@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom
ret = cdrom_mrw_open_write(cdi);
else if (CDROM_CAN(CDC_DVD_RAM))
ret = cdrom_dvdram_open_write(cdi);
+ else if (CDROM_CAN(CDC_MO_DRIVE))
+ ret = 0;
return ret;
}
--
Ciao,
Pascal
^ permalink raw reply [flat|nested] 37+ messages in thread* Re: 2.6.0-mm1 2003-12-23 16:34 2.6.0-mm1 Pascal Schmidt @ 2003-12-23 16:39 ` Jens Axboe 2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe 0 siblings, 1 reply; 37+ messages in thread From: Jens Axboe @ 2003-12-23 16:39 UTC (permalink / raw) To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel On Tue, Dec 23 2003, Pascal Schmidt wrote: > > On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel: > > >> +atapi-mo-support.patch > >> > >> Fix support for ATAPI MO drives (needs updating to reflect the changes > >> in mt-ranier-support.patch). > > Since the atapi-mo patch is mine, is there something I need to do? > > I figured it out. ;) This small additional patch on top of mm1 is > needed to get MO write support to work. > > > --- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003 > +++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003 > @@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom > ret = cdrom_mrw_open_write(cdi); > else if (CDROM_CAN(CDC_DVD_RAM)) > ret = cdrom_dvdram_open_write(cdi); > + else if (CDROM_CAN(CDC_MO_DRIVE)) > + ret = 0; Still needs cleanups, as mentioned in the other mail. Let me dig out the laptop and fix it up for posting. Jens ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe @ 2003-12-23 16:54 ` Jens Axboe 2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe 0 siblings, 1 reply; 37+ messages in thread From: Jens Axboe @ 2003-12-23 16:54 UTC (permalink / raw) To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel On Tue, Dec 23 2003, Jens Axboe wrote: > On Tue, Dec 23 2003, Pascal Schmidt wrote: > > > > On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel: > > > > >> +atapi-mo-support.patch > > >> > > >> Fix support for ATAPI MO drives (needs updating to reflect the changes > > >> in mt-ranier-support.patch). > > > Since the atapi-mo patch is mine, is there something I need to do? > > > > I figured it out. ;) This small additional patch on top of mm1 is > > needed to get MO write support to work. > > > > > > --- linux-2.6.0-mm1/drivers/cdrom/cdrom.c Tue Dec 23 17:26:27 2003 > > +++ linux-2.6.0-mm1-mo/drivers/cdrom/cdrom.c Tue Dec 23 17:11:50 2003 > > @@ -708,6 +708,8 @@ static int cdrom_open_write(struct cdrom > > ret = cdrom_mrw_open_write(cdi); > > else if (CDROM_CAN(CDC_DVD_RAM)) > > ret = cdrom_dvdram_open_write(cdi); > > + else if (CDROM_CAN(CDC_MO_DRIVE)) > > + ret = 0; > > Still needs cleanups, as mentioned in the other mail. Let me dig out > the laptop and fix it up for posting. A general update patch against 2.6.0-mm1, Andrew can you apply this for now? Looks like there was a merge error with cdi->use_count as well in mm1. Pascal, if you could take care of the mode sense check for RO media (see comment) that would be perfect. diff -urp linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c linux-2.6.0-mm1/drivers/cdrom/cdrom.c --- linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/cdrom/cdrom.c 2003-12-23 17:50:56.320349076 +0100 @@ -708,6 +708,11 @@ static int cdrom_open_write(struct cdrom ret = cdrom_mrw_open_write(cdi); else if (CDROM_CAN(CDC_DVD_RAM)) ret = cdrom_dvdram_open_write(cdi); + /* + * needs to really check whether media is writeable + */ + else if (CDROM_CAN(CDC_MO_DRIVE)) + ret = 0; return ret; } @@ -737,7 +742,7 @@ int cdrom_open(struct cdrom_device_info cdi->use_count++; ret = -EROFS; if (fp->f_mode & FMODE_WRITE) { - if (!(CDROM_CAN(CDC_RAM) || CDROM_CAN(CDC_MO_DRIVE))) + if (!CDROM_CAN(CDC_RAM)) goto out; if (cdrom_open_write(cdi)) goto out; @@ -750,8 +755,6 @@ int cdrom_open(struct cdrom_device_info else ret = open_for_data(cdi); - if (!ret) cdi->use_count++; - cdinfo(CD_OPEN, "Use count for \"/dev/%s\" now %d\n", cdi->name, cdi->use_count); /* Do this on open. Don't wait for mount, because they might not be mounting, but opening with O_NONBLOCK */ diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c linux-2.6.0-mm1/drivers/ide/ide-cd.c --- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/ide/ide-cd.c 2003-12-23 17:49:12.404670677 +0100 @@ -790,8 +790,8 @@ static int cdrom_decode_status(ide_drive * devices will return this error while flushing * data from cache */ if (!rq->errors) - info->write_timeout = jiffies + ATAPI_WAIT_BUSY; - rq->errors = 1; + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY; + ++rq->errors; if (time_after(jiffies, info->write_timeout)) do_end_request = 1; else { @@ -2950,6 +2950,7 @@ int ide_cdrom_probe_capabilities (ide_dr if (drive->media == ide_optical) { CDROM_CONFIG_FLAGS(drive)->mo_drive = 1; + CDROM_CONFIG_FLAGS(drive)->ram = 1; printk("%s: ATAPI magneto-optical drive\n", drive->name); return nslots; } @@ -3281,9 +3282,7 @@ int ide_cdrom_setup (ide_drive_t *drive) /* * set correct block size and read-only for non-ram media */ - set_disk_ro(drive->disk, - !(CDROM_CONFIG_FLAGS(drive)->ram || - CDROM_CONFIG_FLAGS(drive)->mo_drive)); + set_disk_ro(drive->disk, !CDROM_CONFIG_FLAGS(drive)->ram); blk_queue_hardsect_size(drive->queue, CD_FRAMESIZE); #if 0 diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h linux-2.6.0-mm1/drivers/ide/ide-cd.h --- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/ide/ide-cd.h 2003-12-23 17:48:19.939386898 +0100 @@ -39,7 +39,7 @@ * typical timeout for packet command */ #define ATAPI_WAIT_PC (60 * HZ) -#define ATAPI_WAIT_BUSY (5 * HZ) +#define ATAPI_WAIT_WRITE_BUSY (10 * HZ) /************************************************************************/ -- Jens Axboe ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe @ 2003-12-23 16:58 ` Jens Axboe 2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt 0 siblings, 1 reply; 37+ messages in thread From: Jens Axboe @ 2003-12-23 16:58 UTC (permalink / raw) To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel On Tue, Dec 23 2003, Jens Axboe wrote: > - rq->errors = 1; > + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY; > + ++rq->errors; Didn't mean to change the = 1, here's an updated one. diff -urp linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c linux-2.6.0-mm1/drivers/cdrom/cdrom.c --- linux-2.6.0-mm1.virgin/drivers/cdrom/cdrom.c 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/cdrom/cdrom.c 2003-12-23 17:50:56.320349076 +0100 @@ -497,7 +497,7 @@ int cdrom_mrw_probe_pc(struct cdrom_devi printk(KERN_ERR "cdrom: %s: unknown mrw mode page\n", cdi->name); return 1; } - + int cdrom_is_mrw(struct cdrom_device_info *cdi, int *write) { struct cdrom_generic_command cgc; @@ -708,6 +708,11 @@ static int cdrom_open_write(struct cdrom ret = cdrom_mrw_open_write(cdi); else if (CDROM_CAN(CDC_DVD_RAM)) ret = cdrom_dvdram_open_write(cdi); + /* + * needs to really check whether media is writeable + */ + else if (CDROM_CAN(CDC_MO_DRIVE)) + ret = 0; return ret; } @@ -737,7 +742,7 @@ int cdrom_open(struct cdrom_device_info cdi->use_count++; ret = -EROFS; if (fp->f_mode & FMODE_WRITE) { - if (!(CDROM_CAN(CDC_RAM) || CDROM_CAN(CDC_MO_DRIVE))) + if (!CDROM_CAN(CDC_RAM)) goto out; if (cdrom_open_write(cdi)) goto out; @@ -750,8 +755,6 @@ int cdrom_open(struct cdrom_device_info else ret = open_for_data(cdi); - if (!ret) cdi->use_count++; - cdinfo(CD_OPEN, "Use count for \"/dev/%s\" now %d\n", cdi->name, cdi->use_count); /* Do this on open. Don't wait for mount, because they might not be mounting, but opening with O_NONBLOCK */ diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c linux-2.6.0-mm1/drivers/ide/ide-cd.c --- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.c 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/ide/ide-cd.c 2003-12-23 17:57:26.326859551 +0100 @@ -790,7 +790,7 @@ static int cdrom_decode_status(ide_drive * devices will return this error while flushing * data from cache */ if (!rq->errors) - info->write_timeout = jiffies + ATAPI_WAIT_BUSY; + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY; rq->errors = 1; if (time_after(jiffies, info->write_timeout)) do_end_request = 1; @@ -2950,6 +2950,7 @@ int ide_cdrom_probe_capabilities (ide_dr if (drive->media == ide_optical) { CDROM_CONFIG_FLAGS(drive)->mo_drive = 1; + CDROM_CONFIG_FLAGS(drive)->ram = 1; printk("%s: ATAPI magneto-optical drive\n", drive->name); return nslots; } @@ -3281,9 +3282,7 @@ int ide_cdrom_setup (ide_drive_t *drive) /* * set correct block size and read-only for non-ram media */ - set_disk_ro(drive->disk, - !(CDROM_CONFIG_FLAGS(drive)->ram || - CDROM_CONFIG_FLAGS(drive)->mo_drive)); + set_disk_ro(drive->disk, !CDROM_CONFIG_FLAGS(drive)->ram); blk_queue_hardsect_size(drive->queue, CD_FRAMESIZE); #if 0 diff -urp linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h linux-2.6.0-mm1/drivers/ide/ide-cd.h --- linux-2.6.0-mm1.virgin/drivers/ide/ide-cd.h 2003-12-23 17:44:54.000000000 +0100 +++ linux-2.6.0-mm1/drivers/ide/ide-cd.h 2003-12-23 17:48:19.939386898 +0100 @@ -39,7 +39,7 @@ * typical timeout for packet command */ #define ATAPI_WAIT_PC (60 * HZ) -#define ATAPI_WAIT_BUSY (5 * HZ) +#define ATAPI_WAIT_WRITE_BUSY (10 * HZ) /************************************************************************/ -- Jens Axboe ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe @ 2003-12-23 17:29 ` Pascal Schmidt 2003-12-23 18:49 ` 2.6.0-mm1 Jens Axboe 0 siblings, 1 reply; 37+ messages in thread From: Pascal Schmidt @ 2003-12-23 17:29 UTC (permalink / raw) To: Jens Axboe; +Cc: linux-kernel On Tue, 23 Dec 2003, Jens Axboe wrote: > On Tue, Dec 23 2003, Jens Axboe wrote: > > - rq->errors = 1; > > + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY; > > + ++rq->errors; > > Didn't mean to change the = 1, here's an updated one. Applied, compiled, and tested. MO drive workes just fine with the updated patch applied. -- Ciao, Pascal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt @ 2003-12-23 18:49 ` Jens Axboe 0 siblings, 0 replies; 37+ messages in thread From: Jens Axboe @ 2003-12-23 18:49 UTC (permalink / raw) To: Pascal Schmidt; +Cc: linux-kernel On Tue, Dec 23 2003, Pascal Schmidt wrote: > On Tue, 23 Dec 2003, Jens Axboe wrote: > > > On Tue, Dec 23 2003, Jens Axboe wrote: > > > - rq->errors = 1; > > > + info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY; > > > + ++rq->errors; > > > > Didn't mean to change the = 1, here's an updated one. > > Applied, compiled, and tested. MO drive workes just fine with the > updated patch applied. Great, thanks for testing. Jens ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1
@ 2003-12-24 9:59 GCS
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 14:38 ` 2.6.0-mm1 GCS
0 siblings, 2 replies; 37+ messages in thread
From: GCS @ 2003-12-24 9:59 UTC (permalink / raw)
To: linux-kernel
Hi,
On Tue, Dec 23, 2003 at 05:11:31AM +0200, Andrew Morton <akpm@osdl.org> wrote:
> It would be appreciated if people who have
> significant patches in -mm could retest please.
It seems I can write CDs on my laptop now. AFAICR I was last trying it on
test8, but it was the same: if the image is over ~400Mb, the machine
freezes hard. If it's shorter, then it's ok, but still some lock or sth
is not unlocked, as the CPU is used more and more about five secs by one
or two percent. Sooner or later it's crashed as well, but I could
restart the machine before that happened. Rebooting to 2.4.2x and
writing CDs there was working all the time.
So I do not know if it's fixed since test8, or in 2.6.0-mm1, but I am
happy with it. Also, I have two problems with 2.6.0-mm1:
- I can not deselect CONFIG_SCSI, only module or built-in available.
Maybe something is depend on it, but could not figure out what (no
CONFIG_BLK_DEV_IDESCSI, nothing is selected under CONFIG_SCSI).
- I have a synaptics touchpad, which is detected correctly, but only
works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this
way, but with 2.6.0-mm1 it works only on the console, but not under
XFree86. Strange, as gpm interprets the input and pipes thru gpmdata
to XFree86 4.3.0. Any idea what broke this configuration?
Thanks,
GCS
^ permalink raw reply [flat|nested] 37+ messages in thread* Re: 2.6.0-mm1 2003-12-24 9:59 2.6.0-mm1 GCS @ 2003-12-24 11:32 ` Andrew Morton 2003-12-24 11:53 ` 2.6.0-mm1 GCS ` (2 more replies) 2003-12-24 14:38 ` 2.6.0-mm1 GCS 1 sibling, 3 replies; 37+ messages in thread From: Andrew Morton @ 2003-12-24 11:32 UTC (permalink / raw) To: GCS; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov GCS <gcs@lsc.hu> wrote: > > Hi, > > On Tue, Dec 23, 2003 at 05:11:31AM +0200, Andrew Morton <akpm@osdl.org> wrote: > > > It would be appreciated if people who have > > significant patches in -mm could retest please. > It seems I can write CDs on my laptop now. AFAICR I was last trying it on > test8, but it was the same: if the image is over ~400Mb, the machine > freezes hard. If it's shorter, then it's ok, but still some lock or sth > is not unlocked, as the CPU is used more and more about five secs by one > or two percent. Sooner or later it's crashed as well, but I could > restart the machine before that happened. Rebooting to 2.4.2x and > writing CDs there was working all the time. > So I do not know if it's fixed since test8, or in 2.6.0-mm1, but I am > happy with it. Also, I have two problems with 2.6.0-mm1: > - I can not deselect CONFIG_SCSI, only module or built-in available. > Maybe something is depend on it, but could not figure out what (no > CONFIG_BLK_DEV_IDESCSI, nothing is selected under CONFIG_SCSI). Yes, this part of the config system is hard. It always has been. It's similar to "wtf do I have to enable to make the <foo> menu appear. I bit of grepping tells us that CONFIG_USB_STORAGE turns on CONFIG_SCSI. > - I have a synaptics touchpad, which is detected correctly, but only > works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this > way, but with 2.6.0-mm1 it works only on the console, but not under > XFree86. Strange, as gpm interprets the input and pipes thru gpmdata > to XFree86 4.3.0. Any idea what broke this configuration? Peter or Dmitry may be able to tell us. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton @ 2003-12-24 11:53 ` GCS 2003-12-24 12:23 ` 2.6.0-mm1 GCS 2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina 2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov 2 siblings, 1 reply; 37+ messages in thread From: GCS @ 2003-12-24 11:53 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov On Wed, Dec 24, 2003 at 03:32:00AM -0800, Andrew Morton <akpm@osdl.org> wrote: > I bit of grepping tells us that CONFIG_USB_STORAGE turns on CONFIG_SCSI. Thanks! Never throught. I could come up with this: find . -name Kconfig| xargs grep --colour 'depends.* SCSI' (Execute in the kernel tree, and replace SCSI with whatever you like; may help others with similar questions). > Peter or Dmitry may be able to tell us. IMHO it's either: serio-04-synaptics-cleanup.patch serio-06-synaptics-use-reconnect.patch synaptics-powerpro-fix.patch serio-pm-fix.patch input-02-add-psmouse_proto.patch (?) input-05-psmouse-fixes.patch input-07-remove-synaptics-config-option.patch (maybe?) input-08-synaptics-protocol-discovery.patch Thus meanwhile I try to revert them. Anyway, as -mm1 is already bigger, is it possible that you release 2.6.1 in this year with some/most of the fixes in mm1? GCS ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 11:53 ` 2.6.0-mm1 GCS @ 2003-12-24 12:23 ` GCS 2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov 0 siblings, 1 reply; 37+ messages in thread From: GCS @ 2003-12-24 12:23 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, Peter Osterlund, Dmitry Torokhov On Wed, Dec 24, 2003 at 12:53:42PM +0100, GCS <gcs@lsc.hu> wrote: > input-02-add-psmouse_proto.patch (?) Just found out psmouse_noext is deprecated. I have specified psmouse_proto then, but imps and exps (and bare too, but I have not tested it, as reading the code it seems psmouse_noext falls back to bare) are the same. On the console touchpad is working, under XFree86 4.3.0 is not. To be more specific, the buttons do work, but I can not move the pointer at all. Well, first I thought the middle two buttons are for scrolling, as they are placed (and IIRC, they do scroll under m$ win), but the top button is like the left button and the bottom button is for paste, ie middle button on three buttons mices. GCS ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 12:23 ` 2.6.0-mm1 GCS @ 2003-12-24 15:17 ` Dmitry Torokhov 2003-12-24 19:12 ` 2.6.0-mm1 GCS 0 siblings, 1 reply; 37+ messages in thread From: Dmitry Torokhov @ 2003-12-24 15:17 UTC (permalink / raw) To: GCS, Andrew Morton; +Cc: linux-kernel, Peter Osterlund On Wednesday 24 December 2003 07:23 am, GCS wrote: > On Wed, Dec 24, 2003 at 12:53:42PM +0100, GCS <gcs@lsc.hu> wrote: > > input-02-add-psmouse_proto.patch (?) > > Just found out psmouse_noext is deprecated. I have specified > psmouse_proto then, but imps and exps (and bare too, but I have not > tested it, as reading the code it seems psmouse_noext falls back to > bare) are the same. On the console touchpad is working, under XFree86 > 4.3.0 is not. To be more specific, the buttons do work, but I can not > move the pointer at all. Well, first I thought the middle two buttons > are for scrolling, as they are placed (and IIRC, they do scroll under > m$ win), but the top button is like the left button and the bottom > button is for paste, ie middle button on three buttons mices. May we see your dmegs, XF86Config and the parameters you are passing to GPM please? Btw, what version of GPM are you using? As far as reverting patches I would start with input-08-synaptics-protocol-discovery.patch Dmitry ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov @ 2003-12-24 19:12 ` GCS 0 siblings, 0 replies; 37+ messages in thread From: GCS @ 2003-12-24 19:12 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: Andrew Morton, linux-kernel, Peter Osterlund On Wed, Dec 24, 2003 at 10:17:43AM -0500, Dmitry Torokhov <dtor_core@ameritech.net> wrote: > May we see your dmegs, XF86Config and the parameters you are passing > to GPM please? Sure, sorry for not doing it earlier: -- dmesg -- i8042.c: Detected active multiplexing controller, rev 1.1. serio: i8042 AUX0 port at 0x60,0x64 irq 12 serio: i8042 AUX1 port at 0x60,0x64 irq 12 serio: i8042 AUX2 port at 0x60,0x64 irq 12 serio: i8042 AUX3 port at 0x60,0x64 irq 12 Synaptics Touchpad, model: 1 Firmware: 5.6 180 degree mounted touchpad Sensor: 18 new absolute packet format Touchpad has extended capability bits -> four buttons -> multifinger detection -> palm detection input: SynPS/2 Synaptics TouchPad on isa0060/serio4 serio: i8042 KBD port at 0x60,0x64 irq 1 input: AT Translated Set 2 keyboard on isa0060/serio0 -- dmesg -- -- XF86Config-4 -- Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "glx" Load "int10" Load "record" Load "speedo" Load "type1" Load "vbe" Load "xtt" Load "synaptics" EndSection Section "InputDevice" Driver "synaptics" Identifier "Configured Mouse" Option "Device" "/dev/gpmdata" Option "Protocol" "auto-dev" Option "LeftEdge" "1900" Option "RightEdge" "5400" Option "TopEdge" "1900" Option "BottomEdge" "4000" Option "FingerLow" "25" Option "FingerHigh" "30" Option "MaxTapTime" "180" Option "MaxTapMove" "220" Option "VertScrollDelta" "100" Option "MinSpeed" "0.02" Option "MaxSpeed" "0.18" Option "AccelFactor" "0.0010" Option "SHMConfig" "on" # Option "Repeater" "/dev/ps2mouse" EndSection -- XF86Config-4 -- The Synaptics driver used is 0.12.2, compiled for myself, evdev is in module, but ofcourse it's loaded before XFree86 starts. (I have stripped down the files a bit, if you would like to see the whole files or other parts, please ask - I thought it would be easier to see the relevant lines only). gpm is configured by /etc/gpm.conf , but it should be: gpm -m /dev/psaux -t ps2 -R raw Also, the XFree86 Synaptics driver prints this while starting and switching between console and XFree86: Synaptics DeviceInit called SynapticsCtrl called. Synaptics DeviceOn called Synaptics DeviceOff called [the last two repeated more times] > Btw, what version of GPM are you using? I am running Debian Sid, thus I also thought gpm is the newest; as I do understand I should use 1.20.1, which is the latest AFAIK. Thus I was shocked a bit on what 'dpkg -l gpm' gives: ii gpm 1.19.6-12.1 General Purpose Mouse Interface More than a year old! Already filed an important bug on this. Sorry, it seems to be the problem, or at least produces strange behavior: I plugged in an USB mouse, which works while the touchpad still not under XFree86 (both works at the same time under console - even if I did not specified any additional config for gpm). The config for XFree86: -- XF86Config-4 -- Section "InputDevice" Identifier "USB Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "imps/2" Option "Emulate3Buttons" "true" Option "ZAxisMapping" "4 5" EndSection -- XF86Config-4 -- Made it the only one pointer input. Now, if I kill gpm with 'gpm -k', then the touchpad begins to work! Sometimes if I release it, then the pointer jumps a bit from where I pointed it, but that's all. I'm not good in mice stuff, so I can't explain this. Anyway, I will try to compile a newer gpm, change it's device, so play a bit; maybe I can come up with something. > As far as reverting patches I would start with > input-08-synaptics-protocol-discovery.patch It did not help. :-( Thanks, and Merry Christmas! GCS ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton 2003-12-24 11:53 ` 2.6.0-mm1 GCS @ 2003-12-24 12:47 ` Thomas Molina 2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov 2 siblings, 0 replies; 37+ messages in thread From: Thomas Molina @ 2003-12-24 12:47 UTC (permalink / raw) To: Andrew Morton; +Cc: Kernel Mailing List On Wed, 24 Dec 2003, Andrew Morton wrote: > > - I have a synaptics touchpad, which is detected correctly, but only > > works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works this > > way, but with 2.6.0-mm1 it works only on the console, but not under > > XFree86. Strange, as gpm interprets the input and pipes thru gpmdata > > to XFree86 4.3.0. Any idea what broke this configuration? > > Peter or Dmitry may be able to tell us. On the other hand, the synaptics touchpad on my laptop works under 2.6.0-mm1 without the need to use the above parameter. I don't get the jitter I reported for vanilla 2.6.0 synaptics support, but I do get an occasional small mouse jump. Other than that, 2.6.0-mm1 appears to be working well on my Presario 12XL325 laptop. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton 2003-12-24 11:53 ` 2.6.0-mm1 GCS 2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina @ 2003-12-25 9:11 ` Dmitry Torokhov 2003-12-25 18:22 ` 2.6.0-mm1 GCS 2 siblings, 1 reply; 37+ messages in thread From: Dmitry Torokhov @ 2003-12-25 9:11 UTC (permalink / raw) To: Andrew Morton, GCS; +Cc: linux-kernel, Peter Osterlund On Wednesday 24 December 2003 06:32 am, Andrew Morton wrote: > GCS <gcs@lsc.hu> wrote: [..SKIP..] > > > - I have a synaptics touchpad, which is detected correctly, but only > > works if I set psmouse_noext=1. Under vanilla 2.6.0 it still works > > this way, but with 2.6.0-mm1 it works only on the console, but not > > under XFree86. Strange, as gpm interprets the input and pipes thru > > gpmdata to XFree86 4.3.0. Any idea what broke this configuration? > > Peter or Dmitry may be able to tell us. Whew.. that wasn't easy to spot... When doing PS/2 emulation for touchpads that use absolute events, when processing BTN_TOUCH event mousedev would stop on the very first client. So in your normal case only GPM would see the Synaptics but once you killed GPM XFree would be the first in line and magically start working. My guess you didn't see that in stock 2.6.0 because you were compiling without Synaptics support. I am sending 2 patches - one to remove mouse jitter with Synaptics when it is used through mousedev (PS/2 emulation) - mousedev will use 3 point history and average when calculating deltas, the other one is the fix for the problem you are experiencing. They should apply to 2.6.0-mm1 and to stock 2.6.0 with minimal jitter. Dmitry ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov @ 2003-12-25 18:22 ` GCS 0 siblings, 0 replies; 37+ messages in thread From: GCS @ 2003-12-25 18:22 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: Andrew Morton, linux-kernel, Peter Osterlund On Thu, Dec 25, 2003 at 04:11:54AM -0500, Dmitry Torokhov <dtor_core@ameritech.net> wrote: > I am sending 2 patches - one to remove mouse jitter with Synaptics when > it is used through mousedev (PS/2 emulation) - mousedev will use 3 point > history and average when calculating deltas, the other one is the fix for > the problem you are experiencing. They should apply to 2.6.0-mm1 and to > stock 2.6.0 with minimal jitter. I have applied both to 2.6.0-mm1. They are just working, no jumping mouse pointer when I release the touchpad, and both touchpad+usb mouse working on console and under XFree86 as well. OK, I could not really understand how they are working, as for me it seems gpm interprets /dev/psaux only, and get both pointing device right, still XFree86 which reads data replicated by gpm via gpmdata can't handle the USB mouse directly. I had to use a separate config, which reads /dev/input/mice as well. I think it's because XFree86's synaptics driver skip events from the USB mouse. Anyway, thanks for your help and work! Merry Christmas! GCS -- BorsodChem Joint-Stock Company Linux Support Center Software engineer Developer +36-48-511211/12-99 +36-20-4441745 ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 9:59 2.6.0-mm1 GCS 2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton @ 2003-12-24 14:38 ` GCS 1 sibling, 0 replies; 37+ messages in thread From: GCS @ 2003-12-24 14:38 UTC (permalink / raw) To: linux-kernel; +Cc: Andrew Morton On Wed, Dec 24, 2003 at 10:59:21AM +0100, GCS <gcs@lsc.hu> wrote: > [...] but still some lock or sth > is not unlocked, as the CPU is used more and more about five secs by one > or two percent. Sooner or later it's crashed as well, but I could > restart the machine before that happened. Update: I could trigger this bug in 2.6.0-mm1 as well with the Linux port of Head over Heels (classic game from C64). The CPU was getting more and more used, so the game slowed down. I could quit then from the game and XFree86. I did an emergency sync, and it succeded. Issued halt, but it stopped at init sending term to all processes, so I tried a hard power off. I got an error, something about slab, maybe at line 168. It was scrolled out too fast by the stack-trace, and at the end: ACPI-0094: *** Error: Could not acquire interpreter mutex Crashed there. :-( GCS ^ permalink raw reply [flat|nested] 37+ messages in thread
[parent not found: <20031223170633.GG1601@suse.de>]
* Re: 2.6.0-mm1 [not found] <20031223170633.GG1601@suse.de> @ 2003-12-23 17:15 ` Pascal Schmidt 0 siblings, 0 replies; 37+ messages in thread From: Pascal Schmidt @ 2003-12-23 17:15 UTC (permalink / raw) To: Jens Axboe; +Cc: linux-kernel On Tue, 23 Dec 2003, Jens Axboe wrote: > > > Pascal, if you could take care of the mode sense check for RO media (see > > > comment) that would be perfect. [...] > Alright, I'll cook it up then. Much appreciated. > Yes it will, I don't want to allow write opens on RO media though. It's > a lot less confusing that way. Agreed, I'll just have to leave it to you since I don't know how to implement it. -- Ciao, Pascal ^ permalink raw reply [flat|nested] 37+ messages in thread
[parent not found: <15N7L-7y2-3@gated-at.bofh.it>]
* Re: 2.6.0-mm1 [not found] <15N7L-7y2-3@gated-at.bofh.it> @ 2003-12-23 15:41 ` Pascal Schmidt 2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe 0 siblings, 1 reply; 37+ messages in thread From: Pascal Schmidt @ 2003-12-23 15:41 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel: > +atapi-mo-support.patch > > Fix support for ATAPI MO drives (needs updating to reflect the changes in > mt-ranier-support.patch). > > +mt-ranier-support.patch > > Mt Ranier support in the CDROM uniform layer. Since the atapi-mo patch is mine, is there something I need to do? -- Ciao, Pascal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 15:41 ` 2.6.0-mm1 Pascal Schmidt @ 2003-12-23 16:32 ` Jens Axboe 2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt 0 siblings, 1 reply; 37+ messages in thread From: Jens Axboe @ 2003-12-23 16:32 UTC (permalink / raw) To: Pascal Schmidt, Andrew Morton; +Cc: linux-kernel On Tue, Dec 23 2003, Pascal Schmidt wrote: > On Tue, 23 Dec 2003 06:20:14 +0100, you wrote in linux.kernel: > > > +atapi-mo-support.patch > > > > Fix support for ATAPI MO drives (needs updating to reflect the changes in > > mt-ranier-support.patch). > > > > +mt-ranier-support.patch > > > > Mt Ranier support in the CDROM uniform layer. > > Since the atapi-mo patch is mine, is there something I need to do? Nah don't worry about it, Andrew and I just agreed that I'd merge the remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set _RAM capability so we can kill the various MO checks. Jens ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe @ 2003-12-23 16:46 ` Pascal Schmidt 2003-12-23 16:56 ` 2.6.0-mm1 Jens Axboe 0 siblings, 1 reply; 37+ messages in thread From: Pascal Schmidt @ 2003-12-23 16:46 UTC (permalink / raw) To: Jens Axboe; +Cc: linux-kernel On Tue, 23 Dec 2003, Jens Axboe wrote: >> Since the atapi-mo patch is mine, is there something I need to do? > Nah don't worry about it, Andrew and I just agreed that I'd merge the > remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set > _RAM capability so we can kill the various MO checks. Please remember that you can't send the MO drive any DVD-RAM specific commands and expect it to work. The special-casing in the probe routine in ide-cd is there for a reason, and I don't think calling cdrom_dvdram_open_write would be a good idea, either. I haven't actually looked at that routine, but if it sends anything to the drive, my MO drive won't like it one bit. It will at best error out and then cdrom_dvdram_open_write will error out, too, disallowing opening for write, right? -- Ciao, Pascal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt @ 2003-12-23 16:56 ` Jens Axboe 0 siblings, 0 replies; 37+ messages in thread From: Jens Axboe @ 2003-12-23 16:56 UTC (permalink / raw) To: Pascal Schmidt; +Cc: linux-kernel On Tue, Dec 23 2003, Pascal Schmidt wrote: > On Tue, 23 Dec 2003, Jens Axboe wrote: > > >> Since the atapi-mo patch is mine, is there something I need to do? > > Nah don't worry about it, Andrew and I just agreed that I'd merge the > > remaining changes once 2.6.0-mm1 was up. Basically, MO needs to set > > _RAM capability so we can kill the various MO checks. > > Please remember that you can't send the MO drive any DVD-RAM specific > commands and expect it to work. The special-casing in the probe routine > in ide-cd is there for a reason, and I don't think calling > cdrom_dvdram_open_write would be a good idea, either. I haven't actually > looked at that routine, but if it sends anything to the drive, my MO > drive won't like it one bit. It will at best error out and then > cdrom_dvdram_open_write will error out, too, disallowing opening for > write, right? The changes are nothing like that. Don't confuse CDC_DVD_RAM and CDC_RAM - the latter just means that it is ok to open this media for random writes so we don't have to check for three types of different devices. -- Jens Axboe ^ permalink raw reply [flat|nested] 37+ messages in thread
* 2.6.0-mm1
@ 2003-12-23 5:11 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
` (8 more replies)
0 siblings, 9 replies; 37+ messages in thread
From: Andrew Morton @ 2003-12-23 5:11 UTC (permalink / raw)
To: linux-kernel, linux-mm
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/
Quite a lot of new material here. It would be appreciated if people who have
significant patches in -mm could retest please.
Changes since 2.6.0-test11-mm1:
-should-fix.patch
-must-fix-update-01.patch
-must-fix-update-2.patch
Folded into must-fix.patch
+must-fix-update-5.patch
must-fix and should-fix updates
-invalidate_inodes-speedup-fixes-2.patch
Folded into invalidate_inodes-speedup.patch
+unshare_files.patch
+use-unshare_files.patch
+add-steal_locks.patch
+use-steal_locks.patch
+env-signedness-fixes.patch
+suid-leak-fix.patch
+proc-tty-driver-permission-fix.patch
Backports of 2.4 fixes
-acpi_off-fix.patch
Dropped.
-acpi-update.patch
-acpi-update-warning-fix.patch
+acpi-20031203.patch
Latest ACPI tree
+acpi-20031203-fix.patch
Fix silliness in it.
-call_usermodehelper-retval-fix-3.patch
+call_usermodehelper-retval-fix-4.patch
Updated version which also does random things to blockdev and chardev
module loading.
-ia32-MSI-support-x86_64-fixes.patch
-msi-various-fixes.patch
-msi-many-cpus-fix.patch
Folded into ia32-MSI-support.patch
-sparc32-sched_clock.patch
Merged.
-fixmap-in-proc-pid-maps-ng.patch
Dropped pending rethink by David MT Roland McGrath.
-firmware-kernel_thread-on-demand.patch
Dropped (and added again in the DVB patches, below)
-loop-autoloading-fix.patch
Dropped (fixed in a different patch)
+loop-fix-hardsect.patch
Set the loop queue's hard sector size.
-loop-highmem-fixes.patch
Folded into loop-highmem.patch
-mpparse_es7000.patch
Fixed in the ACPI update patch
-x86_64-update.patch
This is out of date.
-x86_64-statfs64-fix.patch
+x86_64-statfs64-fix-2.patch
New version
+xfs-update-01.patch
XFS fixes
+jfs-nfs-le-fix.patch
JFS fixes
+modpost-fix.patch
Build fix
+ia32-jiffy-wrap-fixes.patch
Jiffy handling fixes
+mm_core_waiters-synchronisation.patch
Core dump/exit race fix
+inode-i_sb-checks.patch
Add checks for null inode->i_sb in core VFS (we're still arguing about this)
+rename-legacy_bus-to-platform_bus.patch
Rename `legacy_bus' to make more sense
+ioctl-userspace-warnings-fix.patch
Fix warnings when ioctl.h is used by userspace apps.
+tcrypt-cleanup-1.patch
+tcrypt-cleanup-2.patch
+tcrypt-module-unload-fix.patch
tcrypt work.
+w83627hf.patch
New watchdog driver. For the Winbond w83627hf.
+get_user_pages-lockup-fix.patch
Fix get_user_pages locking for i386's
+sn2-maintainers-update.patch
MAINTAINERS update
+ide-capability-elevation-fix.patch
IDE security fix
+ide-mmio-fix.patch
Fix IDE for MMIO mode
+scc-warning-fix.patch
+cycx-warning-fix.patch
Warning fixes
+via-audio-fixes.patch
via_audio can spam the system log
+locking-doc-update.patch
Documentation.
+name_to_dev_t-fix.patch
Don't replace slashes in names to `.'. Replace them with `!' instead. No
clue why, nobody tells me anything.
+atapi-mo-support.patch
Fix support for ATAPI MO drives (needs updating to reflect the changes in
mt-ranier-support.patch).
+mt-ranier-support.patch
Mt Ranier support in the CDROM uniform layer.
+ext3-enospc-accounting-fix.patch
ext3 space accounting goes wrong on ENOSPC with quotas enabled.
+dvb-01-remove-firmware.patch
+dvb-02-update-saa7146-capture-core.patch
+dvb-03-bt8xx-driver.patch
+dvb-04-skystar2-update.patch
+dvb-05-core-update.patch
+dvb-06-frontend-update.patch
+dvb-07-av7110-update.patch
+dvb-08-av7110-firmware-loading.patch
+dvb-09-ttusb-dec-update.patch
+dvb-10-cleanup.patch
+dvb-11-firmware_class-update.patch
+dvb-12-documentation.patch
DVB update
+selinux-separate-output-dir-fix.patch
+selinux-ioctl-check-fix.patch
+selinux-nameidata-oops-fix.patch
SELinux update
+isdn-compile-fix.patch
+ia32-GENERIC_ARCH-NUMA-build-fix.patch
Compile fixes
+summit-ebda-parsing-fix.patch
Summit EBDA parsing fix
+README-typo-fix.patch
Fix tpyo
+alsa-gus-scheduling-in-interrupt-fix.patch
Don't call scheule() from hard IRQ.
+o21-sched.patch
CPu scheduler interactivity update.
+fatfs-log-storm-fix.patch
Fix excessive printks from fatfs during I/O errors.
+gconfig-warning-fix.patch
Warning fix
+via-tsc-fix.patch
Fix problem with TSC on via686a/KX133 mobos
+fix-es7000-compile.patch
Build fix.
+ppp_async-locking-fix.patch
Move ppp rx handling to softirq.
+fix-sx-stupidity.patch
Don't do `if (i < TIMEOUT_1 > 0)'
+make-try_to_free_pages-walk-zonelist.patch
+make-try_to_free_pages-walk-zonelist-fix.patch
Page reclaim preparation for more complex NUMA layouts.
+pcmcia-maintainers.patch
MAINTAINER update
+yenta-printk-levels.patch
Fix some printk levels
+pcnet_cs-fixes.patch
PCMCIA net driver fixes
+pcmcia-16bit-interrupt-selection-fix.patch
+pcmcia-stack-reduction.patch
+i82365-pci-cruft-removal.patch
More PCMCIA fixes
+proc-pid-maps-gate_map.patch
Add a dummy VMA to prevent /proc/pid/maps printing wrong things on ia64. I
think. Nobody tells me anything.
+buffer_error-suppression.patch
Prevent some uninteresting printks after I/O error.
+main_c-cleanups.patch
init/main.c fixlets.
+fat-01-relax-validity-tests.patch
+fat-02-utf8-tailing-dots-fix.patch
+fat-03-readv-writev-support.patch
+fat-04-printk-fix.patch
+fat-05-msdos_fs-h-cleanup.patch
+fat-06-fix-prev_free.patch
+fat-07-cluster-count-check.patch
+fat-08-misc-cleanups.patch
+fat-09-fat_striptail_len-retval-fix.patch
+fat-10-panic-removal.patch
fatfs update
+non-terminating-inflate-fix.patch
inflate.c fix
+remove-CardServices-from-pcmcia-net-drivers.patch
Fix lots of pcmcia drivers to use newer API names. We may be dropped this
because it puts us out of sync with 2.4 drivers.
+const-fixes.patch
+s390-const-fixes.patch
Fix bogus declarations of functions to remove const values.
+execve-memleak-fix.patch
Fix a memleak on the execve() error path.
+h8300-bitops-update.patch
Fix h8/300 bitops
+document-speedstep-zero-page-usage.patch
Documentation fix.
+fbdev-printk-level-fix.patch
printk level fixes
+ppdev-module-alias.patch
Add a module alias to ppdev
+floppy-typo-fixes.patch
Fix typos.
+__BVEC_START-fix.patch
Fix BIO layer for DM.
+kunmap_atomic-check-resched.patch
Add preemption point to kunmap_atomic()
+e100-oops-fix.patch
Fix e100 ethtool oops.
+free_pgt_generic1.patch
Add hook to fix hugetlbs on ia64.
+SubmittingDrivers-update.patch
Documentaiton update.
+sysfs-oops-fix.patch
+sysfs-mem-device-support.patch
+sysfs-misc-device-support.patch
+sysfs-vc-device-support.patch
sysfs update.
+4g4g-sysenter-test-fix.patch
4G/4G sysenter/SEP fix.
All 384 patches:
mm.patch
add -mmN to EXTRAVERSION
kgdb-ga.patch
kgdb stub for ia32 (George Anzinger's one)
kgdbL warning fix
kgdb-buff-too-big.patch
kgdb buffer overflow fix
kgdb-warning-fix.patch
kgdbL warning fix
kgdb-build-fix.patch
kgdb-spinlock-fix.patch
kgdb-fix-debug-info.patch
kgdb: CONFIG_DEBUG_INFO fix
kgdb-cpumask_t.patch
kgdb-x86_64-fixes.patch
x86_64 fixes
kgdb-over-ethernet.patch
kgdb-over-ethernet patch
kgdb-over-ethernet-fixes.patch
kgdb-over-ethernet fixlets
kgdb-CONFIG_NET_POLL_CONTROLLER.patch
kgdb: replace CONFIG_KGDB with CONFIG_NET_RX_POLL in net drivers
kgdb-handle-stopped-NICs.patch
kgdb: handle netif_stopped NICs
eepro100-poll-controller.patch
tlan-poll_controller.patch
tulip-poll_controller.patch
tg3-poll_controller.patch
kgdb: tg3 poll_controller
8139too-poll_controller.patch
8139too poll controller
kgdb-eth-smp-fix.patch
kgdb-over-ethernet: fix SMP
kgdb-eth-reattach.patch
kgdb-skb_reserve-fix.patch
kgdb-over-ethernet: skb_reserve() fix
must-fix.patch
must fix lists update
must fix list update
mustfix update
must-fix-update-5.patch
must-fix update
RD1-cdrom_ioctl-B6.patch
RD2-ioctl-B6.patch
RD2-ioctl-B6-fix.patch
RD2-ioctl-B6 fixes
RD3-cdrom_open-B6.patch
RD4-open-B6.patch
RD5-cdrom_release-B6.patch
RD6-release-B6.patch
RD7-presto_journal_close-B6.patch
RD8-f_mapping-B6.patch
RD9-f_mapping2-B6.patch
RD10-i_sem-B6.patch
RD11-f_mapping3-B6.patch
RD12-generic_osync_inode-B6.patch
RD13-bd_acquire-B6.patch
RD14-generic_write_checks-B6.patch
RD15-I_BDEV-B6.patch
cramfs-use-pagecache.patch
cramfs: use pagecache better
invalidate_inodes-speedup.patch
invalidate_inodes speedup
more invalidate_inodes speedup fixes
unshare_files.patch
unshare_files
use-unshare_files.patch
use new unshare_files helper
add-steal_locks.patch
add steal_locks helper
use-steal_locks.patch
use new steal_locks helper
env-signedness-fixes.patch
fix unsigned issue with env_end - env_start
suid-leak-fix.patch
fix suid leak in /proc
proc-tty-driver-permission-fix.patch
make /proc/tty/driver/ S_IRUSR | S_IXUSR for root only
serio-01-renaming.patch
serio: rename serio_[un]register_slave_port to __serio_[un]register_port
serio-02-race-fix.patch
serio: possible race between port removal and kseriod
serio-03-blacklist.patch
Add black list to handler<->device matching
serio-04-synaptics-cleanup.patch
Synaptics: code cleanup
serio-05-reconnect-facility.patch
serio: reconnect facility
serio-06-synaptics-use-reconnect.patch
Synaptics: use serio_reconnect
synaptics-powerpro-fix.patch
synaptics powerpro fix
input-unregister-on-fail-fix.patch
Input: unregister i8042 port when writing to control register fails
serio-pm-fix.patch
psmouse pm resume fix
atkbd-24-compatibility.patch
Fixes for keyboard 2.4 compatibility
input-01-atkbd_softrepeat-fix.patch
input: fix atkbd_softrepeat
input-02-add-psmouse_proto.patch
Input: add psmouse_proto parameter
input-03-resume-methods.patch
Input: implement resume methods
input-04-atkbd-reconnect-method.patch
Input: add atkbd reconnect method
input-05-psmouse-fixes.patch
Input: psmouse fixes
input-06-serio_unregister_port_delayed.patch
Input: add serio_[un]register_port_delayed to fix deadlock
input-07-remove-synaptics-config-option.patch
Input: remove synaptics config option
input-08-synaptics-protocol-discovery.patch
Input: synaptics protocol discovery
input-use-after-free-checks.patch
input layer debug checks
acpi-20031203.patch
acpi-20031203-fix.patch
cfq-4.patch
CFQ io scheduler
CFQ fixes
config_spinline.patch
uninline spinlocks for profiling accuracy.
ppc64-bar-0-fix.patch
Allow PCI BARs that start at 0
ppc64-reloc_hide.patch
ppc64-sched_clock-fix.patch
implement sched_clock properly
ppc64-use-statfs64.patch
use compat_statfs64 on ppc64
ppc64-compat_clock.patch
ppc64: use compat clock syscalls
ppc64-numa-sign-extension-fix.patch
ppc64: fix sign extension bug in NUMA code
ppc64-IRQ_INPROGRESS-fix.patch
ppc64: revert IRQ_INPROGRESS change
sn2-console-driver-fix.patch
sn_serial console fix
qla1280-update.patch
qla1280 update
sym-speed-fix.patch
sym2 Ultra-160 fix
aic7xxx-parallel-build-fix.patch
fix parallel builds for aic7xxx
ramdisk-cleanup.patch
intel8x0-cleanup.patch
intel8x0 cleanups
pdflush-diag.patch
futex-uninlinings.patch
futex uninlining
zap_page_range-debug.patch
zap_page_range() debug
call_usermodehelper-retval-fix-4.patch
call_usermodehelper retval fix, take 4
asus-L5-fix.patch
Asus L5 framebuffer fix
jffs-use-daemonize.patch
tulip-NAPI-support.patch
tulip NAPI support
tulip-napi-disable.patch
tulip NAPI: disable poll in close
get_user_pages-handle-VM_IO.patch
ia32-MSI-support.patch
Updated ia32 MSI Patches
MSI Update Based on 2.6.0-test9-mm3
IOAPIC/MSI compile fixes for NR_CPUS > 32
ia32-efi-support.patch
EFI support for ia32
efi warning fix
fix EFI for ppc64, ia64
efi: warning fixes
ia32 EFI: Add CONFIG_EFI
efi: Update Kconfig help
efi update patch (ia64)
support-zillions-of-scsi-disks.patch
support many SCSI disks
SGI-IOC4-IDE-chipset-support.patch
Add support for SGI's IOC4 chipset
pcibios_test_irq-fix.patch
Fix pcibios test IRQ handler return
i82365-sysfs-ordering-fix.patch
Fix init_i82365 sysfs ordering oops
pci_set_power_state-might-sleep.patch
ia64-ia32-missing-compat-syscalls.patch
From: Arun Sharma <arun.sharma@intel.com>
Subject: Missing compat syscalls in ia64
compat-layer-fixes.patch
Minor bug fixes to the compat layer
compat-ioctl-for-i2c.patch
compat_ioctl for i2c
fix-sqrt.patch
sqrt() fixes
scale-min_free_kbytes.patch
scale the initial value of min_free_kbytes
cdrom-allocation-try-harder.patch
Use __GFP_REPEAT for cdrom buffer
sym-2.1.18f.patch
CONFIG_STANDALONE-default-to-n.patch
Make CONFIG_STANDALONE default to N
extra-buffer-diags.patch
name_to_dev_t-__init.patch
make name_to_dev_t __init
CONFIG_SYSFS.patch
From: Pat Mochel <mochel@osdl.org>
Subject: [PATCH] Add CONFIG_SYSFS
CONFIG_SYSFS-boot-from-disk-fix.patch
slab-leak-detector.patch
slab leak detector
early-serial-registration-fix.patch
serial console registration bugfix
3c527-smp-update.patch
SMP support on 3c527 net driver
3c527-race-fix.patch
ext3-latency-fix.patch
ext3 scheduling latency fix
loop-fix-hardsect.patch
loop: fix hard sector size
loop-module-alias.patch
loop needs MODULE_ALIAS_BLOCK
loop-remove-blkdev-special-case.patch
loop-highmem.patch
remove useless highmem bounce from loop/cryptoloop
loop-bio-handling-fix.patch
loop: BIO handling fix
cmpci-set_fs-fix.patch
cmpci.c: remove pointless set_fs()
dentry-bloat-fix-2.patch
Fix dcache and icache bloat with deep directories
nls-config-fixes.patch
NSL config fixes
proc_pid_lookup-vs-exit-race-fix.patch
Fix proc_pid_lookup vs exit race
gcc-Os-if-embedded.patch
Add `gcc -Os' config option
aic7xxx-sleep-in-spinlock-fix.patch
vm86-sysenter-fix.patch
Fix sysenter disabling in vm86 mode
refill_counter-overflow-fix.patch
vmscan: reset refill_counter after refilling the inactive list
verbose-timesource.patch
be verbose about the time source
acpi-pm-timer.patch
ACPI PM Timer
acpi-pm-timer-fixes-2.patch
ACPI PM timer fixes
timer_pm-verbose-timesource-fix.patch
Subject: [PATCH] linux-2.6.0-test9-mm3_verbose-timesource-acpi-pm_A0
as-regression-fix.patch
Fix IO scheduler regression
as-request-poisoning.patch
AS: request poisoning
as-request-poisoning-fix.patch
AS: request poisining fix
as-fix-all-known-bugs.patch
AS fixes
as-new-process-estimation.patch
AS: new process estimation
as-cooperative-thinktime.patch
AS: thinktime improvement
scale-nr_requests.patch
scale nr_requests with TCQ depth
truncate_inode_pages-check.patch
local_bh_enable-warning-fix.patch
cdc-acm-softirq-rx.patch
cdc-acm: move rx processing to softirq
forcedeth.patch
forcedeth: nForce ethernet driver
forcedeth-update-2.patch
forcedeth update
forcedeth-update-3.patch
forcedeth update
proc-pid-maps-output-fix.patch
Restore /proc/pid/maps formatting
sis900-pm-support.patch
Add PM support to sis900 network driver
8139too-locking-fix.patch
8139too locking fix
ia32-wp-test-cleanup.patch
ia32 WP test cleanup
powermate-payload-size-fix.patch
Griffin Powermate fix
more-than-256-cpus.patch
Fix for more than 256 CPUs
ZONE_SHIFT-from-NODES_SHIFT.patch
Use NODES_SHIFT to calculate ZONE_SHIFT
memmove-speedup.patch
optimize ia32 memmove
pipe-readv-writev.patch
Fix writev atomicity on pipe/fifo
lockless-semop.patch
lockless semop
percpu_counter-use-alloc_percpu.patch
use alloc_percpu in percpu_counters
i450nx-scanning-fix.patch
i450nx PCI scanning fix
find_busiest_queue-commentary.patch
find_busiest_queue() commentary fix
SOUND_CMPCI-config-typo-fix.patch
fix SOUND_CMPCI Configure help entry
context-switch-accounting-fix.patch
Fix context switch accounting
access-vfs_permission-fix.patch
Subject: Re: [PATCH] fix access() / vfs_permission() bug
eicon-linkage-fix.patch
eicon/ and hardware/eicon/ drivers using the same symbols
kobject-docco-additions.patch
Improve documentation for kobjects
radeon-line-length-fix.patch
radeonfb fix
proc-interrupts-use-seq-file.patch
seq_file version of /proc/interrupts
proc-interrupts-use-seq_file-2.patch
Finish /proc/interrupts seq_file patch
ide-tape-update.patch
ide-tape update
intel-440gx-ids-fix.patch
centrino-1ghz-support.patch
support centrino 1GHz
pnp-fix-1.patch
PnP Fixes #1
pnp-fix-2.patch
PnP Fixes #2
pnp-fix-3.patch
PnP Fixes #3
document-elevator-equals.patch
document elevator= parameter
cpio-offset-fix.patch
missing padding in cpio_mkfile in usr/gen_init_cpio.c
watchdog-retval-fix.patch
watchdog write() return value fixes
document-lib-parser.patch
Add lib/parser.c kernel-doc
cpumask-header-reorg.patch
cpumask.h reorg
cpumask-format-consolidation.patch
new /proc/irq cpumask format; consolidate cpumask display and input code
init-remove-CLONE_FILES.patch
Remove CLONE_FILES from init kernel thread creation
alpha-stack-dump.patch
usb-msgsize-fix.patch
HiSpd Isoc 1024KB submits: -EMSGSIZE
pagefault-accounting-fix.patch
pagefault accounting fix
pagefault-accounting-fix-fix.patch
pagefault accounting fix fix
pagefault_accounting-fix-fix-fix-fix.patch
pagefault accounting again
proc_kill_inodes-oops-fix.patch
proc_bus_pci_lseek-remove-lock_kernel.patch
remove lock_kernel() from proc_bus_pci_lseek()
pagemap-include-recursion-fix.patch
remove include recursion from linux/pagemap.h
dm-bounce-buffer-fix.patch
dm and bounce buffer panic fix
ia64-piix5-fix.patch
PIIX5 Doesn't work on IA64
ide-dma-disabled-fix.patch
Can't disable IDE DMA
sysfs_remove_dir-vs-dcache_readdir-race-fix.patch
sysfs_remove_dir Vs dcache_readdir race fix
ext3-external-journal-bd_claim.patch
ext3: bd_claim for journal device
page-alloc-failure-dump_stack.patch
x86_64-statfs64-fix-2.patch
statfs64 fix
x86_64-aout-support.patch
Add a.out support for x86-64
remove-mm-swap_address.patch
remove mm->swap_address
sis-assignment-fix.patch
sis comparison / assignment operator fix
sync_dquots-oops-fix.patch
Subject: [PATCH] Fix possible oops in vfs_quota_sync()
ext3-quota-deadlock-fix.patch
Ext3+quota deadlock fix
buslogic-update.patch
BusLogic Driver update
binfmt_elf-help-update.patch
BINFMT_ELF=m is not an option
aic7xxx_old-proc-oops-fix.patch
aic7x_old /proc oops fix
invalidate_mmap_range-non-gpl-export.patch
mark invalidate_mmap_range() as EXPORT_SYMBOL
md-1-limit_max_sectors.patch
md: Limit max_sectors on md when merge_bvec_fn defined on underlying device.
md-2-set-ra_pages.patch
md: set ra_pages for raid0/raid5 devices properly.
alsa-sleep-in-spinlock-fix.patch
ALSA sleep in spinlock fix
do_gettimeofday-tick_usec-fix.patch
Erronous use of tick_usec in do_gettimeofday
dm-1-fix-block-device-resizing.patch
dm: fix block device resizing
dm-2-remove-dynamic-table-resizing.patch
dm: remove dynamic table resizing
dm-3-v4-ioctl-default.patch
dm: make v4 of the ioctl interface the default
dm-4-set-io-restriction-defaults.patch
dm: set io restriction defaults
dm-5-sleep-in-spinlock-fix.patch
dm: dm_table_event() sleep on spinlock bug
fix-ELF-exec-with-huge-bss.patch
fix ELF exec with huge bss
direct-io-memleak-fix.patch
O_DIRECT memory leak fix
jbd-b_committed_data-locking-fix.patch
JBD: b_committed_data locking fix
dvb-i2c-timeout-fix.patch
dvb i2c timeout fix
compat_timespec-cleanup.patch
more correct get_compat_timespec interface
MAINTAINERS-mailing-list-fixes.patch
MAINTAINERS vger.rutgers.edu
list_empty_careful-docco.patch
list_empty_careful() documentation.
compound-pages-dirty-page-fix.patch
Clear dirty bits etc on compound frees
3c574_cs-deadlock-fix.patch
Fix deadlock in 3c574_cs.c
non-fg-console-unimap-fixes.patch
Allow unimap change on non fg console
sym2-speed-selection-fix.patch
Speed selection fix for sym53c8xx
jiffies-comment-fix.patch
fix outdated comment in jiffies.h
slab-reclaim-accounting-fix.patch
slab reclaim accounting fix
struct_cpy-warning-fix.patch
struct_cpy compilation warning
more-MODULE_ALIASes.patch
More MODULE_ALIASes
x86_64-sysrq-t-fix.patch
x86_64 sysrq-t fix
nr-slab-accounting-fix.patch
nr_slab accounting fix
moto-ppc32-booting-fix.patch
Fix booting on a number of Motorola PPC32 machines
isdn-spinlock-init.patch
isdn_ppp_ccp.c uses uninitialized spinlock
nbd-userspace-build-fix.patch
fix userspace compiles with nbd.h
dac960-separate-queues.patch
DAC960 request queue per disk
xfs-update-01.patch
XFS update
jfs-nfs-le-fix.patch
JFS fix for NFS on little-endian systems
modpost-fix.patch
Get modpost to work properly with vmlinux in a different directory
ia32-jiffy-wrap-fixes.patch
ia32 jiffy wrapping fixes
mm_core_waiters-synchronisation.patch
From: Roland McGrath <roland@redhat.com>
Subject: [PATCH] synchronize use of mm->core_waiters
inode-i_sb-checks.patch
Missing i_sb NULL pointer check in destroy_inode()
rename-legacy_bus-to-platform_bus.patch
Rename legacy_bus to platform_bus
ioctl-userspace-warnings-fix.patch
Fix ioctl related warnings in userspace
tcrypt-cleanup-1.patch
tcrypt cleanup (1/2)
tcrypt-cleanup-2.patch
tcrypt cleanup (2/2)
tcrypt-module-unload-fix.patch
Allow tcrypt module to be unloaded
w83627hf.patch
Winbond w83627hf driver
get_user_pages-lockup-fix.patch
Missing up_read after get_user_pages in arch/i386/lib/usercopy.c?
sn2-maintainers-update.patch
update sn2 MAINTAINERS file entry
ide-capability-elevation-fix.patch
IDE capability elevation fix
ide-mmio-fix.patch
IDE MMIO fix
scc-warning-fix.patch
SCC warning fix
cycx-warning-fix.patch
cycx_drv warning fix
via-audio-fixes.patch
VIA audio fixes
locking-doc-update.patch
Kernel Locking Documentation update
name_to_dev_t-fix.patch
name_to_dev_t() fix
atapi-mo-support.patch
ATAPI MO drive support
mt-ranier-support.patch
mt rainier support
ext3-enospc-accounting-fix.patch
From: Jan Kara <jack@suse.cz>
Subject: Re: ext3 truncate bug in 2.6.0?
dvb-01-remove-firmware.patch
dvb: av7110 firmware removal patch
dvb-02-update-saa7146-capture-core.patch
dvb: Update saa7146 capture core
dvb-03-bt8xx-driver.patch
dvb: Add new dvb bt8xx driver
dvb-04-skystar2-update.patch
dvb: Update Skystar2 DVB driver
dvb-05-core-update.patch
dvb: Update DVB core
dvb-06-frontend-update.patch
dvb: Update DVB frontend drivers
dvb-07-av7110-update.patch
dvb: Update av7110 driver
dvb-08-av7110-firmware-loading.patch
dvb: Add firmware loading support to av7110 driver
dvb-09-ttusb-dec-update.patch
dvb: Update TTUSB DEC driver
dvb-10-cleanup.patch
dvb: Cleanup patch to remove 2.4 crud
dvb-11-firmware_class-update.patch
dvb: Firmware_class update
dvb-12-documentation.patch
dvb: Add DVB documentation
selinux-separate-output-dir-fix.patch
Fix SELinux build for "make O=..."
selinux-ioctl-check-fix.patch
Reduce SELinux check on KDSKBENT/SENT ioctls
selinux-nameidata-oops-fix.patch
Remove use of nameidata by selinux_inode_permission
isdn-compile-fix.patch
isdn/eicon/eicon_mod.c build fix
ia32-GENERIC_ARCH-NUMA-build-fix.patch
Fix X86_GENERICARCH & NUMA compile error
summit-ebda-parsing-fix.patch
Fix Summit EBDA parsing
README-typo-fix.patch
./README typo fix
alsa-gus-scheduling-in-interrupt-fix.patch
alsa gus max schedule-in-irq-fix
o21-sched.patch
O21 for interactivity 2.6.0
fatfs-log-storm-fix.patch
fatfs: fix printk storm during I/O errors
gconfig-warning-fix.patch
make gconfig warning removal
via-tsc-fix.patch
Fix via686a/KX133 TSC failure
fix-es7000-compile.patch
Fix es7000 compile
ppp_async-locking-fix.patch
Make ppp_async callable from hard interrupt
fix-sx-stupidity.patch
Fix double logical operator drivers/char/sx.c
make-try_to_free_pages-walk-zonelist.patch
make try_to_free_pages walk zonelist
make-try_to_free_pages-walk-zonelist-fix.patch
zone scanning fix
pcmcia-maintainers.patch
dhinds is not 2.6 PCMCIA maintainer
yenta-printk-levels.patch
fix yenta printk logging levels
pcnet_cs-fixes.patch
pcnet_cs driver bug fix / update
pcmcia-16bit-interrupt-selection-fix.patch
fix for 16-bit PCMCIA interrupt selection
pcmcia-stack-reduction.patch
reduce kernel stack usage in PCMCIA CIS parsing
i82365-pci-cruft-removal.patch
strip out PCI cruft from i82365 driver
proc-pid-maps-gate_map.patch
/proc/pid/maps gate map
buffer_error-suppression.patch
relax check of page/bh state on I/O error
main_c-cleanups.patch
init/main.c trivial cleanups
fat-01-relax-validity-tests.patch
FAT: More relax FATFS validity tests (1/10)
fat-02-utf8-tailing-dots-fix.patch
FAT: Fix the tailing dots on the utf8 path (2/10)
fat-03-readv-writev-support.patch
FAT: add readv/writev support to FAT (3/10)
fat-04-printk-fix.patch
FAT: trivial printk format fix (4/10)
fat-05-msdos_fs-h-cleanup.patch
FAT: include/linux/msdos_fs.h cleanup
fat-06-fix-prev_free.patch
FAT: Fix ->prev_free of fat (6/10)
fat-07-cluster-count-check.patch
FAT: Add count of clusters check in fat_fill_super() (7/10)
fat-08-misc-cleanups.patch
FAT: misc cleanups/fixes
fat-09-fat_striptail_len-retval-fix.patch
FAT: empty path by fat_striptail_len returns the -ENOENT
fat-10-panic-removal.patch
FAT: Use just printk() instead of unneeded fat_fs_panic()
non-terminating-inflate-fix.patch
lib/inflate.c fix
remove-CardServices-from-pcmcia-net-drivers.patch
CardServices() removal from pcmcia net drivers
const-fixes.patch
const vs. __attribute__((const)) confusion
s390-const-fixes.patch
s390 const fixes
execve-memleak-fix.patch
Fix memleak on execve failure
h8300-bitops-update.patch
H8/300 bitops.h update
document-speedstep-zero-page-usage.patch
add SpeedStep zero-page usage documentation
fbdev-printk-level-fix.patch
change two annoying messages from framebuffer drivers
ppdev-module-alias.patch
ppdev MODULES_ALIAS
floppy-typo-fixes.patch
From: Juergen Quade <quade@hsnr.de>
Subject: [PATCH] Small copy-paste typo in floppy.c
__BVEC_START-fix.patch
Fix another dm and bio problem
kunmap_atomic-check-resched.patch
Check for preemption in kunmap_atomic()
e100-oops-fix.patch
e100 oops fix
free_pgt_generic1.patch
hugepage pagetable freeing fix
SubmittingDrivers-update.patch
SubmittingDrivers update
sysfs-oops-fix.patch
fix sysfs oops
sysfs-mem-device-support.patch
add sysfs mem device support
sysfs-misc-device-support.patch
add sysfs misc device support
sysfs-vc-device-support.patch
add sysfs vc device support [4/4]
ide-tape-rq-special.patch
ide-siimage-seagate.patch
ide-siimage-stack-fix.patch
ide-siimage-sil3114.patch
ide-cmd640-pci1.patch
ide-pdc_old-pio-fix.patch
ide-pdc_old-udma66-fix.patch
ide-pdc_old-66mhz_clock-fix.patch
nforce2-disconnect-quirk.patch
nforce2-apic.patch
ide-recovery-time.patch
ide-pdc_new-proc.patch
list_del-debug.patch
list_del debug check
print-build-options-on-oops.patch
show_task-free-stack-fix.patch
show_task() fix and cleanup
oops-dump-preceding-code.patch
i386 oops output: dump preceding code
lockmeter.patch
lockmeter-sparc64-fix.patch
lockmeter-sparc64-fix-fix.patch
lockmeter-preemption-fixes.patch
lockmeter preemption fixes
lockmeter-ia64-config-fix.patch
Fix lockmeter on ia64
printk-oops-mangle-fix.patch
disentangle printk's whilst oopsing on SMP
4g-2.6.0-test2-mm2-A5.patch
4G/4G split patch
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix
4G/4G preempt on vstack
4G/4G: even number of kmap types
4g4g: fix __get_user in slab
4g4g: Remove extra .data.idt section definition
4g/4g linker error (overlapping sections)
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g4g: show_registers() fix
4g/4g usercopy atomicity fix
4g4g: debug flags fix
4g4g: Fix wrong asm-offsets entry
cyclone time fixmap fix
4G/4G preempt on vstack
4G/4G: even number of kmap types
4g4g: fix __get_user in slab
4g4g: Remove extra .data.idt section definition
4g/4g linker error (overlapping sections)
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g4g: show_registers() fix
4g/4g usercopy atomicity fix
4g4g: debug flags fix
4g4g: Fix wrong asm-offsets entry
cyclone time fixmap fix
use direct_copy_{to,from}_user for kernel access in mm/usercopy.c
4G/4G might_sleep warning fix
4g/4g pagetable accounting fix
4g4g-athlon-prefetch-handling-fix.patch
4g4g-wp-test-fix.patch
Fix 4G/4G and WP test lockup
4g4g-KERNEL_DS-usercopy-fix.patch
4G/4G KERNEL_DS usercopy again
4g4g-vm86-fix.patch
Fix 4G/4G X11/vm86 oops
4g4g-athlon-triplefault-fix.patch
Fix 4G/4G athlon triplefault
4g4g-sep-fix.patch
4g4g SEP fix
4g4g-sysenter-test-fix.patch
Fix 4G/4G split fix for pre-pentiumII machines
ppc-fixes.patch
make mm4 compile on ppc
aic7xxx_old-oops-fix.patch
O_DIRECT-race-fixes-rollup.patch
DIO fixes forward port and AIO-DIO fix
O_DIRECT race fixes comments
O_DRIECT race fixes fix fix fix
DIO locking rework
O_DIRECT XFS fix
dio-aio-fixes.patch
direct-io AIO fixes
dio-aio-fixes-fixes.patch
dio-aio fix fix
readahead-multiple-fixes.patch
readahead: multipole performance fixes
readahead-simplification.patch
readahead simplification
aio-sysctl-parms.patch
aio sysctl parms
aio-01-retry.patch
AIO: Core retry infrastructure
Fix aio process hang on EINVAL
AIO: flush workqueues before destroying ioctx'es
AIO: hold the context lock across unuse_mm
task task_lock in use_mm()
4g4g-aio-hang-fix.patch
Fix AIO and 4G-4G hang
aio-retry-elevated-refcount.patch
aio: extra ref count during retry
aio-splice-runlist.patch
Splice AIO runlist for fairer handling of multiple io contexts
aio-02-lockpage_wq.patch
AIO: Async page wait
aio-03-fs_read.patch
AIO: Filesystem aio read
aio-04-buffer_wq.patch
AIO: Async buffer wait
lock_buffer_wq fix
aio-05-fs_write.patch
AIO: Filesystem aio write
aio-06-bread_wq.patch
AIO: Async block read
aio-07-ext2getblk_wq.patch
AIO: Async get block for ext2
O_SYNC-speedup-2.patch
speed up O_SYNC writes
O_SYNC-speedup-2-f_mapping-fixes.patch
aio-09-o_sync.patch
aio O_SYNC
AIO: fix a BUG
Unify o_sync changes for aio and regular writes
aio-O_SYNC-fix bits got lost
aio: writev nr_segs fix
More AIO O_SYNC related fixes
aio-09-o_sync-f_mapping-fixes.patch
gang_lookup_next.patch
Change the page gang lookup API
aio-gang_lookup-fix.patch
AIO gang lookup fixes
aio-O_SYNC-short-write-fix.patch
Fix for O_SYNC short writes
aio-12-readahead.patch
AIO: readahead fixes
aio O_DIRECT no readahead
Unified page range readahead for aio and regular reads
aio-12-readahead-f_mapping-fix.patch
aio-readahead-speedup.patch
Readahead issues and AIO read speedup
^ permalink raw reply [flat|nested] 37+ messages in thread* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton @ 2003-12-23 5:27 ` Valdis.Kletnieks 2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres ` (7 subsequent siblings) 8 siblings, 0 replies; 37+ messages in thread From: Valdis.Kletnieks @ 2003-12-23 5:27 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm [-- Attachment #1: Type: text/plain, Size: 278 bytes --] On Mon, 22 Dec 2003 21:11:31 PST, Andrew Morton <akpm@osdl.org> said: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2. 6.0-mm1/ Erm? Seems to actually be at: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/ [-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton 2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks @ 2003-12-23 5:28 ` Marcos D. Marado Torres 2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton ` (6 subsequent siblings) 8 siblings, 0 replies; 37+ messages in thread From: Marcos D. Marado Torres @ 2003-12-23 5:28 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Mon, 22 Dec 2003, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ As a matter of fact the link is: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/ Thanks for the patch, Mind Booster Noori - -- ================================================== Marcos Daniel Marado Torres AKA Mind Booster Noori /"\ http://student.dei.uc.pt/~marado \ / marado@student.dei.uc.pt X ASCII Ribbon Campaign / \ against HTML e-mail and Micro$oft attachments ================================================== -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQE/59J5mNlq8m+oD34RAt7lAKDTyWM2+TvG2nvzjBAe8jTjvZO2WQCg3/4p GwaJRAHrIcspRXOkeABSIH4= =5K8v -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton 2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks 2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres @ 2003-12-23 5:28 ` Andrew Morton 2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski 2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh ` (5 subsequent siblings) 8 siblings, 1 reply; 37+ messages in thread From: Andrew Morton @ 2003-12-23 5:28 UTC (permalink / raw) To: linux-kernel, linux-mm Andrew Morton <akpm@osdl.org> wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ make that ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 5:40 ` Stan Bubrouski 2003-12-23 7:57 ` 2.6.0-mm1 Andrew Walrond 0 siblings, 1 reply; 37+ messages in thread From: Stan Bubrouski @ 2003-12-23 5:40 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel@vger.kernel.org, linux-mm On Tue, 2003-12-23 at 00:28, Andrew Morton wrote: > Andrew Morton <akpm@osdl.org> wrote: > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ > > make that > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0/2.6.0-mm1/ Why do I not see the original message Subject: 2.6.0-mm1 ??? Was there ever an original message to this thread? -sb ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski @ 2003-12-23 7:57 ` Andrew Walrond 0 siblings, 0 replies; 37+ messages in thread From: Andrew Walrond @ 2003-12-23 7:57 UTC (permalink / raw) To: linux-kernel On Tuesday 23 Dec 2003 5:40 am, Stan Bubrouski wrote: > > Why do I not see the original message Subject: 2.6.0-mm1 > ??? > > Was there ever an original message to this thread? > FYI I recieved the original ok. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (2 preceding siblings ...) 2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 7:30 ` Martin J. Bligh 2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini ` (4 subsequent siblings) 8 siblings, 0 replies; 37+ messages in thread From: Martin J. Bligh @ 2003-12-23 7:30 UTC (permalink / raw) To: Andrew Morton, linux-kernel, linux-mm These look new to me. In file included from init/initramfs.c:393: init/../lib/inflate.c: In function `gunzip': init/../lib/inflate.c:1123: warning: value computed is not used init/../lib/inflate.c:1124: warning: value computed is not used init/../lib/inflate.c:1125: warning: value computed is not used init/../lib/inflate.c:1126: warning: value computed is not used In file included from arch/i386/boot/compressed/misc.c:129: arch/i386/boot/compressed/../../../../lib/inflate.c: In function `gunzip': arch/i386/boot/compressed/../../../../lib/inflate.c:1123: warning: value computed is not used arch/i386/boot/compressed/../../../../lib/inflate.c:1124: warning: value computed is not used arch/i386/boot/compressed/../../../../lib/inflate.c:1125: warning: value computed is not used arch/i386/boot/compressed/../../../../lib/inflate.c:1126: warning: value computed is not used M. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (3 preceding siblings ...) 2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh @ 2003-12-23 17:29 ` Tom Rini 2003-12-23 17:31 ` 2.6.0-mm1 Tom Rini 2003-12-23 21:08 ` 2.6.0-mm1 viro ` (3 subsequent siblings) 8 siblings, 1 reply; 37+ messages in thread From: Tom Rini @ 2003-12-23 17:29 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: [snip] > moto-ppc32-booting-fix.patch > Fix booting on a number of Motorola PPC32 machines The following, based on comments from Keith Owens is better, please replace, thanks: ===== arch/ppc/boot/simple/Makefile 1.23 vs edited ===== --- 1.23/arch/ppc/boot/simple/Makefile Mon Sep 15 01:01:24 2003 +++ edited/arch/ppc/boot/simple/Makefile Tue Dec 23 09:58:53 2003 @@ -76,6 +76,7 @@ # The rest will be unset. motorola := $(CONFIG_MCPN765)$(CONFIG_MVME5100)$(CONFIG_PRPMC750) \ $(CONFIG_PRPMC800)$(CONFIG_LOPEC)$(CONFIG_PPLUS) +motorola := $(strip $(motorola)) pcore := $(CONFIG_PCORE)$(CONFIG_POWERPMC250) zimage-$(motorola) := zImage-PPLUS -- Tom Rini http://gate.crashing.org/~trini/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini @ 2003-12-23 17:31 ` Tom Rini 0 siblings, 0 replies; 37+ messages in thread From: Tom Rini @ 2003-12-23 17:31 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Tue, Dec 23, 2003 at 10:29:07AM -0700, Tom Rini wrote: > On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: > > [snip] > > moto-ppc32-booting-fix.patch > > Fix booting on a number of Motorola PPC32 machines > > The following, based on comments from Keith Owens is better, please > replace, thanks: [snip] The following patch depends on the above, and fixes the 'znetboot' and 'znetbootrd' targets so that they work again (If you would prefer things in a different format, please let me know). Thanks: - Update the comments to reflect how things work with the correct usages now. - Fix the znetboot / znetbootrd targets. We now always set end-y, and use this to figure out what image will be tftpboot'ed. ===== arch/ppc/boot/simple/Makefile 1.24 vs edited ===== --- 1.24/arch/ppc/boot/simple/Makefile Tue Dec 23 10:00:06 2003 +++ edited/arch/ppc/boot/simple/Makefile Tue Dec 23 10:01:04 2003 @@ -4,30 +4,38 @@ # Author: Tom Rini <trini@mvista.com> # # Notes: -# (1) For machine targets which produce more than one image, define -# ZNETBOOT and ZNETBOOTRD to the image which should be available for -# 'znetboot' and 'znetboot.initrd` -# (2) Also, for machine targets which just need to remove the ELF header, -# define END to be the machine name you want in the image. -# (3) For machine targets which use the mktree program, define END to be -# the machine name you want in the image, and you can optionally set -# ENTRYPOINT which the image should be loaded at. The optimal setting -# for ENTRYPOINT is the link address. +# (1) For machines that do not want to use the ELF image directly (including +# stripping just the ELF header off), they must set the variables +# zimage-$(CONFIG_MACHINE) and zimagerd-$(CONFIG_MACHINE) to the target +# that produces the desired image and they must set end-$(CONFIG_MACHINE) +# to what will be suffixed to the image filename. +# (2) Regardless of (1), to have the resulting image be something other +# than 'zImage.elf', set end-$(CONFIG_MACHINE) to be the suffix used for +# the zImage, znetboot, and znetbootrd targets. +# (3) For machine targets which use the mktree program, you can optionally +# set entrypoint-$(CONFIG_MACHINE) to the location which the image should be +# loaded at. The optimal setting for entrypoint-$(CONFIG_MACHINE) is the link +# address. # (4) It is advisable to pass in the memory size using BI_MEMSIZE and # get_mem_size(), which is memory controller dependent. Add in the correct -# XXX_memory.o file for this to work, as well as editing the $(MISC) file. - +# XXX_memory.o file for this to work, as well as editing the +# misc-$(CONFIG_MACHINE) variable. boot := arch/ppc/boot common := $(boot)/common utils := $(boot)/utils bootlib := $(boot)/lib images := $(boot)/images +tftpboot := /tftpboot # Normally, we use the 'misc.c' file for decompress_kernel and # whatnot. Sometimes we need to override this however. misc-y := misc.o +# Normally, we have our images end in .elf, but something we want to +# change this. +end-y := elf + # Additionally, we normally don't need to mess with the L2 / L3 caches # if present on 'classic' PPC. cacheflag-y := -DCLEAR_CACHES="" @@ -41,35 +49,31 @@ zimage-$(CONFIG_IBM_OPENBIOS) := zImage-TREE zimageinitrd-$(CONFIG_IBM_OPENBIOS) := zImage.initrd-TREE end-$(CONFIG_IBM_OPENBIOS) := treeboot - tftpimage-$(CONFIG_IBM_OPENBIOS) := /tftpboot/zImage.$(end-y) misc-$(CONFIG_IBM_OPENBIOS) := misc-embedded.o - tftpimage-$(CONFIG_EMBEDDEDBOOT) := /tftpboot/zImage.embedded + end-$(CONFIG_EMBEDDEDBOOT) := embedded misc-$(CONFIG_EMBEDDEDBOOT) := misc-embedded.o zimage-$(CONFIG_EBONY) := zImage-TREE zimageinitrd-$(CONFIG_EBONY) := zImage.initrd-TREE end-$(CONFIG_EBONY) := ebony entrypoint-$(CONFIG_EBONY) := 0x01000000 - tftpimage-$(CONFIG_EBONY) := /tftpboot/zImage.$(end-y) zimage-$(CONFIG_OCOTEA) := zImage-TREE zimageinitrd-$(CONFIG_OCOTEA) := zImage.initrd-TREE end-$(CONFIG_OCOTEA) := ocotea entrypoint-$(CONFIG_OCOTEA) := 0x01000000 - tftpimage-$(CONFIG_OCOTEA) := /tftpboot/zImage.$(end-y) extra.o-$(CONFIG_EV64260) := direct.o misc-ev64260.o - tftpimage-$(CONFIG_EV64260) := /tftpboot/zImage.ev64260 + end-$(CONFIG_EV64260) := ev64260 cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3) zimage-$(CONFIG_GEMINI) := zImage-STRIPELF zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF end-$(CONFIG_GEMINI) := gemini - tftpimage-$(CONFIG_GEMINI) := /tftpboot/zImage.$(end-y) extra.o-$(CONFIG_K2) := legacy.o - tftpimage-$(CONFIG_K2) := /tftpboot/zImage.k2 + end-$(CONFIG_K2) := k2 cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3) # kconfig 'feature', only one of these will ever be 'y' at a time. @@ -81,9 +85,7 @@ zimage-$(motorola) := zImage-PPLUS zimageinitrd-$(motorola) := zImage.initrd-PPLUS - tftpimage-$(motorola) := /tftpboot/zImage.pplus - znetboot-$(motorola) := zImage.pplus - znetbootrd-$(motorola) := zImage.initrd.pplus + end-$(motorola) := pplus # Overrides previous assingment extra.o-$(CONFIG_PPLUS) := legacy.o @@ -92,10 +94,9 @@ zimageinitrd-$(pcore) := zImage.initrd-STRIPELF extra.o-$(pcore) := chrpmap.o end-$(pcore) := pcore - tftpimage-$(pcore) := /tftpboot/zImage.$(end-y) cacheflag-$(pcore) := -include $(clear_L2_L3) - tftpimage-$(CONFIG_SANDPOINT) := /tftpboot/zImage.sandpoint + end-$(CONFIG_SANDPOINT) := sandpoint cacheflag-$(CONFIG_SANDPOINT) := -include $(clear_L2_L3) zimage-$(CONFIG_SPRUCE) := zImage-TREE @@ -103,11 +104,9 @@ end-$(CONFIG_SPRUCE) := spruce entrypoint-$(CONFIG_SPRUCE) := 0x00800000 misc-$(CONFIG_SPRUCE) := misc-spruce.o - tftpimage-$(CONFIG_SPRUCE) := /tftpboot/zImage.$(end-y) - -# tftp image is prefixed with .smp if compiled for SMP -tftpimage-$(CONFIG_SMP) += .smp +# SMP images should have a '.smp' suffix. + end-$(CONFIG_SMP) += .smp # This is a treeboot that needs init functions until the # boot rom is sorted out (i.e. this is short lived) @@ -181,18 +180,10 @@ rm -f $(obj)/zvmlinux.initrd znetboot: zImage -ifneq ($(ZNETBOOT),) - cp $(images)/$(ZNETBOOT) $(tftpimage-y) -else - cp $(images)/zImage.* $(tftpimage-y) -endif + cp $(images)/zImage.$(end-y) $(tftpboot)/zImage.$(end-y) znetboot.initrd: zImage.initrd -ifneq ($(znetbootrd-y),) - cp $(images)/$(znetbootrd-y) $(tftpimage-y) -else - cp $(images)/zImage.* $(tftpimage-y) -endif + cp $(images)/zImage.initrd.$(end-y) $(tftpboot)/zImage.initrd.$(end-y) $(images)/zImage-STRIPELF: $(obj)/zvmlinux dd if=$(obj)/zvmlinux of=$(images)/zImage.$(end-y) skip=64 bs=1k -- Tom Rini http://gate.crashing.org/~trini/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (4 preceding siblings ...) 2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini @ 2003-12-23 21:08 ` viro 2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III ` (2 subsequent siblings) 8 siblings, 0 replies; 37+ messages in thread From: viro @ 2003-12-23 21:08 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: > +inode-i_sb-checks.patch > > Add checks for null inode->i_sb in core VFS (we're still arguing about this) They should be replaced with BUG_ON() or removed. > +name_to_dev_t-fix.patch > > Don't replace slashes in names to `.'. Replace them with `!' instead. No > clue why, nobody tells me anything. Take a look at /sys/block/ and you'll see - when we register disks, we mangle the disk names that contain slashes (e.g. cciss/c0d0) replacing them with '!' in corresponding sysfs names. So name_to_dev_t() should mangle the name in the same way before looking for it in /sys/block. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (5 preceding siblings ...) 2003-12-23 21:08 ` 2.6.0-mm1 viro @ 2003-12-24 13:09 ` William Lee Irwin III 2003-12-24 14:26 ` 2.6.0-mm1 William Lee Irwin III 2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett 2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig 8 siblings, 1 reply; 37+ messages in thread From: William Lee Irwin III @ 2003-12-24 13:09 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ > Quite a lot of new material here. It would be appreciated if people who have > significant patches in -mm could retest please. ptecache refresh. Includes the shrink_slab() and smp_local_irq_* suggestions as well as a fix for IPI recursion found while running hackbench on -wli, moving the "don't shrink lowmem slabs if gfp_mask wants highmem" logic into the shrinkers themselves, and converting shrink_pagetable_cache() to use on_each_cpu(). How's this look? -- wli diff -prauN mm1-2.6.0-1/arch/i386/mm/init.c mm1-2.6.0-2/arch/i386/mm/init.c --- mm1-2.6.0-1/arch/i386/mm/init.c 2003-12-24 04:02:51.000000000 -0800 +++ mm1-2.6.0-2/arch/i386/mm/init.c 2003-12-24 04:06:34.000000000 -0800 @@ -465,7 +465,7 @@ void __init mem_init(void) /* this will put all low memory onto the freelists */ totalram_pages += __free_all_bootmem(); - + tlb_init(); reservedpages = 0; for (tmp = 0; tmp < max_low_pfn; tmp++) /* diff -prauN mm1-2.6.0-1/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c --- mm1-2.6.0-1/arch/i386/mm/pgtable.c 2003-12-24 04:02:51.000000000 -0800 +++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 04:40:50.000000000 -0800 @@ -1,5 +1,6 @@ /* * linux/arch/i386/mm/pgtable.c + * highpte-compatible pte caching, William Irwin, IBM, June 2003 */ #include <linux/config.h> @@ -13,6 +14,7 @@ #include <linux/slab.h> #include <linux/pagemap.h> #include <linux/spinlock.h> +#include <linux/init.h> #include <asm/system.h> #include <asm/pgtable.h> @@ -139,18 +141,70 @@ pte_t *pte_alloc_one_kernel(struct mm_st return pte; } -struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) +void tlb_init(void) { - struct page *pte; + int cpu; + for (cpu = 0; cpu < NR_CPUS; ++cpu) { + int zone; + struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu); + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + INIT_LIST_HEAD(&tlb->active_list[zone]); + INIT_LIST_HEAD(&tlb->ready_list[zone]); + } + } +} -#ifdef CONFIG_HIGHPTE - pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0); -#else - pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0); -#endif - if (pte) - clear_highpage(pte); - return pte; +static inline struct page *pte_alloc_fresh(int gfp_mask) +{ + struct page *page = alloc_page(gfp_mask); + if (page) { + clear_highpage(page); + if (TestSetPagePTE(page)) + BUG(); + } + return page; +} + +static inline int zone_high(struct zone *zone) +{ + if (!zone) + return 1; + else + return zone - zone->zone_pgdat->node_zones >= ZONE_HIGHMEM; +} + +static inline struct page *pte_alloc_ready(int gfp_flags) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + unsigned long flags; + struct page *page = NULL; + + local_irq_save(flags); + if (tlb->nr_pte_ready) { + int z; + for (z = MAX_ZONE_ID - 1; z >= 0; --z) { + struct zone *zone = zone_table[z]; + if (!(gfp_flags & __GFP_HIGHMEM) && zone_high(zone)) + continue; + if (!list_empty(&tlb->ready_list[z])) + break; + } + page = list_entry(tlb->ready_list[z].next, struct page, list); + if (TestSetPagePTE(page)) + BUG(); + list_del(&page->list); + tlb->ready_count[z]--; + tlb->nr_pte_ready--; + } + local_irq_restore(flags); + put_cpu(); + return page; +} + +struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) +{ + struct page *page = pte_alloc_ready(GFP_PTE); + return page ? page : pte_alloc_fresh(GFP_PTE); } void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags) @@ -320,3 +374,45 @@ out_free: kmem_cache_free(pgd_cache, pgd); } +static void shrink_cpu_pagetable_cache(void *__gfp_mask) +{ + int zone, high, gfp_mask = (int)__gfp_mask; + unsigned long flags; + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + + high = !!(gfp_mask & __GFP_HIGHMEM); + local_irq_save(flags); + if (!tlb->nr_pte_ready) + goto out; + + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (list_empty(&tlb->ready_list[zone])) + continue; + if (!high && zone_high(zone_table[zone])) + continue; + + free_pages_bulk(zone_table[zone], + tlb->ready_count[zone], + &tlb->ready_list[zone], + 0); + tlb->nr_pte_ready -= tlb->ready_count[zone]; + tlb->ready_count[zone] = 0; + } +out: + local_irq_restore(flags); + put_cpu(); +} + +static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask) +{ + on_each_cpu(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1); + return 1; +} + +static __init int init_pagetable_cache_shrinker(void) +{ + set_shrinker(1, shrink_pagetable_cache); + return 0; +} + +__initcall(init_pagetable_cache_shrinker); diff -prauN mm1-2.6.0-1/fs/dcache.c mm1-2.6.0-2/fs/dcache.c --- mm1-2.6.0-1/fs/dcache.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/dcache.c 2003-12-24 04:15:28.000000000 -0800 @@ -642,6 +642,9 @@ void shrink_dcache_anon(struct hlist_hea */ static int shrink_dcache_memory(int nr, unsigned int gfp_mask) { + if (gfp_mask & __GFP_HIGHMEM) + return 0; + if (nr) { /* * Nasty deadlock avoidance. diff -prauN mm1-2.6.0-1/fs/dquot.c mm1-2.6.0-2/fs/dquot.c --- mm1-2.6.0-1/fs/dquot.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/dquot.c 2003-12-24 04:15:47.000000000 -0800 @@ -391,6 +391,9 @@ static int shrink_dqcache_memory(int nr, { int ret; + if (gfp_mask & __GFP_HIGHMEM) + return 0; + spin_lock(&dq_list_lock); if (nr) prune_dqcache(nr); diff -prauN mm1-2.6.0-1/fs/inode.c mm1-2.6.0-2/fs/inode.c --- mm1-2.6.0-1/fs/inode.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/inode.c 2003-12-24 04:16:14.000000000 -0800 @@ -468,6 +468,9 @@ static void prune_icache(int nr_to_scan) */ static int shrink_icache_memory(int nr, unsigned int gfp_mask) { + if (gfp_mask & __GFP_HIGHMEM) + return 0; + if (nr) { /* * Nasty deadlock avoidance. We may hold various FS locks, diff -prauN mm1-2.6.0-1/fs/mbcache.c mm1-2.6.0-2/fs/mbcache.c --- mm1-2.6.0-1/fs/mbcache.c 2003-12-17 18:59:53.000000000 -0800 +++ mm1-2.6.0-2/fs/mbcache.c 2003-12-24 04:16:50.000000000 -0800 @@ -176,6 +176,9 @@ mb_cache_shrink_fn(int nr_to_scan, unsig struct list_head *l, *ltmp; int count = 0; + if (gfp_mask & __GFP_HIGHMEM) + return 0; + spin_lock(&mb_cache_spinlock); list_for_each(l, &mb_cache_list) { struct mb_cache *cache = diff -prauN mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c --- mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c 2003-12-17 18:58:05.000000000 -0800 +++ mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c 2003-12-24 04:17:50.000000000 -0800 @@ -2208,6 +2208,8 @@ xfs_qm_shake(int nr_to_scan, unsigned in if (!(gfp_mask & __GFP_WAIT)) return 0; + if (gfp_mask & __GFP_HIGHMEM) + return 0; if (!xfs_Gqm) return 0; diff -prauN mm1-2.6.0-1/include/asm-i386/pgalloc.h mm1-2.6.0-2/include/asm-i386/pgalloc.h --- mm1-2.6.0-1/include/asm-i386/pgalloc.h 2003-12-17 18:58:07.000000000 -0800 +++ mm1-2.6.0-2/include/asm-i386/pgalloc.h 2003-12-24 04:06:34.000000000 -0800 @@ -31,14 +31,6 @@ static inline void pte_free_kernel(pte_t free_page((unsigned long)pte); } -static inline void pte_free(struct page *pte) -{ - __free_page(pte); -} - - -#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte)) - /* * allocating and freeing a pmd is trivial: the 1-entry pmd is * inside the pgd, so has no extra memory associated with it. @@ -47,9 +39,26 @@ static inline void pte_free(struct page #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); }) #define pmd_free(x) do { } while (0) -#define __pmd_free_tlb(tlb,x) do { } while (0) #define pgd_populate(mm, pmd, pte) BUG() #define check_pgt_cache() do { } while (0) +#include <asm/tlb.h> + +static inline void pte_free(struct page *page) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + tlb_remove_page(tlb, page); + put_cpu(); +} + +static inline void pte_free_tlb(struct mmu_gather *tlb, struct page *page) +{ + tlb_remove_page(tlb, page); +} + +static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) +{ +} + #endif /* _I386_PGALLOC_H */ diff -prauN mm1-2.6.0-1/include/asm-i386/tlb.h mm1-2.6.0-2/include/asm-i386/tlb.h --- mm1-2.6.0-1/include/asm-i386/tlb.h 2003-12-17 18:58:38.000000000 -0800 +++ mm1-2.6.0-2/include/asm-i386/tlb.h 2003-12-24 04:41:00.000000000 -0800 @@ -1,10 +1,52 @@ #ifndef _I386_TLB_H #define _I386_TLB_H +/* + * include/asm-i386/tlb.h + * (C) June 2003 William Irwin, IBM + * Routines for pagetable caching and release. + */ + +#include <linux/config.h> +#include <linux/mm.h> +#include <linux/swap.h> +#include <linux/gfp.h> +#include <linux/list.h> +#include <linux/percpu.h> +#include <asm/tlbflush.h> + +#ifdef CONFIG_HIGHPTE +#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT|__GFP_HIGHMEM) +#else +#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT) +#endif + +#define PG_PTE PG_arch_1 +#define NR_PTE 128 +#define FREE_PTE_NR NR_PTE +#define NR_NONPTE 512 +#define MAX_ZONE_ID (MAX_NUMNODES * MAX_NR_ZONES) + +#define PagePTE(page) test_bit(PG_PTE, &(page)->flags) +#define SetPagePTE(page) set_bit(PG_PTE, &(page)->flags) +#define ClearPagePTE(page) clear_bit(PG_PTE, &(page)->flags) +#define TestSetPagePTE(page) test_and_set_bit(PG_PTE, &(page)->flags) +#define TestClearPagePTE(page) test_and_clear_bit(PG_PTE, &(page)->flags) +#define PageZoneID(page) ((page)->flags >> ZONE_SHIFT) /* - * x86 doesn't need any special per-pte or - * per-vma handling.. + * vmscan.c does smp_call_function() to shoot down cached pagetables under + * memory pressure. */ +struct mmu_gather { + struct mm_struct *mm; + int nr_pte_active, nr_pte_ready, nr_nonpte, need_flush, fullmm, freed; + struct list_head active_list[MAX_ZONE_ID], ready_list[MAX_ZONE_ID]; + int active_count[MAX_ZONE_ID], ready_count[MAX_ZONE_ID]; + struct page *nonpte[NR_NONPTE]; +}; + +DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); + #define tlb_start_vma(tlb, vma) do { } while (0) #define tlb_end_vma(tlb, vma) do { } while (0) #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) @@ -15,6 +57,119 @@ */ #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) -#include <asm-generic/tlb.h> +void tlb_init(void); -#endif +static inline +struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned int flush) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + tlb->mm = mm; + tlb->fullmm = flush; + tlb->freed = 0; + put_cpu(); + return tlb; +} + +static inline +void tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *pte, unsigned long addr) +{ + tlb->need_flush = 1; +} + +static inline +void tlb_flush_ready(struct mmu_gather *tlb) +{ + int zone; + + for (zone = 0; tlb->nr_pte_ready >= NR_PTE && zone < MAX_ZONE_ID; ++zone) { + if (!tlb->ready_count[zone]) + continue; + + free_pages_bulk(zone_table[zone], + tlb->ready_count[zone], + &tlb->ready_list[zone], + 0); + tlb->nr_pte_ready -= tlb->ready_count[zone]; + tlb->ready_count[zone] = 0; + } +} + +static inline +void tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) +{ + int zone; + unsigned long flags; + + if (!tlb->need_flush && tlb->nr_nonpte < NR_NONPTE) + return; + + tlb->need_flush = 0; + tlb_flush(tlb); + + local_irq_save(flags); + + if (tlb->nr_nonpte) { + free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte); + tlb->nr_nonpte = 0; + } + + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (!tlb->active_count[zone]) + continue; + + list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]); + tlb->ready_count[zone] += tlb->active_count[zone]; + tlb->active_count[zone] = 0; + } + tlb->nr_pte_ready += tlb->nr_pte_active; + tlb->nr_pte_active = 0; + if (tlb->nr_pte_ready >= NR_PTE) + tlb_flush_ready(tlb); + + local_irq_restore(flags); +} + +static inline +void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) +{ + if (tlb->mm->rss >= tlb->freed) + tlb->mm->rss -= tlb->freed; + else + tlb->mm->rss = 0; + tlb_flush_mmu(tlb, start, end); +} + +static inline +void tlb_remove_nonpte_page(struct mmu_gather *tlb, struct page *page) +{ + tlb->nonpte[tlb->nr_nonpte] = page; + tlb->nr_nonpte++; + if (tlb->nr_nonpte >= NR_NONPTE) + tlb_flush_mmu(tlb, 0, 0); +} + +static inline +void tlb_remove_pte_page(struct mmu_gather *tlb, struct page *page) +{ + int zone = PageZoneID(page); + ClearPagePTE(page); + tlb->nr_pte_active++; + tlb->active_count[zone]++; + list_add(&page->list, &tlb->active_list[zone]); +} + +static inline +void tlb_remove_page(struct mmu_gather *tlb, struct page *page) +{ + unsigned long flags; + + local_irq_save(flags); + tlb->need_flush = 1; + if (PagePTE(page)) + tlb_remove_pte_page(tlb, page); + else + tlb_remove_nonpte_page(tlb, page); + local_irq_restore(flags); +} + +#endif /* _I386_TLB_H */ diff -prauN mm1-2.6.0-1/include/linux/gfp.h mm1-2.6.0-2/include/linux/gfp.h --- mm1-2.6.0-1/include/linux/gfp.h 2003-12-17 18:58:28.000000000 -0800 +++ mm1-2.6.0-2/include/linux/gfp.h 2003-12-24 04:06:34.000000000 -0800 @@ -79,6 +79,7 @@ static inline struct page * alloc_pages_ extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order)); extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask)); +int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order); #define __get_free_page(gfp_mask) \ __get_free_pages((gfp_mask),0) diff -prauN mm1-2.6.0-1/mm/page_alloc.c mm1-2.6.0-2/mm/page_alloc.c --- mm1-2.6.0-1/mm/page_alloc.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/mm/page_alloc.c 2003-12-24 04:06:34.000000000 -0800 @@ -238,8 +238,7 @@ static inline void free_pages_check(cons * And clear the zone's pages_scanned counter, to hold off the "all pages are * pinned" detection logic. */ -static int -free_pages_bulk(struct zone *zone, int count, +int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order) { unsigned long mask, flags; diff -prauN mm1-2.6.0-1/mm/vmscan.c mm1-2.6.0-2/mm/vmscan.c --- mm1-2.6.0-1/mm/vmscan.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/mm/vmscan.c 2003-12-24 04:24:29.000000000 -0800 @@ -891,12 +891,10 @@ int try_to_free_pages(struct zone **zone /* Take a nap, wait for some writeback to complete */ blk_congestion_wait(WRITE, HZ/10); - if (zones[0] - zones[0]->zone_pgdat->node_zones < ZONE_HIGHMEM) { - shrink_slab(total_scanned, gfp_mask); - if (reclaim_state) { - nr_reclaimed += reclaim_state->reclaimed_slab; - reclaim_state->reclaimed_slab = 0; - } + shrink_slab(total_scanned, gfp_mask); + if (reclaim_state) { + nr_reclaimed += reclaim_state->reclaimed_slab; + reclaim_state->reclaimed_slab = 0; } } if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) @@ -968,11 +966,12 @@ static int balance_pgdat(pg_data_t *pgda max_scan = SWAP_CLUSTER_MAX; to_free -= shrink_zone(zone, max_scan, GFP_KERNEL, to_reclaim, &nr_mapped, ps, priority); - if (i < ZONE_HIGHMEM) { - reclaim_state->reclaimed_slab = 0; + reclaim_state->reclaimed_slab = 0; + if (i < ZONE_HIGHMEM) shrink_slab(max_scan + nr_mapped, GFP_KERNEL); - to_free -= reclaim_state->reclaimed_slab; - } + else + shrink_slab(max_scan + nr_mapped, GFP_HIGHUSER); + to_free -= reclaim_state->reclaimed_slab; if (zone->all_unreclaimable) continue; if (zone->pages_scanned > zone->present_pages * 2) ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III @ 2003-12-24 14:26 ` William Lee Irwin III 0 siblings, 0 replies; 37+ messages in thread From: William Lee Irwin III @ 2003-12-24 14:26 UTC (permalink / raw) To: Andrew Morton, linux-kernel, linux-mm [-- Attachment #1: Type: text/plain, Size: 939 bytes --] On Wed, Dec 24, 2003 at 05:09:42AM -0800, William Lee Irwin III wrote: > ptecache refresh. Includes the shrink_slab() and smp_local_irq_* > suggestions as well as a fix for IPI recursion found while running > hackbench on -wli, moving the "don't shrink lowmem slabs if gfp_mask > wants highmem" logic into the shrinkers themselves, and converting > shrink_pagetable_cache() to use on_each_cpu(). > How's this look? This tries to adjust the reclaim logic so it returns status like other shrinkers attached both incrementally and as a whole-hog replacement. BTW delta = scanned * shrinker->seeks; delta *= (*shrinker->shrinker)(0, gfp_mask); do_div(delta, pages + 1); shrinker->nr += delta; if (shrinker->nr > SHRINK_BATCH) { long nr_to_scan = shrinker->nr; more aggressively reclaims slabs requiring _more_ seeks to refill. -- wli [-- Attachment #2: fix_slab_shrink.patch --] [-- Type: text/plain, Size: 2330 bytes --] diff -u mm1-2.6.0-2/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c --- mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 04:40:50.000000000 -0800 +++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 06:02:29.000000000 -0800 @@ -374,13 +374,18 @@ kmem_cache_free(pgd_cache, pgd); } -static void shrink_cpu_pagetable_cache(void *__gfp_mask) +struct pagetable_shrink { + int gfp_mask; + atomic_t nr; +}; + +static void shrink_cpu_pagetable_cache(void *__shrink) { - int zone, high, gfp_mask = (int)__gfp_mask; - unsigned long flags; + struct pagetable_shrink *shrink = (struct pagetable_shrink *)__shrink; struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + int zone, high = !!(shrink->gfp_mask & __GFP_HIGHMEM); + unsigned long flags; - high = !!(gfp_mask & __GFP_HIGHMEM); local_irq_save(flags); if (!tlb->nr_pte_ready) goto out; @@ -396,17 +401,55 @@ &tlb->ready_list[zone], 0); tlb->nr_pte_ready -= tlb->ready_count[zone]; + atomic_sub(tlb->ready_count[zone], &shrink->nr); tlb->ready_count[zone] = 0; + if (atomic_read(&shrink->nr) <= 0) + goto out; } out: local_irq_restore(flags); put_cpu(); } +static int pagetable_shrinkage_possible(int gfp_mask) +{ + int cpu, total = 0; + + for (cpu = 0; cpu < NR_CPUS; ++cpu) { + struct mmu_gather *tlb; + if (!cpu_online(cpu)) + continue; + tlb = &per_cpu(mmu_gathers, cpu); + if ((gfp_mask & __GFP_HIGHMEM) || !(GFP_PTE & __GFP_HIGHMEM)) + total += tlb->nr_pte_ready; + else { + int zone; + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (!zone_high(zone_table[zone])) + total += tlb->ready_count[zone]; + } + } + } + return total; +} + static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask) { - on_each_cpu(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1); - return 1; + int possible; + if ((gfp_mask & __GFP_HIGHMEM) && !(GFP_PTE & __GFP_HIGHMEM)) + return 0; + possible = pagetable_shrinkage_possible(gfp_mask); + if (!nr_to_scan) + return possible; + else if (!possible) + return 0; + else { + struct pagetable_shrink shrink; + shrink.gfp_mask = gfp_mask; + atomic_set(&shrink.nr, nr_to_scan); + on_each_cpu(shrink_cpu_pagetable_cache, &shrink, 1, 1); + return pagetable_shrinkage_possible(gfp_mask); + } } static __init int init_pagetable_cache_shrinker(void) [-- Attachment #3: ptecache-2.6.0-mm1-1 --] [-- Type: text/plain, Size: 15914 bytes --] diff -prauN mm1-2.6.0-1/arch/i386/mm/init.c mm1-2.6.0-2/arch/i386/mm/init.c --- mm1-2.6.0-1/arch/i386/mm/init.c 2003-12-24 04:02:51.000000000 -0800 +++ mm1-2.6.0-2/arch/i386/mm/init.c 2003-12-24 04:06:34.000000000 -0800 @@ -465,7 +465,7 @@ void __init mem_init(void) /* this will put all low memory onto the freelists */ totalram_pages += __free_all_bootmem(); - + tlb_init(); reservedpages = 0; for (tmp = 0; tmp < max_low_pfn; tmp++) /* diff -prauN mm1-2.6.0-1/arch/i386/mm/pgtable.c mm1-2.6.0-2/arch/i386/mm/pgtable.c --- mm1-2.6.0-1/arch/i386/mm/pgtable.c 2003-12-24 04:02:51.000000000 -0800 +++ mm1-2.6.0-2/arch/i386/mm/pgtable.c 2003-12-24 06:02:29.000000000 -0800 @@ -1,5 +1,6 @@ /* * linux/arch/i386/mm/pgtable.c + * highpte-compatible pte caching, William Irwin, IBM, June 2003 */ #include <linux/config.h> @@ -13,6 +14,7 @@ #include <linux/slab.h> #include <linux/pagemap.h> #include <linux/spinlock.h> +#include <linux/init.h> #include <asm/system.h> #include <asm/pgtable.h> @@ -139,18 +141,70 @@ pte_t *pte_alloc_one_kernel(struct mm_st return pte; } -struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) +void tlb_init(void) { - struct page *pte; + int cpu; + for (cpu = 0; cpu < NR_CPUS; ++cpu) { + int zone; + struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu); + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + INIT_LIST_HEAD(&tlb->active_list[zone]); + INIT_LIST_HEAD(&tlb->ready_list[zone]); + } + } +} -#ifdef CONFIG_HIGHPTE - pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0); -#else - pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0); -#endif - if (pte) - clear_highpage(pte); - return pte; +static inline struct page *pte_alloc_fresh(int gfp_mask) +{ + struct page *page = alloc_page(gfp_mask); + if (page) { + clear_highpage(page); + if (TestSetPagePTE(page)) + BUG(); + } + return page; +} + +static inline int zone_high(struct zone *zone) +{ + if (!zone) + return 1; + else + return zone - zone->zone_pgdat->node_zones >= ZONE_HIGHMEM; +} + +static inline struct page *pte_alloc_ready(int gfp_flags) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + unsigned long flags; + struct page *page = NULL; + + local_irq_save(flags); + if (tlb->nr_pte_ready) { + int z; + for (z = MAX_ZONE_ID - 1; z >= 0; --z) { + struct zone *zone = zone_table[z]; + if (!(gfp_flags & __GFP_HIGHMEM) && zone_high(zone)) + continue; + if (!list_empty(&tlb->ready_list[z])) + break; + } + page = list_entry(tlb->ready_list[z].next, struct page, list); + if (TestSetPagePTE(page)) + BUG(); + list_del(&page->list); + tlb->ready_count[z]--; + tlb->nr_pte_ready--; + } + local_irq_restore(flags); + put_cpu(); + return page; +} + +struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) +{ + struct page *page = pte_alloc_ready(GFP_PTE); + return page ? page : pte_alloc_fresh(GFP_PTE); } void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags) @@ -320,3 +374,88 @@ out_free: kmem_cache_free(pgd_cache, pgd); } +struct pagetable_shrink { + int gfp_mask; + atomic_t nr; +}; + +static void shrink_cpu_pagetable_cache(void *__shrink) +{ + struct pagetable_shrink *shrink = (struct pagetable_shrink *)__shrink; + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + int zone, high = !!(shrink->gfp_mask & __GFP_HIGHMEM); + unsigned long flags; + + local_irq_save(flags); + if (!tlb->nr_pte_ready) + goto out; + + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (list_empty(&tlb->ready_list[zone])) + continue; + if (!high && zone_high(zone_table[zone])) + continue; + + free_pages_bulk(zone_table[zone], + tlb->ready_count[zone], + &tlb->ready_list[zone], + 0); + tlb->nr_pte_ready -= tlb->ready_count[zone]; + atomic_sub(tlb->ready_count[zone], &shrink->nr); + tlb->ready_count[zone] = 0; + if (atomic_read(&shrink->nr) <= 0) + goto out; + } +out: + local_irq_restore(flags); + put_cpu(); +} + +static int pagetable_shrinkage_possible(int gfp_mask) +{ + int cpu, total = 0; + + for (cpu = 0; cpu < NR_CPUS; ++cpu) { + struct mmu_gather *tlb; + if (!cpu_online(cpu)) + continue; + tlb = &per_cpu(mmu_gathers, cpu); + if ((gfp_mask & __GFP_HIGHMEM) || !(GFP_PTE & __GFP_HIGHMEM)) + total += tlb->nr_pte_ready; + else { + int zone; + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (!zone_high(zone_table[zone])) + total += tlb->ready_count[zone]; + } + } + } + return total; +} + +static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask) +{ + int possible; + if ((gfp_mask & __GFP_HIGHMEM) && !(GFP_PTE & __GFP_HIGHMEM)) + return 0; + possible = pagetable_shrinkage_possible(gfp_mask); + if (!nr_to_scan) + return possible; + else if (!possible) + return 0; + else { + struct pagetable_shrink shrink; + shrink.gfp_mask = gfp_mask; + atomic_set(&shrink.nr, nr_to_scan); + on_each_cpu(shrink_cpu_pagetable_cache, &shrink, 1, 1); + return pagetable_shrinkage_possible(gfp_mask); + } +} + +static __init int init_pagetable_cache_shrinker(void) +{ + set_shrinker(1, shrink_pagetable_cache); + return 0; +} + +__initcall(init_pagetable_cache_shrinker); diff -prauN mm1-2.6.0-1/fs/dcache.c mm1-2.6.0-2/fs/dcache.c --- mm1-2.6.0-1/fs/dcache.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/dcache.c 2003-12-24 04:15:28.000000000 -0800 @@ -642,6 +642,9 @@ void shrink_dcache_anon(struct hlist_hea */ static int shrink_dcache_memory(int nr, unsigned int gfp_mask) { + if (gfp_mask & __GFP_HIGHMEM) + return 0; + if (nr) { /* * Nasty deadlock avoidance. diff -prauN mm1-2.6.0-1/fs/dquot.c mm1-2.6.0-2/fs/dquot.c --- mm1-2.6.0-1/fs/dquot.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/dquot.c 2003-12-24 04:15:47.000000000 -0800 @@ -391,6 +391,9 @@ static int shrink_dqcache_memory(int nr, { int ret; + if (gfp_mask & __GFP_HIGHMEM) + return 0; + spin_lock(&dq_list_lock); if (nr) prune_dqcache(nr); diff -prauN mm1-2.6.0-1/fs/inode.c mm1-2.6.0-2/fs/inode.c --- mm1-2.6.0-1/fs/inode.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/fs/inode.c 2003-12-24 04:16:14.000000000 -0800 @@ -468,6 +468,9 @@ static void prune_icache(int nr_to_scan) */ static int shrink_icache_memory(int nr, unsigned int gfp_mask) { + if (gfp_mask & __GFP_HIGHMEM) + return 0; + if (nr) { /* * Nasty deadlock avoidance. We may hold various FS locks, diff -prauN mm1-2.6.0-1/fs/mbcache.c mm1-2.6.0-2/fs/mbcache.c --- mm1-2.6.0-1/fs/mbcache.c 2003-12-17 18:59:53.000000000 -0800 +++ mm1-2.6.0-2/fs/mbcache.c 2003-12-24 04:16:50.000000000 -0800 @@ -176,6 +176,9 @@ mb_cache_shrink_fn(int nr_to_scan, unsig struct list_head *l, *ltmp; int count = 0; + if (gfp_mask & __GFP_HIGHMEM) + return 0; + spin_lock(&mb_cache_spinlock); list_for_each(l, &mb_cache_list) { struct mb_cache *cache = diff -prauN mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c --- mm1-2.6.0-1/fs/xfs/quota/xfs_qm.c 2003-12-17 18:58:05.000000000 -0800 +++ mm1-2.6.0-2/fs/xfs/quota/xfs_qm.c 2003-12-24 04:17:50.000000000 -0800 @@ -2208,6 +2208,8 @@ xfs_qm_shake(int nr_to_scan, unsigned in if (!(gfp_mask & __GFP_WAIT)) return 0; + if (gfp_mask & __GFP_HIGHMEM) + return 0; if (!xfs_Gqm) return 0; diff -prauN mm1-2.6.0-1/include/asm-i386/pgalloc.h mm1-2.6.0-2/include/asm-i386/pgalloc.h --- mm1-2.6.0-1/include/asm-i386/pgalloc.h 2003-12-17 18:58:07.000000000 -0800 +++ mm1-2.6.0-2/include/asm-i386/pgalloc.h 2003-12-24 04:06:34.000000000 -0800 @@ -31,14 +31,6 @@ static inline void pte_free_kernel(pte_t free_page((unsigned long)pte); } -static inline void pte_free(struct page *pte) -{ - __free_page(pte); -} - - -#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte)) - /* * allocating and freeing a pmd is trivial: the 1-entry pmd is * inside the pgd, so has no extra memory associated with it. @@ -47,9 +39,26 @@ static inline void pte_free(struct page #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); }) #define pmd_free(x) do { } while (0) -#define __pmd_free_tlb(tlb,x) do { } while (0) #define pgd_populate(mm, pmd, pte) BUG() #define check_pgt_cache() do { } while (0) +#include <asm/tlb.h> + +static inline void pte_free(struct page *page) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + tlb_remove_page(tlb, page); + put_cpu(); +} + +static inline void pte_free_tlb(struct mmu_gather *tlb, struct page *page) +{ + tlb_remove_page(tlb, page); +} + +static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) +{ +} + #endif /* _I386_PGALLOC_H */ diff -prauN mm1-2.6.0-1/include/asm-i386/tlb.h mm1-2.6.0-2/include/asm-i386/tlb.h --- mm1-2.6.0-1/include/asm-i386/tlb.h 2003-12-17 18:58:38.000000000 -0800 +++ mm1-2.6.0-2/include/asm-i386/tlb.h 2003-12-24 04:41:00.000000000 -0800 @@ -1,10 +1,52 @@ #ifndef _I386_TLB_H #define _I386_TLB_H +/* + * include/asm-i386/tlb.h + * (C) June 2003 William Irwin, IBM + * Routines for pagetable caching and release. + */ + +#include <linux/config.h> +#include <linux/mm.h> +#include <linux/swap.h> +#include <linux/gfp.h> +#include <linux/list.h> +#include <linux/percpu.h> +#include <asm/tlbflush.h> + +#ifdef CONFIG_HIGHPTE +#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT|__GFP_HIGHMEM) +#else +#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT) +#endif + +#define PG_PTE PG_arch_1 +#define NR_PTE 128 +#define FREE_PTE_NR NR_PTE +#define NR_NONPTE 512 +#define MAX_ZONE_ID (MAX_NUMNODES * MAX_NR_ZONES) + +#define PagePTE(page) test_bit(PG_PTE, &(page)->flags) +#define SetPagePTE(page) set_bit(PG_PTE, &(page)->flags) +#define ClearPagePTE(page) clear_bit(PG_PTE, &(page)->flags) +#define TestSetPagePTE(page) test_and_set_bit(PG_PTE, &(page)->flags) +#define TestClearPagePTE(page) test_and_clear_bit(PG_PTE, &(page)->flags) +#define PageZoneID(page) ((page)->flags >> ZONE_SHIFT) /* - * x86 doesn't need any special per-pte or - * per-vma handling.. + * vmscan.c does smp_call_function() to shoot down cached pagetables under + * memory pressure. */ +struct mmu_gather { + struct mm_struct *mm; + int nr_pte_active, nr_pte_ready, nr_nonpte, need_flush, fullmm, freed; + struct list_head active_list[MAX_ZONE_ID], ready_list[MAX_ZONE_ID]; + int active_count[MAX_ZONE_ID], ready_count[MAX_ZONE_ID]; + struct page *nonpte[NR_NONPTE]; +}; + +DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); + #define tlb_start_vma(tlb, vma) do { } while (0) #define tlb_end_vma(tlb, vma) do { } while (0) #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) @@ -15,6 +57,119 @@ */ #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) -#include <asm-generic/tlb.h> +void tlb_init(void); -#endif +static inline +struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned int flush) +{ + struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu()); + tlb->mm = mm; + tlb->fullmm = flush; + tlb->freed = 0; + put_cpu(); + return tlb; +} + +static inline +void tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *pte, unsigned long addr) +{ + tlb->need_flush = 1; +} + +static inline +void tlb_flush_ready(struct mmu_gather *tlb) +{ + int zone; + + for (zone = 0; tlb->nr_pte_ready >= NR_PTE && zone < MAX_ZONE_ID; ++zone) { + if (!tlb->ready_count[zone]) + continue; + + free_pages_bulk(zone_table[zone], + tlb->ready_count[zone], + &tlb->ready_list[zone], + 0); + tlb->nr_pte_ready -= tlb->ready_count[zone]; + tlb->ready_count[zone] = 0; + } +} + +static inline +void tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) +{ + int zone; + unsigned long flags; + + if (!tlb->need_flush && tlb->nr_nonpte < NR_NONPTE) + return; + + tlb->need_flush = 0; + tlb_flush(tlb); + + local_irq_save(flags); + + if (tlb->nr_nonpte) { + free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte); + tlb->nr_nonpte = 0; + } + + for (zone = 0; zone < MAX_ZONE_ID; ++zone) { + if (!tlb->active_count[zone]) + continue; + + list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]); + tlb->ready_count[zone] += tlb->active_count[zone]; + tlb->active_count[zone] = 0; + } + tlb->nr_pte_ready += tlb->nr_pte_active; + tlb->nr_pte_active = 0; + if (tlb->nr_pte_ready >= NR_PTE) + tlb_flush_ready(tlb); + + local_irq_restore(flags); +} + +static inline +void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) +{ + if (tlb->mm->rss >= tlb->freed) + tlb->mm->rss -= tlb->freed; + else + tlb->mm->rss = 0; + tlb_flush_mmu(tlb, start, end); +} + +static inline +void tlb_remove_nonpte_page(struct mmu_gather *tlb, struct page *page) +{ + tlb->nonpte[tlb->nr_nonpte] = page; + tlb->nr_nonpte++; + if (tlb->nr_nonpte >= NR_NONPTE) + tlb_flush_mmu(tlb, 0, 0); +} + +static inline +void tlb_remove_pte_page(struct mmu_gather *tlb, struct page *page) +{ + int zone = PageZoneID(page); + ClearPagePTE(page); + tlb->nr_pte_active++; + tlb->active_count[zone]++; + list_add(&page->list, &tlb->active_list[zone]); +} + +static inline +void tlb_remove_page(struct mmu_gather *tlb, struct page *page) +{ + unsigned long flags; + + local_irq_save(flags); + tlb->need_flush = 1; + if (PagePTE(page)) + tlb_remove_pte_page(tlb, page); + else + tlb_remove_nonpte_page(tlb, page); + local_irq_restore(flags); +} + +#endif /* _I386_TLB_H */ diff -prauN mm1-2.6.0-1/include/linux/gfp.h mm1-2.6.0-2/include/linux/gfp.h --- mm1-2.6.0-1/include/linux/gfp.h 2003-12-17 18:58:28.000000000 -0800 +++ mm1-2.6.0-2/include/linux/gfp.h 2003-12-24 04:06:34.000000000 -0800 @@ -79,6 +79,7 @@ static inline struct page * alloc_pages_ extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order)); extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask)); +int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order); #define __get_free_page(gfp_mask) \ __get_free_pages((gfp_mask),0) diff -prauN mm1-2.6.0-1/mm/page_alloc.c mm1-2.6.0-2/mm/page_alloc.c --- mm1-2.6.0-1/mm/page_alloc.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/mm/page_alloc.c 2003-12-24 04:06:34.000000000 -0800 @@ -238,8 +238,7 @@ static inline void free_pages_check(cons * And clear the zone's pages_scanned counter, to hold off the "all pages are * pinned" detection logic. */ -static int -free_pages_bulk(struct zone *zone, int count, +int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order) { unsigned long mask, flags; diff -prauN mm1-2.6.0-1/mm/vmscan.c mm1-2.6.0-2/mm/vmscan.c --- mm1-2.6.0-1/mm/vmscan.c 2003-12-24 04:02:53.000000000 -0800 +++ mm1-2.6.0-2/mm/vmscan.c 2003-12-24 04:24:29.000000000 -0800 @@ -891,12 +891,10 @@ int try_to_free_pages(struct zone **zone /* Take a nap, wait for some writeback to complete */ blk_congestion_wait(WRITE, HZ/10); - if (zones[0] - zones[0]->zone_pgdat->node_zones < ZONE_HIGHMEM) { - shrink_slab(total_scanned, gfp_mask); - if (reclaim_state) { - nr_reclaimed += reclaim_state->reclaimed_slab; - reclaim_state->reclaimed_slab = 0; - } + shrink_slab(total_scanned, gfp_mask); + if (reclaim_state) { + nr_reclaimed += reclaim_state->reclaimed_slab; + reclaim_state->reclaimed_slab = 0; } } if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) @@ -968,11 +966,12 @@ static int balance_pgdat(pg_data_t *pgda max_scan = SWAP_CLUSTER_MAX; to_free -= shrink_zone(zone, max_scan, GFP_KERNEL, to_reclaim, &nr_mapped, ps, priority); - if (i < ZONE_HIGHMEM) { - reclaim_state->reclaimed_slab = 0; + reclaim_state->reclaimed_slab = 0; + if (i < ZONE_HIGHMEM) shrink_slab(max_scan + nr_mapped, GFP_KERNEL); - to_free -= reclaim_state->reclaimed_slab; - } + else + shrink_slab(max_scan + nr_mapped, GFP_HIGHUSER); + to_free -= reclaim_state->reclaimed_slab; if (zone->all_unreclaimable) continue; if (zone->pages_scanned > zone->present_pages * 2) ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (6 preceding siblings ...) 2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III @ 2003-12-24 15:39 ` Gene Heskett 2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig 8 siblings, 0 replies; 37+ messages in thread From: Gene Heskett @ 2003-12-24 15:39 UTC (permalink / raw) To: Andrew Morton, linux-kernel, linux-mm On Tuesday 23 December 2003 00:11, Andrew Morton wrote: >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0- >test11/2.6.0-mm1/ > > >Quite a lot of new material here. It would be appreciated if people > who have significant patches in -mm could retest please. I don't have anything in -mm1, but heres a report, up about 23 hrs now. Everything seems to be working fine, and one proggy I couldn't run before, now does, epsons iscan-1.5.2 front end for sane driven scanners now works. The major thing I see in the logs is audio related, and has been carrying on since last summer. Dec 23 20:35:18 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 21:33:06 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 22:10:50 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 22:25:58 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 22:50:40 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 23:20:37 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 23:33:07 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 23 23:53:43 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 00:07:46 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 00:22:26 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 01:22:55 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 01:35:27 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 03:47:31 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) Dec 24 03:59:54 coyote kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000) I think that each of those is related to the little two tone noise I play when there is new incoming mail. There's a couple of other non-show stoppers but thats the major log clutterer. The only alsa is whats in the kernel, and with a couple of very minor exceptions, it all works. No Ooops, lockups or anything like that. All pretty smooth and interactive using anticipatory at the moment. Merry Christmas Andrew! -- Cheers, Gene AMD K6-III@500mhz 320M Athlon1600XP@1400mhz 512M 99.22% setiathome rank, not too shabby for a WV hillbilly Yahoo.com attornies please note, additions to this message by Gene Heskett are: Copyright 2003 by Maurice Eugene Heskett, all rights reserved. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 2.6.0-mm1 Andrew Morton ` (7 preceding siblings ...) 2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett @ 2003-12-28 10:58 ` Christoph Hellwig 2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton 8 siblings, 1 reply; 37+ messages in thread From: Christoph Hellwig @ 2003-12-28 10:58 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linux-mm On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ > > > Quite a lot of new material here. It would be appreciated if people who have > significant patches in -mm could retest please. BTW, could you please drop Al's RD* patches? They change the entry points for block drivers and thus create some hassle for people hacking on out of tree block drivers, and obviously can't go into mainline as is. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig @ 2003-12-28 19:49 ` Andrew Morton 2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig 0 siblings, 1 reply; 37+ messages in thread From: Andrew Morton @ 2003-12-28 19:49 UTC (permalink / raw) To: Christoph Hellwig Cc: linux-kernel, linux-mm, viro@parcelfarce.linux.theplanet.co.uk Christoph Hellwig <hch@infradead.org> wrote: > > On Mon, Dec 22, 2003 at 09:11:31PM -0800, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test11/2.6.0-mm1/ > > > > > > Quite a lot of new material here. It would be appreciated if people who have > > significant patches in -mm could retest please. > > BTW, could you please drop Al's RD* patches? They change the entry points > for block drivers and thus create some hassle for people hacking on out > of tree block drivers, and obviously can't go into mainline as is. Have you discussed this with him? I was actually hoping to get those patches merged up soon. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: 2.6.0-mm1 2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton @ 2003-12-28 19:52 ` Christoph Hellwig 0 siblings, 0 replies; 37+ messages in thread From: Christoph Hellwig @ 2003-12-28 19:52 UTC (permalink / raw) To: Andrew Morton Cc: linux-kernel, linux-mm, viro@parcelfarce.linux.theplanet.co.uk On Sun, Dec 28, 2003 at 11:49:06AM -0800, Andrew Morton wrote: > Have you discussed this with him? I was actually hoping to get those patches > merged up soon. A while ago he said he's gonna redo those parts that don't change the API for 2.6 and will postpone the rest to 2.7. ^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2003-12-28 19:52 UTC | newest]
Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-12-23 16:34 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:39 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:54 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:58 ` 2.6.0-mm1 Jens Axboe
2003-12-23 17:29 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 18:49 ` 2.6.0-mm1 Jens Axboe
-- strict thread matches above, loose matches on Subject: below --
2003-12-24 9:59 2.6.0-mm1 GCS
2003-12-24 11:32 ` 2.6.0-mm1 Andrew Morton
2003-12-24 11:53 ` 2.6.0-mm1 GCS
2003-12-24 12:23 ` 2.6.0-mm1 GCS
2003-12-24 15:17 ` 2.6.0-mm1 Dmitry Torokhov
2003-12-24 19:12 ` 2.6.0-mm1 GCS
2003-12-24 12:47 ` 2.6.0-mm1 Thomas Molina
2003-12-25 9:11 ` 2.6.0-mm1 Dmitry Torokhov
2003-12-25 18:22 ` 2.6.0-mm1 GCS
2003-12-24 14:38 ` 2.6.0-mm1 GCS
[not found] <20031223170633.GG1601@suse.de>
2003-12-23 17:15 ` 2.6.0-mm1 Pascal Schmidt
[not found] <15N7L-7y2-3@gated-at.bofh.it>
2003-12-23 15:41 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:32 ` 2.6.0-mm1 Jens Axboe
2003-12-23 16:46 ` 2.6.0-mm1 Pascal Schmidt
2003-12-23 16:56 ` 2.6.0-mm1 Jens Axboe
2003-12-23 5:11 2.6.0-mm1 Andrew Morton
2003-12-23 5:27 ` 2.6.0-mm1 Valdis.Kletnieks
2003-12-23 5:28 ` 2.6.0-mm1 Marcos D. Marado Torres
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
2003-12-23 5:40 ` 2.6.0-mm1 Stan Bubrouski
2003-12-23 7:57 ` 2.6.0-mm1 Andrew Walrond
2003-12-23 7:30 ` 2.6.0-mm1 Martin J. Bligh
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
2003-12-23 17:31 ` 2.6.0-mm1 Tom Rini
2003-12-23 21:08 ` 2.6.0-mm1 viro
2003-12-24 13:09 ` 2.6.0-mm1 William Lee Irwin III
2003-12-24 14:26 ` 2.6.0-mm1 William Lee Irwin III
2003-12-24 15:39 ` 2.6.0-mm1 Gene Heskett
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
2003-12-28 19:49 ` 2.6.0-mm1 Andrew Morton
2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox