2002-04-05 19:46:14

by Alan Cox

[permalink] [raw]
Subject: Linux 2.4.19pre5-ac3

Ok its fun time. This adds the software suspend code. Its not perfect yet and
a lot of drivers need power management support to work nicely with it. This
is one of the things we have to handle for future ACPI work so its good to
give people a platform for checking their PM code.

If you don't like living dangerously just say N to software suspend.

Alan
--
"That was said by Eric Raymond who belongs to another movement"
- Richard Stallman

----

[+ indicates stuff that went to Marcelo, o stuff that has not,
* indicates stuff that is merged in mainstream now, X stuff that proved
bad and was dropped out]

Linux 2.4.19pre5-ac3
o Software suspend initial patch (Pavel Machek, Gabor Kuti,..)
| Don't enable this idly. Its here to get exposure and so
| people can bring the rest of the code up to meet its needs as
| well as fix it.
| Read the docs first!
o Small fix for the radeonfb (Peter Horton)
o Fix highmem truncation on DMA mapping bug (Dave Miller)
o Modules are not supposed to hack the syscall (Arjan van de Ven)
table so remove the export
o Add ite sound configuration help (Steven Cole)

Linux 2.4.19pre5-ac2
o Fix compile error when using initrd (Jeff Nguyen)
o Make the KL133 onboard video happy again (Andre Pang)
| and a lot of people working to figure out the right bits
o Reparent jdb to init and drop lock on exit (Ishan Jayawardena)
o Fix radeon corner case (Arjan van de Ven)
o Cache more group descriptors on ext2/ext3 (Arjan van de Ven)
o SAB8253 series wan drivers (Joachim Martillo)
o Add more idents for PIIX IDE controllers (Arjan van de Ven)
o Lock signals in procfs (Andrea Arcangeli)
o Backport of 2.5 BUG_ON() functionality (Robert Love)
o Drop -O1 on sched.c - turns out its a CPU
microcode bug on early Xeon not Linux
o Fix Radeon fb reset problems as X11 did (Peter Horton)
o Radeon acceleration/mtrr updates (Peter Horton)
o JFS flushpage updates (Christoph Hellwig)
o BeOS file system support (Will Dyson)
| original work by Makoto Kato
o Fix w83877 watchdog SMP compile failure (Paul Komkoff, me)
o Fix pty/tty POLL_OUT reporting (Sapan Bhatia)
o Update berkshire watchdog driver (Lindsay Harris, Rob Radez)
o Clean up duplicated path_init and __user_walk (Hanna Linder)
code
o Enable MMX extensions on Geode GXm (Zwane Mwaikambo)
o O(1) scsi free command block finder (Mark Hemment)
o Updated IBM serveraid driver (Jack Hammer)
o S/390 makefile cross compile fixups (Pete Zaitcev)

Linux 2.4.19pre5-ac1
o Merge with 2.4.19pre5

Linux 2.4.19pre4-ac4
o Fix an additional vm86 case (Stas Sergeev)
| Check DOSemu again and this code wants some good review
o Do sanity checking to avoid mispoking PCI on (me)
the CMD640 [noted by Justin Gibbs]
o Fix promise IDE error recovery (Manfred Spraul)
o Ali IDE hang fixes (Sen Dong)
| Extracts from a bigger ALi update
o Ext3 balloc locking fix (Andrew Morton)
* Fix escaped MWAVE configuration (Thomas Hood)
o Fix nls_utf8 problems (Liyang Hu)
o Fix mmx_memcpy over-prefetching on Athlon (me)
o Fix an error return the vm accounting code broke(Andrew Morton)
o Fix bpck6 build on the powerpc platform (Jens Schmalzing)
o Fix bpck6 64bit cleanness and other minor bits (me)
o Fix sound Configure.help thinko (Per von Zweigbergk)
+ Backport the 2.5 wireless driver stuff (Jean Tourrilhes)
| So 2.5 driver fix back merging is sane

Linux 2.4.19pre4-ac3
o Fix NFS pathconf problem (Neil Brown)
o IBM memory key ident for usb_storage (Alexander Inyukhin)
o Add byte counters to mkiss driver (Ken Koster)
o Add more entries to the scsi scan lists (Arjan van de Ven)
o More eepro100 variants (Arjan van de Ven)
o Update wolfson codec initialisers (Randolph Bentson)
+ USB serial oops fixes (Greg Kroah Hartmann)
o Mad16 register gameport with input layer (Michael Haardt)
o Update specialix driver to handle SI v1.x board (Ismo Salonen)
+ Fix a wdt285 EFAULT return, remove crud (Ron Gage, me)
+ Fix ioctl return errors on several sound cards (Ron Gage)

Linux 2.4.19pre4-ac2
o Hopefully correctly fix the vm86 problems (Stas Sergeev)
| Please test wine 16bit/dosemu/XFree stuff
* Fix panic when writing 0 length ucode chunk (Tigran Aivazian)
o Fix incorrect use of hwif->index in ALI IDE (Martin Dalecki)
o Fix mmap rbtree corruption bug (Ben LaHaise)
o Fix incorrect 10 to 6 byte scsi command switch (Jens Axboe)
* TCP correctness fix (Dave Miller)
+ Correct mwi acronym in docs (Geert Uytterhoeven)
o Merge the rest of Promise 20271 support (YAMAWAKI Teruo)
+ Fix open/close races in indydog (Dave Hansen)
o Fix compile problem with ibm hotplug (Greg Kroah-Hartmann)
o Save the .config file in make rpm (Kelly French)
o Add another vaio with swapped minutes (Michael Piotrowski)
o Further atm fixes (Maksim Krasnyanskiy
Marcell Gal)
o Even more atm fixes (Francois Romieu)
* USB support for palm m130 (Udo Eisenbarth)
* USB fix for pegasus hotplug crash (Petko Manolov)
* USB request sense help for some scanners (Oliver ?)
* USB support for Optus@home (Oliver ?)
* USB printer updates (David Paschal, Pete Zaitcev)
* Work around USB ATEN keyboard switches (Vojtech Pavlik)
* PWC usb camera updates ("Nemosoft")
* Small updates to the USB hub code (Itai Nahshon)
* Fix spinlock handling bugs in ipaq USB (Ganesh Varadarajan)
* OHCI fixes (David Brownell)
* USB docs update (David Brownell)
* UHCI fixes (Johannes Erdfelt)
* Quieten a USB message to debug (Greg Kroah-Hartmann)
* USB bandwidth reporting (David Brownell)
+ Fix msync SuS v3 compliance (Chris Yeoh)
o CS8900 fixes (need testing) (Paul Komkoff)
* Adapt HP100 driver to pci api (Jeff Garzik)
+ Acenic updates - fix leak and Tigon1 (Jes Sorensen)
* DE620 region handling fixes (K Kasprzak)
* DLink DL2K gige updates (Edward Peng, Jeff Garzik)
+ pcnet32 leak fix (Jeff Garzik)
+ pcnet32 types fixes for non x86 (Anton Blanchard)
+ pcnet32 assorted fixes (Dave Engebretsen)
+ pcnet32 fixes (Paul Mackerras)
+ Fix missing linux/delay.h from eepro100 (me)
+ Further pcnet32 cleanup and probe fixes (Go Taniguchi)
* Merge gcc3 warning fixes for copy/csum (Jeff Garzik)
* Fix bmac build (Joshua Uziel)
* DE4x5 slight tidy up (Jeff Garzik)
* More AC97 ident strings (Peter Christy)

Linux 2.4.19pre4-ac1
o Merge 2.4.19pre4
o Add PCI idents for mobility parallel port (me)
o Fix crash on boot with LLC if no devices present(me)

Linux 2.4.19pre3-ac6
o Fix the oops initialising the CD-ROM (Andre Hedrick)
* Add devexit_p() to the wdt_pci watchdog (Adrian Bunk)
o Fix lm_sensors compile (Eyal Lebedinsky)
o Remove some dead JFS oddments (Christoph Hellwig)
o SCSI generic update (Doug Gilbert, Travers Carter)
o VM86 exception fixups (Kasper Dupont, Manfred Spraul)
o Fix an fcntl error corner case to match SuS (Christopher Yeoh)

