* 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ 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; 50+ 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] 50+ messages in thread
* 2.6.0-mm1
@ 2003-12-23 5:11 ` Andrew Morton
0 siblings, 0 replies; 50+ 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] 50+ messages in thread* 2.6.0-mm1 @ 2003-12-23 5:11 ` Andrew Morton 0 siblings, 0 replies; 50+ 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 5:28 ` Marcos D. Marado Torres -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 5:28 ` Marcos D. Marado Torres 0 siblings, 0 replies; 50+ 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----- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 5:28 ` Andrew Morton -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 5:28 ` Andrew Morton 0 siblings, 0 replies; 50+ 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/ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 5:40 ` Stan Bubrouski 0 siblings, 0 replies; 50+ 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 7:30 ` Martin J. Bligh -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 7:30 ` Martin J. Bligh 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 17:29 ` Tom Rini -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 17:29 ` Tom Rini 0 siblings, 0 replies; 50+ 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/ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 17:31 ` Tom Rini 0 siblings, 0 replies; 50+ 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/ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-23 21:08 ` viro -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-23 21:08 ` viro 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-24 13:09 ` William Lee Irwin III -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-24 13:09 ` William Lee Irwin III 0 siblings, 0 replies; 50+ 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) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-24 15:39 ` Gene Heskett -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-24 15:39 ` Gene Heskett 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: 2.6.0-mm1 2003-12-23 5:11 ` 2.6.0-mm1 Andrew Morton @ 2003-12-28 10:58 ` Christoph Hellwig -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-28 10:58 ` Christoph Hellwig 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-28 19:49 ` Andrew Morton 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ 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 -1 siblings, 0 replies; 50+ 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] 50+ messages in thread
* Re: 2.6.0-mm1 @ 2003-12-28 19:52 ` Christoph Hellwig 0 siblings, 0 replies; 50+ 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. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a> ^ permalink raw reply [flat|nested] 50+ messages in thread
end of thread, other threads:[~2003-12-28 19:52 UTC | newest]
Thread overview: 50+ 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: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 Marcos D. Marado Torres
2003-12-23 5:28 ` 2.6.0-mm1 Andrew Morton
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 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 7:30 ` 2.6.0-mm1 Martin J. Bligh
2003-12-23 17:29 ` 2.6.0-mm1 Tom Rini
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 17:31 ` 2.6.0-mm1 Tom Rini
2003-12-23 21:08 ` 2.6.0-mm1 viro
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 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-24 15:39 ` 2.6.0-mm1 Gene Heskett
2003-12-28 10:58 ` 2.6.0-mm1 Christoph Hellwig
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:49 ` 2.6.0-mm1 Andrew Morton
2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig
2003-12-28 19:52 ` 2.6.0-mm1 Christoph Hellwig
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.