Linux 2.4.19pre3-ac5
o Further IDE updates (Andre Hedrick)
o Reduce ide tape debug noise (Alfredo Sanju?n)
o Sync devices on final close not each close (Miquel van Smoorenburg)
o Make max busses/irqs dynamic on x86 (James Cleverdon)
| Needed for big IBM boxen
o Remove exp_find in NFS (never used) (Al Viro)
o Fix read locking on NFS export_table (Erik Habbinga)
o Fix possible NFS error path mnt/dentry leak (Al Viro)
o Use MKDEV macro in NFS device create (GOTO Masanori)
o Clean up stale fh stats (Neil Brown)
o Tidy nfsd_lookup (Al Viro)
o nfsd_setattr fixes (Neil Brown)
o Tidy up nfsd vfs calls (Neil Brown)
o Clean up nfsd syscall interface (Neil Brown)
o Fix fat NFS handle interfaces (Neil Brown)
o Tidy up export list handling for NFS (Al Viro)
o Use seq_file for NFS exports proc file (Al Viro)
o Support for deviceless file system exports (Steven Whitehouse)
o Remove big kernel lock use for most of nfsd (Neil Brown)
o Convert sunrpc code to use generic linux lists (Neil Brown)
o Tidy up svc_sock NFS locking on SMP (Neil Brown)
o Improve tcp error/close handling (Neil Brown)
o Close down idle NFS tcp sockets (Neil Brown)
o NFS TCP fixes for buffer space tracking (Neil Brown)
o Handle TCP RPC service flooding (Neil Brown)
o Enable NFS over TCP via config options (Neil Brown)

Linux 2.4.19pre3-ac4
o Ensure jfs readdir doesn't spin on bad metadata (Dave Kleikamp)
o Fix iconfig with no modules (Randy Dunlap)
o Don't enfore rlimit on block device files (Peter Hartley)
o Add belkin wireless card idents (Brendan McAdams)
o Add HP VA7400 to the scsi blacklist quirks (Alar Aun)
o JFS race fix (Dave Kleikamp)
* Fix wafer5823 watchdog merge error I made (Justin Cormack)
* Fix Config rule for phonejack pcmcia card (Eyal Lebedinsky)
o Test improved OOM handler for rmap (Rik van Riel)
* Update defconfig/experimental bits (Neils Jensen)
* The incredible shrinking kernel patch (Andrew Morton)
* Clean up BUG() implementation (Andrew Morton)

Linux 2.4.19pre3-ac3
o Doh fixed the SYSVIPC build problem (Everyone...)
o Added 802.2LLC support (Arnaldo Carvalho de Melo)
| Based on 2.0 code contributed by Procom
o Fix i2o build as module (Mark Cooke)
o Blacklist for machines where local apic fails (Mikael Pettersson)
* Clean up wdt_pci (Zwane Mwaikambo)

Linux 2.4.19pre3-ac2
o Hopefully fixed all the as accounting bugs (me)
o Bit more LS220 work (nothing useful yet) (me)
o Change should be long not int in shmem acct (me)
o Ignore MAP_NORESERVE in mode 2/3 accounting (me)
+ Fix pci bar flag parsing (Russell King)
+ Handle ELF setup_arg_pages failure (Russell King)
* AT1700 filter fix (Sawa)
o S/390 fix for O(1) scheduler (Pete Zaitcev)
o Fix /proc/kcore for non zero memory start (Russell King)
* Update USB config files (Greg Kroah-Hartmann)
* TCP minisocks fixes (Dave Miller)
* dnotify fixes (Stephen Rothwell)
* Remove pointles sysrq-L (Russell King)
* Reparent khubd to init (Andrew Morton)
* EEpro100 test updates (Arjan van de Ven)
* Use named initializers in hwc_con (Pete Zaitcev)
* SHM ipc fix (Paul Larson)
o Further printk level fixes (Denis Vlasenko)
o Revert epic100 changes - reports of problems (me)
* Water WDT watchdog driver (Justin Cormack)
| I did some cleanup - Justin please double check it
* ITE8330G PIRQ map support (Tobias Diedrich)
o Trivial khttpd logging bug fix (Rogier Wolff)
o Stop module autoloader making user /proc/pid (Andreas Ferber)
dir root owned
o Handle TF flag properly on debug trap (Christoph Hellwig,
Arjan van de Ven, Stephan Springl)
* ALi M1701 watchdog driver (Stve Hill)
| I tidied/fixed this one too so please check
o Add iconfig (save/extract config from kernel (Randy Dunlap)
image file)
* Add mk712 touchscreen driver (Daniel Quinlan)
| Fixed various bugs in it - Dan please check

Linux 2.4.19pre3-ac1
o Merge with 2.4.19pre3
- Revert buggy bluesmoke change
- Add missing pppox header change
* Next SIS ide update (Lionel Bouton)
o Only try the flush and recycle trick for (me)
known buggy I2O controllers.
o Clean up module junk and use new init style (me)
for I2O.
o Don't use cache hints on dim i2o controllers (me)
* Add vmalloc_to_page to 2.4 from 2.5 (Gerd Knorr)
o JFS updates (Christoph Hellwig, Dave Kleikamp)
* Fix boot_cpu_data corruption bug (Mikael Pettersson)
+ Clean up ppp vfree paths (David Woodhouse)
* Emagic EMI usb driver (Tapio Laxstr?m)
* Edgeport fixes for multiple device case (Greg Kroah-Hartmann)
* Ethtool support for catc usb (Brad Hards)
* Update to pegasus driver in base tree (Petko Manolov)
* Update USB maintainers (Greg Kroah-Hartmann)
* IPAQ usb driver fixup (Ganesh Varadarajan)
* Allow usbfs name for 2.5 compatibility (Greg Kroah-Hartmann)
o Committed_AS without a space in procfs (Andy Dustman)
* Fix an NFS file creation problem (Trond Myklebust)
o Fix a missing ksym (Greg Kroah-Hartmann)
o Increase init delay on ALI5451 audio setup (Harald Jenny)
| Needed for Acer Travelmate 521TE
* Fix printk message levels in pci code (Denis Vlasenko)
o Add another laptop to the buggy APM tables (Mihnea-Costin Grigore)
o Fix an obscure acct race (Bob Miller)
o Sonypi driver update (Stelian Pop)
o Fix devfs glitch with namespace stuff (Paul Komkoff, Al Viro)

Linux 2.4.19pre2-ac4
* Initial Ricoh ZVbus support (Marcus Metzler)
o PnPBIOS fixes (Brian Gerst)
o Fix a case where sync_one might not start an (Ben LaHaise)
inode writeout
+ Corrected atm locking fix (Maksim Krasnyanskiy)
o mp table parsing corner case fix (James Cleverdon)
o NFS over JFS directory offset fix (Christoph Hellwig)
* Update reisefsprogs version (Paul Komkoff)
* RME Hammerfall driver update (G?nter Geiger)
o Fix an off by one in the bluesmoke reporting (Dave Jones)
+ Make irnet disconnect hang up ppp (Jean Tourrilhes)
+ Fix abuse of cli() in irda socket connect (Jean Tourrilhes)
* Add help text to patch-kernel script (Damjan Lango)
* USB irda updates (Jean Tourrilhes)
+ IRDA link layer updates (Jean Tourrilhes)
* Add WD xd signature to 2.4 (from 2.2) (Jim Freeman)
* Update sc1200 watchdog (Zwane Mwaikambo)
* Switch wdt501 watchdog driver to bitops (me)
* Much updated LSI logic MPT fusion drivers (Pam Delaney)
* Wavelan driver updates (Jean Tourrilhes)
o Fix a race where we could hit init_idle after (Kip Walker)
freeing it (from rest_init)
* Raylink driver bugfixes (Jean Tourrilhes)
o Switch 2.4 to using a shared zlib (David Woodhouse)
* Fix w83877 SMP deadlock, clean up locking (me)
o IBM lanstreamer update (Kent Yoder)
o Fix 32bitism in the PM code (Pavel Machek)
o Make irqsave use unsigned long for consistency (Pavel Machek)
| Just fixes a few exceptions
o Make i2o_block fallback to blkpg for ioctls (me)
o All pids in use handling (Paul Larson)
* IDE code wasn't using ide_free_irq (William Jhun)
o Fix non procfs build (Eric Sandeen)
* Cyberjack bug fix (Greg Kroah-Hartmann)
* USB vicam fixes (Oliver Neukum)
* Add another device to the ftdi driver (Greg Kroah-Hartmann)
* UHCI performance fixes (Johannes Erdfelt)
* STV680 bug fixes (Kevin Sisson)
* Kaweth bug fixes (Oliver Neukum)
* Update hpusbscsi driver (Oliver Neukum)
* Update OV511 driver (Mark McClelland)
* Update usb-ipaq driver to support journada (Ganesh Varadarajan)
* Fix a bug in the USB skeleton driver (Holger Waechtler)
* Further SiS IDE updates (Lionel Bouton)
* Fix ufs mount failure bug (Andries Brouwer)
o Allow the max user frequency for the rtc to (Mike Shaver)
be configurable
o HPT37x crash on init fixups (Vojtech Pavlik)

Linux 2.4.19pre2-ac3
o Fix quota deadlock and extreme load corruption (Jan Kara, Chris Mason)
* MIPS config fix (Ralf Baechle)
* Update AGP config entry (Daniele Venzano)
* SMBfs NLS oops fix (Urban Widmark)
o Fix expand_stack locking hang on OOM (Kevin Buhr)
o Restore 10Mbit half duplex eepro100 fix (me)
o 3c509 full duplex and documentation (David Ruggiero)
o 3c509 power management (Zwane Mwaikambo)
* Remove more surplus llseek methods (Robert Love)
X ATM locking fix (Frode Isaksen)
o Merge extra sound help texts (Steven Cole)
| plus one typo fix
o Add help for IXJ pcmcia configuration (Steven Cole, me)
| Rewrote the text somewhat

Linux 2.4.19pre2-ac2
o Fix a mismerge (may explain the patch weirdo)
+ Fix highmem + sblive (Daniel Bertrand)
* Reiserfs updates (Oleg Drokin)
o Auto enable HT on HT capable systems (Arjan van de Ven)
o Fix init/do_mounts O(1) scheduler merge glitch (Greg Louis)
o Fix drm build problem on CPU=386 (Mark Cooke)
+ Fix incorrect sleep in ZR36067 driver (me)
* Add missing cpu_relax to iph5526 driver (me)

Linux 2.4.19pre2-ac1
* Merge aic7xxx update (Justin Gibbs)
* Fix handling of scsi 'medium error: recovered' (Justin Gibbs)
* Further request region fixups (Marcus Alanen)
o Add interlace/doublescan to voodoo1/2 fb driver (Urs Ganse)
| interlace is always handy with 3d glasses..
o Merge O(1) scheduler (Ingo Molnar)
| Thanks to Martin Knoblauch for doing the merge work
| Non x86 ports may need to clean up their mm/fault.c
* Lseek usage cleanup (Robert Love)
o Merge with 2.4.19pre2
- Fixed bogus sysctl definitions
- Fixed incorrect MODULE_LICENSE backout
- Fixed gratuitous supercede spelling change
- Fixed double patches from mips people
- Fixed incorrect link order from mips people
- Fixed broken config rules from mips people
- Made cciss build
- Remove half written "meth.c" driver
* Fix up some of the watchdog api text (me)
| Janitor job - go through that and make all the drivers
| support all the things ('V' NOWAYOUT and ioctl core)
o Fix wrong order in MAINTAINERS (me)
o Remove roadrunner reference from MAINTAINERS (me)

Linux 2.4.19pre1-ac2
o Fix chown/chmod on shmemfs (me)
o Fix accounting error in the shm code (me)
o Turn on mode2/mode3 overcommit protection (me)
* w83877f watchdog fix compile for SMP (Mark Cooke)
* Fix ide=nodma for serverworks (Ken Brownfield)
* USB2 controller support (Greg Kroah-Hartmann)
* Add more devices to the visor driver (m515,clie)(Greg Kroah-Hartmann)
* IBM USB camera driver updates (Greg Kroah-Hartmann)
* USB auerswald driver (Wolfgang Muees)
o Trivial random match up with 2.2 (Marco Colombo)
* Spelling fixes (Jim Freeman)
* Next batch of time_*() fixups (Tim Schmielau)
+ Update video4linux API docs (Gerd Knorr)
* Merge some comment fixups (John Kim)
o ymfpci sync (Pete Zaitcev)
* Update maintainers to add pm3fb (Romain DOLBEAU)
* Hotplug updates (docs, fs, compaq driver) (Greg Kroah-Hartmann)
* IBM hotplug support (Irene Zubarev, Tong Yu, Jyoti Shah, Chuck Cole)
* ACPI hotplug driver support (Hiroshi Aono, Takayoshi Kochi)
* Blink keyboard lights on x86 panic (Andi Kleen)
o Further Configure.help changes (Steven Cole)
o Merge a version of the sard I/O accounting (Stephen Tweedie,
Christoph Hellwig)
+ SC1200 watchdog driver (Zwane Mwaikambo)
* Fix address ordering for 36bit MCE on x86 (Dave Jones)

Linux 2.4.19pre1-ac1
o Merge with 2.4.19-pre1

Linux 2.4.18-ac1
o Merge with 2.4.18 proper
o Add missing -rc4 diff
o Use attribute notifiers to account shmemfs (me)
o Initial luxsonor LS220/LS240 driver code (me)
| This is just setup code and only in the tree because
| its where I keep my hacks in progress

Linux 2.4.18rc2-ac2
o Fix a corruption problem in the jfs dir table (Dave Kleikamp)
o Fix trap when extending a single extent of (Dave Kleikamp)
over 64Gb in JFS
* NBD deadlock fix (Steven Whitehouse)
* Fix device ref counting in netrom stack (Tomi Manninen)
* Fix shmemfs link counting (Christoph Rohland)
* Fix potential scsi disk oops (Peter Wong)
* eepro100 carrier init fix (Jeff Garzik)
* Fix wrong kfree in netrom stack (Tomi Manninen)
* Add TI1250 inits to ZV bus support (me)
| Zoom video now works on the IBM TP600 at least..
* Fix off by one on loop devices limit (Heinz Mauelshagen)
o Improve handling of psaux open with no mouse (Christoph Hellwig)
present
* 3COM 3c359 token ring driver (Mike Phillips)
* Fix a case where hpfs didnt set block size (Chris Mason)
early enough
* Remove use of lock_kernel in softdog driver (me)
* Make olympic driver use spinlocks not (Mike Phillips)
lock_kernel
o Fix type of detected devices in md.c (Jakob Kemi)
* Changes and defconfig update (Niels Jensen)
o PNP BIOS driver updates (Thomas Hood)
* Turn off excess printks in pnp quirk reporting (Andrey Panin)
* Add documentation for ITE I2C (Steven Cole)
o Add documentation for other zoran cards (Steven Cole)
+ Add an SC520 watchdog, and enable wd8387ff (Scott Jennings)
+ Cleaned up and fixed some SC520 watchdog bugs (me)
| Scott - can you double check these
* Fix return on generic lib/string.c memcmp (Georg Nikodym)
* Further zoom video cleanups (me)

Linux 2.4.18rc2-ac1
o Merge with 2.4.18rc2
* Ignore i810 modem codecs (me)
o Core of address space accounting code (me)
| Enforcement, ptrace and some shmem corner bits to do
* Fix security hole in shmfs (me)
o Fix various bits of 64bit file I/O in shmem (me)
o Merge with rmap12f (Rik van Riel and co)

Linux 2.4.18pre9-ac4
* SIS IDE driver update (handle with care) (Lionel Bouton)
o First set of I2O endian cleanups (me)
o Make i2o_pci.c 64bit/BE clean (me)
o Maybe fix crash on i2o scsi abort/reset paths (me)
o Make i2o use the passed scsi direction flag (me)
* Fix awk failure path in menuconfig (Andrew Church)
+ Merge varies doc updates (Steven Cole)
o Add serial support for the Lava Octopus-550 (Jim Treadway)
* OPL3SA2 cleanup (Zwane Mwaikambo)
o Add missing blkdev_varyio export (Todd Roy)
o/* Update Changes file, config and experimental (Niels Jensen)
checks
* Fix highmem warning in aacraid (Andrew Morton)
* Make tpqic02 use new style request region (Marcus Alanen)
* Only turn off mediagx/geode TSC on 5510/5520 (me)
| From information provided by Hiroshi MIURA
* Massively clean up the AGP enable and bugfix it (Bjorn Helgaas)
o Fix oops if you try to use the RW wq locks (Bob Miller)
o Remove FPU usage in neomagic fb (Denis Kropp)
o Merge IBM JFS (Steve Best, Dave Kleikamp,
Barry Arndt, Christoph Hellwig, ..)
* Updated sis frame buffer driver (Thomas Winischhofer)

Linux 2.4.18pre9-ac3
* Clean up various macros and misuse of ; (Timothy Ball)
* Correct procfs locking fixup (Al Viro)
o Speed up ext2/ext3 synchronous mounts (Andrew Morton)
* Update IDE DMA blacklist (Jonathan Kamens)
o Update to XFree86 DRM 4.2 (compatible to 4.1) (Rik Faith,
and adds I830 DRM Jeff Hartmann,
Keith Whitwell,
Abraham vd Merwe
and others)
* IBM Lanstreamer updates (Mike Phillips)
* Fix acct rlimit problem (I hope) (me)
| Problem noted by Ian Allen
o Automatically set file limits based on mem size (Andi Kleen)
* Correct scsi reservation conflict handling (James Bottomley)
and add the scsi reset api code
o Add further kernel docs (me)
o Merge to rmap-12e (Rik van Riel and co)
|merge patch from Nick Orlov
* Small fix to the eata driver update (Dario Ballabio)


Linux 2.4.18pre9-ac2
* Nat Semi now use their own ident on the Geode (Hiroshi Miura)
* Put #error in two files that need FPU fixups (me)
* Correct a specific mmap return to match posix (Christopher Yeoh)
* Add Eepro100/VE ident (Hanno Boeck)
* Add provides for DRM to the kernel make rpm (Alexander Hoogerhuis)
* Fix a problem where vm86 irq releasing could be (Stas Sergeev)
missed
* EATA and U14/34F driver updates (Dario Ballabio)
* Handle EMC storage arrays that report SCSI-2 (Kurt Garloff)
but want REPORT_LUNs
* Update README, defconfig, remove autogen files (Niels Jensen)
o Add AFAVLAB PCI serial support (Harald Welte)
* Fix incorrect resource free in eexpress (Gianluca Anzolin)
o Variable size rawio optimisations (Badari Pulavarty)
* Add AT's compatible 8139 cardbus chip (Go Taniguchi)
o Fix crash with newest hpt ide chips (Arjan van de Ven)
* Fix tiny SMP race in pid selection (Erik Hendriks)
o Hopefully fix pnpbios crash caused by early (me)
kernel_thread creation

Linux 2.4.18pre9-ac1
o Initial merge of DVD card driver (Christian Wolff,Marcus Metzler)
| This is just an initial testing piece. DVB needs merging
| properly and this is only a first bit of testing
* Random number generator support for AMD768 (me)
* Add AMD768 to i810 driver pci ident list (me)
o Initial AMD768 power management work (me)
| Unfinished pending some docs clarifications
* Fix bugbuf mishandling for modular es1370 (me)
* Fix up i2o readl abuse, post_wait race, and (me, Arjan van de Ven)
some deadlock cases
* Added cpu_relax to yam driver (me)
* Fixup AMD762 if the BIOS apparently got it wrong(me)
(eg ASUS boards)
* MP1.4 alignment fixup
* pcwd cleanup, backport of fixes from 2.5 (Rob Radez)
* Add support for more Moxa cards to mxser (Damian Wrobel)
* Add remaining missing MODULE_LICENSE tags (Hubert Mantel)
* Fix floppy reservation ranges (Anton Altaparmakov)
* Fix max file size setup (Andi Kleen)

Linux 2.4.18pre7-ac3
o Fix a wrong error return in the megaraid driver (Arjan van de Ven)
* FreeVXFS update (Christoph Hellwig)
* Qnxfs update (Anders Larsen)
o Fix non compile with PCI=n (Adrian Bunk)
o Fix DRM 4.0 non compile in i810 (me)
* Drop out now dead CLONE thread/parent fixup (Dave McCracken)
* Make NetROM incoming frame check stricter (Tomi Manninen)
* Use sock_orphan in AX.25/NetROM (Jeroen PE1RXQ)
* Pegasus update (Petko Manolov)
o Make reparent_to_init and exec_usermodehelper (Andrew Morton)
use set_user, fix a tiny set_user SMP race
* Mark framebuffer mappings VM_IO (Andrew Morton)
o Neomagic frame buffer driver (Denis Kropp)
- Needs FPU code fixing before it can be merged
* Hyperthreading awareness for MTRR driver
* Correct NR_IRQ with no apic support (Brian Gerst)
* Fix missing includes in sound drivers (Michal Jaegermann)

Linux 2.4.18pre7-ac2
* i810 audio driver update (Doug Ledford)
* Early ioremap for x86 specific code (Mikael Pettersson)
| This is needed to do things like apic/dmi detect early enough
* Pentium IV APIC/NMI watchdog (Mikael Pettersson)
* Add C1MRX support to sonypi driver (Junichi Morita)
* Fix "make rpm" with two '-' in extraversion (Gerald Britton)
* Fix aacraid hang/irq storm on i960 boards (Chris Pascoe)
* Fix isdn audio compiler behaviour dependancy (Urs Thuermann)
* YAM driver fixes (Jean-Paul Roubelat)
* ROSE protocol stack update/fixes (Jean-Paul Roubelat)
* Fix UFS/CDROM oops (Zwane Mwaikambo)
* Fix nm256 hang on Dell Latitude (origin unknown)
| Please test this tree with other NM256 based boxes and check
| those still work...
o Merge PnPBIOS patch (Thomas Hood, David Hinds, Tom Lees,
Christian Schmidt, ..)
* Merge new sis frame buffer drivers (Thomas Winischhofer)
* cs46xx oops fix (Mike Gorse)
* Fix a second cs46xx bug related to this (me)
* Fix acpitable oopses on boot and other problems (James Cleverdon)
o Fix io port type on the hpt366 driver (Pete Popov)
* Updated matrox drivers (Petr Vandrovec)
* IPchains fixes needed for 2.4.18pre7
+ IDE config text updates for the IDE patches (Anton Altaparmakov)
* Merge the first bits of ZV support (Marcus Metzler)
* Add initial ZV support to yenta socket driver (me)
for TI cards
* Fix pirq routing on the CS5530 (me)
| Finally the palmax pcmcia/cardbus works properly

Linux 2.4.18pre7-ac1
o Merge with 2.4.18pre7 (Arjan van de Ven)
| + some quota fixups redone by me
| several 18pre7 netfilter bugs left unfixed for now
o Rmap-12a (Rik van Riel and co)

Linux 2.4.18pre3-ac2

* Re-merge the IDE patches (Andre Hedrick and co)
* Fix check/request region in ali_ircc and lowcomx(Steven Walter)
com90xx, sealevel, sb1000
* Remove unused message from 6pack driver (Adrian Bunk)
* Fix unused variable warning in i60scsi (Adrian Bunk)
* Fix off by one floppy oops (Keith Owens)
* Fix i2o_config use of undefined C (Andreas Dilger)
* Fix fdomain scsi oopses (Per Larsson)
* Fix sf16fmi hang on boot (me)
+ Add bridge resources to the resource tree (Ivan Kokshaysky)
* Fix iphase ATM oops on close in on case (Till Immanuel Patzschke)
* Enable OOSTORE on winchip processors (Dave Jones, me)
| Worth about 10-20% performance
* Code Page 1250 support (Petr Titera)
* Fix sdla and hpfs doc typos (Sven Vermeulen)
o Document /proc/stat (Sven Heinicke)
* Update cs4281 drivers (Tom Woller)
| Fixes xmms stutter, remove wrapper code
| handle tosh boxes, allow record device change
| trigger wakeups on ioctl triggered changes
+/o/X Fix locking of file struct stuff found by ibm (Dipankar Sarma)
audit
o Use spin_lock_init in serial.c (Dave Miller)
* Fix AF_UNIX shutdown bug (Dave Miller)

Linux 2.4.18pre3-ac1

o 32bit uid quota
o rmap-11b VM (Rik van Riel,
William Irwin etc)
* Make scsi printer visible (Stefan Wieseckel)
* Report Hercules Fortissimo card (Minya Sorakinu)
* Fix O_NDELAY close mishandling on the following (me)
sound cards: cmpci, cs46xx, es1370, es1371,
esssolo1, sonicvibes
* tdfx pixclock handling fix (Jurriaan)
+ Fix mishandling of file system size limiting (Andrea Arcangeli)
* generic_serial cleanups (Rasmus Andersen)
o serial.c locking fixes for SMP - move from cli (Kees)
too
* Truncate fixes from old -ac tree (Andrew Morton)
* Hopefully fix the i2o oops (me)
| Not the right fix but it'll do till I rewrite this
* Fix non blocking tty blocking bug (Peter Benie)
o IRQ routing workaround for problem HP laptops (Cory Bell)
* Fix the rcpci driver (Pete Popov)
* Fix documentation of aedsp location (Adrian Bunk)
* Fix the worst of the APM ate my cpu problems (Andreas Steinmetz)
* Correct icmp documentation (Pierre Lombard)
* Multiple mxser crash on boot fix (Stephan von Krawczynski)
o ldm header fix (Anton Altaparmakov)
* Fix unchecked kmalloc in i2c_proc (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in airo_cs (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in btaudio (Ragnar Hojland Espinosa)
* Fix unchecked kmalloc in qnx4/inode.c (Ragnar Hojland Espinosa)
* Disable DRM4.1 GMX2000 driver (4.0 required) (me)
* Fix sb16 lower speed limit bug (Jori Liesenborgs)
* Fix compilation of orinoco driver (Ben Herrenschmidt)
* ISAPnP init fix (Chris Rankin)
o Export release_console_sem (Andrew Morton)
* Output nat crash fix (Rusty Russell)
* Fix PLIP (Niels Jensen)
* Natsemi driver hang fix (Manfred Spraul)
* Add mono/stereo reporting to gemtek pci radio (Jonathan Hudson)



2002-04-05 23:41:22

by Eyal Lebedinsky

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3: unresolved in radeonfb

Alan Cox wrote:
> Linux 2.4.19pre5-ac3
> o Small fix for the radeonfb (Peter Horton)

depmod: *** Unresolved symbols in
/lib/modules/2.4.19-pre5-ac3/kernel/drivers/video/radeonfb.o
depmod: radeon_engine_init_var

I could not find this symbol in the tree.

--
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>

2002-04-06 02:17:09

by Brian Litzinger

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3 w/swsusp oops

On Fri, Apr 05, 2002 at 02:45:49PM -0500, Alan Cox wrote:
> Ok its fun time. This adds the software suspend code. Its not perfect yet and
> a lot of drivers need power management support to work nicely with it. This
> is one of the things we have to handle for future ACPI work so its good to
> give people a platform for checking their PM code.

I had to type it in my hand from a digital photograph.

The actually picture of the oops is available at

http://www.litzinger.com/opps-swsusp.jpg (its large 464576 bytes)


ksymoops 2.4.0 on i686 2.4.19-pre5-ac3. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.19-pre5-ac3/ (default)
-m /boot/System.map-2.4.19-pre5-ac3 (default)

Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.

Warning (compare_maps): ksyms_base symbol vmalloc_to_page_R__ver_vmalloc_to_page not found in System.map. Ignoring ksyms_base entry
Warning (compare_maps): mismatch on symbol usb_devfs_handle , usbcore says d8833fb4, /lib/modules/2.4.19-pre5-ac3/kernel/drivers/usb/usbcore.o says d8833a74. Ignoring /lib/modules/2.4.19-pre5-ac3/kernel/drivers/usb/usbcore.o entry
c013897b
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c013897b>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010293
eax: ffffffff ebx: d5e32540 ecx: 00000000 edx: c14c4334
esi: 00000000 edi: 00001000 ebp: 00000001 esp: d7f77e14
ds: 0018 es: 0018 ss: 0018
Process bdflush (pid: 5, stackpage=d7f77000)
Stack: d5e32540 c0138a10 d5e23540 c14c4334 00000000 6e6d6c6b 7271706f 76757573
7a797877 c14c4334 00000306 d7f77ea4 00001000 c0138bf6 c14c4334 00001000
00000001 c14c4334 d7772000 c013a1b7 c14c4334 00000306 00001000 c14c4334
Call Trace: [<c0138a01>] [<c0138bf6>] [<c013a1b7>] [<c0130269>] [<c01167f6>]
[<c0130357>] [<c0122ebe>] [<c0116ae4>] [<c012382f>] [<c0116ae4>] [<c0122cae>]
[<c0123a0b>] [<c0123eb2>] [<c011a989>] [<c013a995>] [<c0105000>] [<c0105000>]
[<c0106f66>] [<c013a910>]
Code: 2b 90 c8 00 00 00 69 d2 c5 4e ec c4 c1 fa 02 c1 e2 0c 03 90

>>EIP; c013897b <set_bh_page+2b/50> <=====
Trace; c0138a01 <create_buffers+61/f0>
Trace; c0138bf6 <create_empty_buffers+16/60>
Trace; c013a1b7 <brw_page+37/d0>
Trace; c0130269 <rw_swap_page_base+f9/110>
Trace; c01167f6 <__call_console_drivers+46/60>
Trace; c0130357 <rw_swap_page_nolock+67/90>
Trace; c0122ebe <write_suspend_image+11e/360>
Trace; c0116ae4 <printk+104/110>
Trace; c012382f <suspend_save_image+16f/1a0>
Trace; c0116ae4 <printk+104/110>
Trace; c0122cae <read_swapfiles+6e/100>
Trace; c0123a0b <do_magic_suspend_2+b/b0>
Trace; c0123eb2 <do_software_suspend+62/c0>
Trace; c011a989 <__run_task_queue+49/60>
Trace; c013a995 <bdflush+85/c0>
Trace; c0105000 <_stext+0/0>
Trace; c0105000 <_stext+0/0>
Trace; c0106f66 <kernel_thread+26/30>
Trace; c013a910 <bdflush+0/c0>
Code; c013897b <set_bh_page+2b/50>
00000000 <_EIP>:
Code; c013897b <set_bh_page+2b/50> <=====
0: 2b 90 c8 00 00 00 sub 0xc8(%eax),%edx <=====
Code; c0138981 <set_bh_page+31/50>
6: 69 d2 c5 4e ec c4 imul $0xc4ec4ec5,%edx,%edx
Code; c0138987 <set_bh_page+37/50>
c: c1 fa 02 sar $0x2,%edx
Code; c013898a <set_bh_page+3a/50>
f: c1 e2 0c shl $0xc,%edx
Code; c013898d <set_bh_page+3d/50>
12: 03 90 00 00 00 00 add 0x0(%eax),%edx


3 warnings issued. Results may not be reliable.

Anything else you'd like to know?

2002-04-06 01:16:08

by CaT

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

On Fri, Apr 05, 2002 at 08:09:09PM -0500, Alan Cox wrote:
> > Would love to but unless I mis-grepped it is not in the patch... Wanted
> > to find out if it plays nice with ext3 now. :)
>
> Its there ok

Including Documentation/swsusp.txt? Cos I can't see it in the patch.
Just references to it.

12 [11:11:16] root@theirongiant:/usr/src>> bzgrep -i swsusp patch-2.4.19-pre5-ac3.bz2
+ 'swsusp' or 'shutdown -z <time>' (patch for sysvinit needed). It
+ For more information take a look at Documentation/swsusp.txt.
+L: http://lister.fornax.hu/mailman/listinfo/swsusp
+static void sysrq_handle_swsusp(int key, struct pt_regs *pt_regs,
+static struct sysrq_key_op sysrq_swsusp_op = {
+ handler: sysrq_handle_swsusp,
+/* d */ &sysrq_swsusp_op,
+#ifndef __ASM_I386_SWSUSP_H
+#define __ASM_I386_SWSUSP_H
+#endif /* __ASM_I386_SWSUSP_H */
+#ifndef _LINUX_SWSUSP_H
+#define _LINUX_SWSUSP_H
+#endif /* _LINUX_SWSUSP_H */
+ * linux/kernel/swsusp.c
+ * For TODOs,FIXMEs also look in Documentation/swsusp.txt

--
SOCCER PLAYER IN GENITAL-BITING SCANDAL --- "It was something between
friends that I thought would have no importance until this morning when
I got up and saw all the commotion in the news," Gallardo told a news
conference. "It stunned me."
Reyes told Marca that he had "felt a slight pinch."
-- http://www.azcentral.com/offbeat/articles/1129soccer29-ON.html

2002-04-06 01:05:05

by CaT

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

On Fri, Apr 05, 2002 at 02:45:49PM -0500, Alan Cox wrote:
> Linux 2.4.19pre5-ac3
> o Software suspend initial patch (Pavel Machek, Gabor Kuti,..)
> | Don't enable this idly. Its here to get exposure and so
> | people can bring the rest of the code up to meet its needs as
> | well as fix it.
> | Read the docs first!

Would love to but unless I mis-grepped it is not in the patch... Wanted
to find out if it plays nice with ext3 now. :)

Was it missed or does it not exist? :)

--
SOCCER PLAYER IN GENITAL-BITING SCANDAL --- "It was something between
friends that I thought would have no importance until this morning when
I got up and saw all the commotion in the news," Gallardo told a news
conference. "It stunned me."
Reyes told Marca that he had "felt a slight pinch."
-- http://www.azcentral.com/offbeat/articles/1129soccer29-ON.html

2002-04-06 01:09:35

by Alan Cox

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

> Would love to but unless I mis-grepped it is not in the patch... Wanted
> to find out if it plays nice with ext3 now. :)

Its there ok

2002-04-06 17:37:43

by Ed Sweetman

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3 swsusp panic

On WOLK 3.2 i use swsusp and it works just fine on my P4 system. With
the ac kernel i get a panic whenever i try to suspend. I tried
including the couple lines that i patched in WOLK 3.2's swsusp mentioned
in the swsusp mailing list and still it panics. Perhaps it's due to the
Taskfile stuff i compiled with, i'll try it without that stuff next.


wish i could take a screenshot of the panic

2002-04-06 18:05:03

by Ed Sweetman

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3 swsusp panic

On Sat, 2002-04-06 at 12:37, Ed Sweetman wrote:
> On WOLK 3.2 i use swsusp and it works just fine on my P4 system. With
> the ac kernel i get a panic whenever i try to suspend. I tried
> including the couple lines that i patched in WOLK 3.2's swsusp mentioned
> in the swsusp mailing list and still it panics. Perhaps it's due to the
> Taskfile stuff i compiled with, i'll try it without that stuff next.
>
>
> wish i could take a screenshot of the panic


No, taskfile did nothing.

here's all i can see on my screen when executing a suspend I had to type
it up by hand so, hopefully no mistakes.

I have the preempt patch and lock break patch included too. Since it had
no problem in WOLK and since it really does bring latency down to the
AA's low latency patches (since AC uses rmap I cant use those patches).

NULL pointer dereference at virtual address 000000c3
printing eip:
c0140b3b
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0140b3b>] Not tainted
EFLAGS: 00010293
eax: ffffffff ebx: cf3c1c00 ecx: 00000000 edx: c1313c90
esi: 00000000 edi: 00001000 ebp: 00000001 esp: cff5de04
ds: 0018 es: 0018 ss: 0018
Process bdflush (pid: 6, stackpage=cff5d000)
stack: cf3c1c00 c0140bc6 cf3c1c00 c1313c90 00000000 37363534 62614938 66656463
6a696867 c1313c90 cf265000 cff5dea4 00001000 c0140dd8 c1313c90 00001000
00000001 c1313c90 cf265000 c014259c c1313c90 00000303 00001000 0000850f
Call Trace: [<c0140bc6>] [<c0140dd8>] [<c014259c>] [<c0137b73>] [<c011aad6>] [<c0137cd3>] [<c0128a44>] [<c012892c>] [<c0129448>] [<c011ae10>] [<c012969e>] [<c0129bd7>] [<c011f72c>] [<c0142e9a>] [<c0142dc0>] [<c0105000>] [<c0105000>] [<c01071d6>] [<c0142dc0>]
Code: 2b 90 c4 00 00 00 c1 fa 02 69 d2 c5 4e ec c4 c1 e2 0c 03 90
<3> bdflush[6] exited with preempt_count 295



2002-04-06 20:30:43

by Peter Horton

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3: unresolved in radeonfb

On Sat, Apr 06, 2002 at 09:40:56AM +1000, Eyal Lebedinsky wrote:
> Alan Cox wrote:
> > Linux 2.4.19pre5-ac3
> > o Small fix for the radeonfb (Peter Horton)
>
> depmod: *** Unresolved symbols in
> /lib/modules/2.4.19-pre5-ac3/kernel/drivers/video/radeonfb.o
> depmod: radeon_engine_init_var
>
> I could not find this symbol in the tree.
>

Darn - I'm not very good at this :-(

Change the call to radeon_engine_init_var() to

radeon_engine_init(rinfo);

P.

2002-04-07 10:01:35

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3 swsusp panic

Hi!

> > On WOLK 3.2 i use swsusp and it works just fine on my P4 system. With
> > the ac kernel i get a panic whenever i try to suspend. I tried
> > including the couple lines that i patched in WOLK 3.2's swsusp mentioned
> > in the swsusp mailing list and still it panics. Perhaps it's due to the
> > Taskfile stuff i compiled with, i'll try it without that stuff next.
> >
> >
> > wish i could take a screenshot of the panic
>
>
> No, taskfile did nothing.
>
> here's all i can see on my screen when executing a suspend I had to type
> it up by hand so, hopefully no mistakes.

Reproduced here, and hunting that bug.
Pavel
--
(about SSSCA) "I don't say this lightly. However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa

2002-04-07 11:52:06

by Pavel Machek

[permalink] [raw]
Subject: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Hi!

> > > Would love to but unless I mis-grepped it is not in the patch... Wanted
> > > to find out if it plays nice with ext3 now. :)
> >
> > Its there ok
>
> Including Documentation/swsusp.txt? Cos I can't see it in the patch.
> Just references to it.

Here it is, please apply.

Included is trivial fix to make it survive boot. I'm still
investigating why it crashes on suspend.
Pavel

--- linux-ac.clean/Documentation/swsusp.txt Tue Jan 29 12:16:13 2002
+++ linux-swsusp.24/Documentation/swsusp.txt Sun Apr 7 11:42:03 2002
@@ -0,0 +1,168 @@
+From kernel/suspend.c:
+
+ * BIG FAT WARNING *********************************************************
+ *
+ * If you have unsupported (*) devices using DMA...
+ * ...say goodbye to your data.
+ *
+ * If you touch anything on disk between suspend and resume...
+ * ...kiss your data goodbye.
+ *
+ * If your disk driver does not support suspend... (IDE does)
+ * ...you'd better find out how to get along
+ * without your data.
+ *
+ * (*) pm interface support is needed to make it safe.
+
+You need to append resume=/dev/your_swap_partition to kernel command
+line. Then you suspend by echo 4 > /proc/acpi/sleep.
+
+[Notice. Rest docs is pretty outdated (see date!) It should be safe to
+use swsusp on ext3/reiserfs these days.]
+
+
+Article about goals and implementation of Software Suspend for Linux
+Author: G?bor Kuti
+Last revised: Jan 23rd, 2000
+
+Idea and goals to achieve
+
+Nowadays it is common in several laptops that they have a suspend button. It
+saves the state of the machine to a filesystem or to a partition and switches
+to standby mode. Later resuming the machine the saved state is loaded back to
+ram and the machine can continue its work. It has two real benefits. First we
+save ourselves the time machine goes down and later boots up, energy costs
+real high when running from batteries. The other gain is that we don't have to
+interrupt our programs so processes that are calculating something for a long
+time shouldn't need to be written interruptible.
+
+On desk machines the power saving function isn't as important as it is in
+laptops but we really may benefit from the second one. Nowadays the number of
+desk machines supporting suspend function in their APM is going up but there
+are (and there will still be for a long time) machines that don't even support
+APM of any kind. On the other hand it is reported that using APM's suspend
+some irqs (e.g. ATA disk irq) is lost and it is annoying for the user until
+the Linux kernel resets the device.
+
+So I started thinking about implementing Software Suspend which doesn't need
+any APM support and - since it uses pretty near only high-level routines - is
+supposed to be architecture independent code.
+
+Using the code
+
+The code is experimental right now - testers, extra eyes are welcome. To
+compile this support into the kernel, you need CONFIG_EXPERIMENTAL,
+and then CONFIG_SOFTWARE_SUSPEND in menu General Setup to be enabled. It
+cannot be used as a module and I don't think it will ever be needed.
+
+You have two ways to use this code. The first one is if you've compiled in
+sysrq support then you may press Sysrq-D to request suspend. The other way
+is with a patched SysVinit (my patch is against 2.76 and available at my
+home page). You might call 'swsusp' or 'shutdown -z <time>'.
+
+Either way it saves the state of the machine into active swaps and then
+reboots. By the next booting the kernel's resuming function is either triggered
+by swapon -a (which is ought to be in the very early stage of booting) or you
+may explicitly specify the swap partition/file to resume from with ``resume=''
+kernel option. If signature is found it loads and restores saved state. If the
+option ``noresume'' is specified as a boot parameter, it skips the resuming.
+Warning! Look at section ``Things to implement'' to see what isn't yet
+implemented. Also I strongly suggest you to list all active swaps in
+/etc/fstab. Firstly because you don't have to specify anything to resume and
+secondly if you have more than one swap area you can't decide which one has the
+'root' signature. Also, it doesn't yet support ``embedded'' swapfiles, e.g. you
+have a dos partition mounted on /dos and also have a /dos/swapfile named
+swapfile.. I plan to add support to mount all necessary filesystems readonly.
+
+In the meantime while the system is suspended you should not touch any of the
+hardware!
+
+About the code
+Goals reached
+
+The code can be downloaded from
+http://falcon.sch.bme.hu/~seasons/linux/. It mainly works but there are still
+some of XXXs, TODOs, FIXMEs in the code which seem not to be too important. It
+should work all right except for the problems listed in ``Things to
+implement''. Notes about the code are really welcome.
+
+How the code works
+
+When suspending is triggered it immediately wakes up process bdflush. Bdflush
+checks whether we have anything in our run queue tq_bdflush. Since we queued up
+function do_software_suspend, it is called. Here we shrink everything including
+dcache, inodes, buffers and memory (here mainly processes are swapped out). We
+count how many pages we need to duplicate (we have to be atomical!) then we
+create an appropiate sized page directory. It will point to the original and
+the new (copied) address of the page. We get the free pages by
+__get_free_pages() but since it changes state we have to be able to track it
+later so it also flips in a bit in page's flags (a new Nosave flag). We
+duplicate pages and then mark them as used (so atomicity is ensured). After
+this we write out the image to swaps, do another sync and the machine may
+reboot. We also save registers to stack.
+
+By resuming an ``inverse'' method is executed. The image if exists is loaded,
+loadling is either triggered by ``swapon -a'' or ``resume='' kernel option. We
+change our task to bdflush (it is needed because if we don't do this init does
+an oops when it is waken up later) and then pages are copied back to their
+original location. We restore registers, free previously allocated memory,
+activate memory context and task information. Here we should restore hardware
+state but even without this the machine is restored and processes are continued
+to work. I think hardware state should be restored by some list (using
+notify_chain) and probably by some userland program (run-parts?) for users'
+pleasure. Check out my patch at the same location for the sysvinit patch.
+
+WARNINGS!
+- Using swsusp on logging fs (e.g.reiserfs) could lead to pretty bad things:
+ mounting of reiserfs (even readonly!) means log is replayed, which
+ means writes to filesystem. That could lead to pretty bad corruption.
+- It does not like pcmcia cards. And this is logical: pcmcia cards need cardmgr to be
+ initialized. they are not initialized during singleuser boot, but "resumed" kernel does
+ expect them to be initialized. That leads to armagedon. You should eject any pcmcia cards
+ before suspending.
+
+Things to implement
+- SMP support. I've done an SMP support but since I don't have access to a kind
+ of this one I cannot test it. Please SMP people test it. .. Tested it,
+ doesn't work. Had no time to figure out why. There is some mess with
+ interrupts AFAIK..
+- We should only make a copy of data related to kernel segment, since any
+ process data won't be changed.
+- Should \#define ADDRESS go into linux/mm.h?
+- By copying pages back to their original position, copy_page caused General
+ Protection Fault. Why?
+- Hardware state restoring. Now there's support for notifying via the notify
+ chain, event handlers are welcome. Some devices may have microcodes loaded
+ into them. We should have event handlers for them aswell.
+- We should support other architectures (There are really only some arch
+ related functions..)
+- We should also restore original state of swaps if the ``noresume'' kernel
+ option is specified.. Or do we need such a feature to save state for some
+ other time? Do we need some kind of ``several saved states''? (Linux-HA
+ people?). There's been some discussion about checkpointing on linux-future.
+- Should make more sanity checks. Or are these enough?
+
+Not so important ideas for implementing
+
+- Should SIGSTOP_SUSPEND called SIGFREEZE? Or is it some kind of stealing
+ for Solaris?
+- If a real time process is running then don't suspend the machine.
+- Is there any sense in compressing the outwritten pages?
+- Support for power.conf file as in Solaris, autoshutdown, special
+ devicetypes support, maybe in sysctl.
+- Introduce timeout for SMP locking. But first locking ought to work :O
+- Pre-detect if we don't have enough swap space or free it instead of
+ calling panic.
+- Support for adding/removing hardware while suspended?
+- We should not free pages at the beginning so aggressively, most of them
+ go there anyway..
+- If X is active while suspending then by resuming calling svgatextmode
+ corrupts the virtual console of X.. (Maybe this has been fixed AFAIK).
+
+Any other idea you might have tell me!
+
+Contacting the author
+If you have any question or any patch that solves the above or detected
+problems please contact me at [email protected]. I might delay
+answering, sorry about that.
+
--- linux-ac.clean/init/main.c Sun Apr 7 10:55:13 2002
+++ linux-swsusp.24/init/main.c Sun Apr 7 11:54:39 2002
@@ -522,15 +522,15 @@
tc_init();
#endif

- /* This has to be before mounting root, because even readonly mount of reiserfs would replay
- log corrupting stuff */
- software_resume();
-
/* Networking initialization needs a process context */
sock_init();

start_context_thread();
do_initcalls();
+
+ /* This has to be before mounting root, because even readonly mount of reiserfs would replay
+ log corrupting stuff */
+ software_resume();

#ifdef CONFIG_IRDA
irda_proto_init();
--- linux-ac.clean/kernel/suspend.c Sun Apr 7 10:55:13 2002
+++ linux-swsusp.24/kernel/suspend.c Sun Apr 7 12:37:30 2002
@@ -32,20 +32,6 @@
* More state savers are welcome. Especially for the scsi layer...
*
* For TODOs,FIXMEs also look in Documentation/swsusp.txt
- *
- * BIG FAT WARNING *********************************************************
- *
- * If you have unsupported (*) devices using DMA...
- * ...say goodbye to your data.
- *
- * If you touch anything on disk between suspend and resume...
- * ...kiss your data goodbye.
- *
- * If your disk driver does not support suspend... (IDE does)
- * ...you'd better find out how to get along
- * without your data.
- *
- * (*) pm interface support is needed to make it safe.
*/

/*

--
(about SSSCA) "I don't say this lightly. However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa

2002-04-08 15:35:00

by Martin.Knoblauch

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

> [swsusp fixes] Re: Linux 2.4.19pre5-ac3
>
> +
> +You have two ways to use this code. The first one is if you've compiled in
> +sysrq support then you may press Sysrq-D to request suspend. The other way
> +is with a patched SysVinit (my patch is against 2.76 and available at my
> +home page). You might call 'swsusp' or 'shutdown -z <time>'.
> +
> +Either way it saves the state of the machine into active swaps and then
> +reboots. By the next booting the kernel's resuming function is either triggered
> +by swapon -a (which is ought to be in the very early stage of booting) or you
> +may explicitly specify the swap partition/file to resume from with ``resume=''
> +kernel option. If signature is found it loads and restores saved state. If the

Does it have to be an "active swap partition"? What about systems
without active swap, but space enough for a partition?

Martin
--
------------------------------------------------------------------
Martin Knoblauch | email: [email protected]
TeraPort GmbH | Phone: +49-89-510857-309
C+ITS | Fax: +49-89-510857-111
http://www.teraport.de | Mobile: +49-170-4904759

2002-04-09 20:35:04

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

Hi!

> > Linux 2.4.19pre5-ac3
> > o Software suspend initial patch (Pavel Machek, Gabor Kuti,..)
> > | Don't enable this idly. Its here to get exposure and so
> > | people can bring the rest of the code up to meet its needs as
> > | well as fix it.
> > | Read the docs first!
>
> Didn't enable software suspend, but I do use ACPI...

Looks like we need some #ifdefs in acpi... I'll fix that.
Pavel
--
Philips Velo 1: 1"x4"x8", 300gram, 60, 12MB, 40bogomips, linux, mutt,
details at http://atrey.karlin.mff.cuni.cz/~pavel/velo/index.html.

2002-04-08 21:44:04

by Mike Fedyk

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

On Fri, Apr 05, 2002 at 02:45:49PM -0500, Alan Cox wrote:
> Linux 2.4.19pre5-ac3
> o Software suspend initial patch (Pavel Machek, Gabor Kuti,..)
> | Don't enable this idly. Its here to get exposure and so
> | people can bring the rest of the code up to meet its needs as
> | well as fix it.
> | Read the docs first!

Didn't enable software suspend, but I do use ACPI...

make[2]: Leaving directory `/src/2.4.19-pre5-ac3/net'
ld -m elf_i386 -T /src/2.4.19-pre5-ac3/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
drivers/acpi/acpi.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/drm/drm.o drivers/net/fc/fc.o drivers/ide/idedriver.o drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/pnp/pnp.o drivers/video/video.o drivers/md/mddev.o \
net/network.o \
/src/2.4.19-pre5-ac3/arch/i386/lib/lib.a /src/2.4.19-pre5-ac3/lib/lib.a /src/2.4.19-pre5-ac3/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
drivers/acpi/acpi.o: In function `sm_osl_proc_write_sleep':
drivers/acpi/acpi.o(.text+0x18324): undefined reference to `software_suspend'
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory `/src/2.4.19-pre5-ac3'
make: *** [stamp-build] Error 2

2002-04-08 21:59:14

by Pavel Machek

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Hi!

> > +
> > +You have two ways to use this code. The first one is if you've compiled in
> > +sysrq support then you may press Sysrq-D to request suspend. The other way
> > +is with a patched SysVinit (my patch is against 2.76 and available at my
> > +home page). You might call 'swsusp' or 'shutdown -z <time>'.
> > +
> > +Either way it saves the state of the machine into active swaps and then
> > +reboots. By the next booting the kernel's resuming function is either triggered
> > +by swapon -a (which is ought to be in the very early stage of booting) or you
> > +may explicitly specify the swap partition/file to resume from with ``resume=''
> > +kernel option. If signature is found it loads and restores saved state. If the
>
> Does it have to be an "active swap partition"? What about systems
> without active swap, but space enough for a partition?

There you just make it partition and then mkswap/swapon it. Or did I
misunderstand the question?
Pavel
--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.

2002-04-09 07:40:27

by Martin.Knoblauch

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Pavel Machek wrote:
>
> Hi!
>
> > > +
> > > +You have two ways to use this code. The first one is if you've compiled in
> > > +sysrq support then you may press Sysrq-D to request suspend. The other way
> > > +is with a patched SysVinit (my patch is against 2.76 and available at my
> > > +home page). You might call 'swsusp' or 'shutdown -z <time>'.
> > > +
> > > +Either way it saves the state of the machine into active swaps and then
> > > +reboots. By the next booting the kernel's resuming function is either triggered
> > > +by swapon -a (which is ought to be in the very early stage of booting) or you
> > > +may explicitly specify the swap partition/file to resume from with ``resume=''
> > > +kernel option. If signature is found it loads and restores saved state. If the
> >
> > Does it have to be an "active swap partition"? What about systems
> > without active swap, but space enough for a partition?
>
> There you just make it partition and then mkswap/swapon it. Or did I
> misunderstand the question?
> Pavel
Pavel,

maybe I was unclear. For reasons of interactivity, I do not have any
swap enabled on my Notebook. The 320 MB are enough for my workload and I
am willing to accept the OOM Killer when I do really stupid things. If I
enable swap the (all of them to some degree :-) VM decides to swap out
"unused" processes. Most of them are desktop related and if I need them
the system responds sluggish. Therefore - no swap activated.

My question was: can I have a system without active swap and still use
swsusp? Creating a swap/suspend partition of appropriate size is not a
problem. I just do not want to "swapon" it.

Martin
--
------------------------------------------------------------------
Martin Knoblauch | email: [email protected]
TeraPort GmbH | Phone: +49-89-510857-309
C+ITS | Fax: +49-89-510857-111
http://www.teraport.de | Mobile: +49-170-4904759

2002-04-09 10:54:41

by Pavel Machek

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Hi!

> > > > +
> > > > +You have two ways to use this code. The first one is if you've compiled in
> > > > +sysrq support then you may press Sysrq-D to request suspend. The other way
> > > > +is with a patched SysVinit (my patch is against 2.76 and available at my
> > > > +home page). You might call 'swsusp' or 'shutdown -z <time>'.
> > > > +
> > > > +Either way it saves the state of the machine into active swaps and then
> > > > +reboots. By the next booting the kernel's resuming function is either triggered
> > > > +by swapon -a (which is ought to be in the very early stage of booting) or you
> > > > +may explicitly specify the swap partition/file to resume from with ``resume=''
> > > > +kernel option. If signature is found it loads and restores saved state. If the
> > >
> > > Does it have to be an "active swap partition"? What about systems
> > > without active swap, but space enough for a partition?
> >
> > There you just make it partition and then mkswap/swapon it. Or did I
> > misunderstand the question?
> > Pavel
> Pavel,
>
> maybe I was unclear. For reasons of interactivity, I do not have any
> swap enabled on my Notebook. The 320 MB are enough for my workload and I
> am willing to accept the OOM Killer when I do really stupid things. If I
> enable swap the (all of them to some degree :-) VM decides to swap out
> "unused" processes. Most of them are desktop related and if I need them
> the system responds sluggish. Therefore - no swap activated.
>
> My question was: can I have a system without active swap and still use
> swsusp? Creating a swap/suspend partition of appropriate size is not a
> problem. I just do not want to "swapon" it.

You need to swapon it. If you do not want to keep it swapped on,
there's no problem in

swapon /dev/swap
echo 4 > /proc/acpi/sleep
sleep 10
swapoff /dev/swap

Pavel

--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.

2002-04-09 12:05:02

by Martin.Knoblauch

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Pavel Machek wrote:
>
> >
> > My question was: can I have a system without active swap and still use
> > swsusp? Creating a swap/suspend partition of appropriate size is not a
> > problem. I just do not want to "swapon" it.
>
> You need to swapon it. If you do not want to keep it swapped on,
> there's no problem in
>
> swapon /dev/swap
> echo 4 > /proc/acpi/sleep
> sleep 10
> swapoff /dev/swap
>

thanks. That is what I wanted to know. That basically means that I will
have to boot with a active swap device in order to get the resume
functionality - correct? And then I would do a "swapoff" late in the
boot process (maybe before starting the graphical crap :-).

Martin
--
------------------------------------------------------------------
Martin Knoblauch | email: [email protected]
TeraPort GmbH | Phone: +49-89-510857-309
C+ITS | Fax: +49-89-510857-111
http://www.teraport.de | Mobile: +49-170-4904759

2002-04-09 20:53:59

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3

Hi!

> > > > Linux 2.4.19pre5-ac3
> > > > o Software suspend initial patch (Pavel Machek, Gabor Kuti,..)
> > > > | Don't enable this idly. Its here to get exposure and so
> > > > | people can bring the rest of the code up to meet its needs as
> > > > | well as fix it.
> > > > | Read the docs first!
> > >
> > > Didn't enable software suspend, but I do use ACPI...
> >
> > Looks like we need some #ifdefs in acpi... I'll fix that.
>
> 10 minutes ago emailed to alan with following:

S4 is not supported in current ACPI, so you should better make it
printk("s4 not supported") and do nothing instead of entering ACPI-S4
and powering system down when user wants "only" suspend.

> diff -Nru a/drivers/acpi/ospm/system/sm_osl.c b/drivers/acpi/ospm/system/sm_osl.c
> --- a/drivers/acpi/ospm/system/sm_osl.c Wed Apr 10 00:03:00 2002
> +++ b/drivers/acpi/ospm/system/sm_osl.c Wed Apr 10 00:03:00 2002
> @@ -140,10 +140,14 @@
> if (system->states[value] != TRUE)
> return -EINVAL;
>
> +#ifdef CONFIG_SOFTWARE_SUSPEND
> if (value != ACPI_S4)
> +#endif
> sm_osl_suspend(value);
> +#ifdef CONFIG_SOFTWARE_SUSPEND
> else
> software_suspend();
> +#endif
>
> return (count);
> }

Kill first ifdef and replace second one with something like

else
#ifdef CONFIG_....
software_suspend();
#else
printk("You need .... for S4.");
#endif
Pavel
--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.

2002-04-09 20:54:56

by Pavel Machek

[permalink] [raw]
Subject: Re: [swsusp fixes] Re: Linux 2.4.19pre5-ac3

Hi!

> > > My question was: can I have a system without active swap and still use
> > > swsusp? Creating a swap/suspend partition of appropriate size is not a
> > > problem. I just do not want to "swapon" it.
> >
> > You need to swapon it. If you do not want to keep it swapped on,
> > there's no problem in
> >
> > swapon /dev/swap
> > echo 4 > /proc/acpi/sleep
> > sleep 10
> > swapoff /dev/swap
> >
>
> thanks. That is what I wanted to know. That basically means that I will
> have to boot with a active swap device in order to get the resume
> functionality - correct? And then I would do a "swapoff" late in the
> boot process (maybe before starting the graphical crap :-).

You do not need swapon during boot. swsusp no longer works like that
(it used to, but not now). swapon just before suspend is okay.
Pavel
--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.

2002-04-14 19:28:29

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux 2.4.19pre5-ac3 swsusp panic

Hi!

> i finally found it, thank you ;-)
>
> suspend worked great, restore had some issues, though ... X didn't come
> back correctly, and after going to console 7 (X), the machine ended up
> freezing up ... no OOPS tho, which was odd ... i didn't try to diagnose
> the problem, just powered off and decided to go back to my
> non-suspending kernel ...

Always suspend when normal console (not X) is active. That should work
better.
Pavel
--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.