* 2.6.21-rc1: known regressions (part 1)
[not found] <Pine.LNX.4.64.0702202043280.4043@woody.linux-foundation.org>
@ 2007-02-25 17:52 ` Adrian Bunk
2007-02-28 18:16 ` Karasyov, Konstantin A
2007-02-25 17:55 ` 2.6.21-rc1: known regressions (part 2) Adrian Bunk
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
2 siblings, 1 reply; 104+ messages in thread
From: Adrian Bunk @ 2007-02-25 17:52 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton
Cc: Linux Kernel Mailing List, Pavel Machek, Marcel Holtmann,
linux-pm, Michael S. Tsirkin, Ingo Molnar, lenb, linux-acpi,
luming.yu, Arkadiusz Miskiewicz, Konstantin Karasyov,
linux-usb-devel, Thomas Meyer, Andrew, Janosch Machowinski,
vladimir.p.lebedev, Lukas Hejtmanek, jgarzik, linux-ide,
Meelis Roos, Alan Cox, Fabio Comolli, Jean-Luc Coulon,
Markus Trippelsdorf, Tejun Heo, Rafae
This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
that are not yet fixed in Linus' tree.
If you find your name in the Cc header, you are either submitter of one
of the bugs, maintainer of an affectected subsystem or driver, a patch
of you caused a breakage or I'm considering you in any other way possibly
involved with one or more of these issues.
Due to the huge amount of recipients, please trim the Cc when answering.
Subject : resume: slab error in verify_redzone_free(): cache `size-512':
memory outside object was overwritten
References : http://lkml.org/lkml/2007/2/24/41
Submitter : Pavel Machek <pavel@ucw.cz>
Handled-By : Marcel Holtmann <marcel@holtmann.org>
Status : unknown
Subject : ThinkPad T60: no screen after suspend to RAM
References : http://lkml.org/lkml/2007/2/22/391
Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
Handled-By : Ingo Molnar <mingo@elte.hu>
Status : unknown
Subject : HP nx6325 notebook: usb mouse stops working after suspend to ram
References : http://lkml.org/lkml/2007/2/21/413
Submitter : Arkadiusz Miskiewicz <arekm@maven.pl>
Caused-By : Konstantin Karasyov <konstantin.a.karasyov@intel.com>
commit 0a6139027f3986162233adc17285151e78b39cac
Status : unknown
Subject : MacBook: AE_NOT_FOUND ACPI messages
References : http://bugzilla.kernel.org/show_bug.cgi?id=8066
Submitter : Thomas Meyer <thomas.mey@web.de>
Status : unknown
Subject : Asus A8N-VM motherboard: boot failure (ACPI related)
References : http://lkml.org/lkml/2007/2/23/132
Submitter : Andrew <andrew@nelless.net>
Status : unknown
Subject : Asus M6Ne notebook: ACPI: First battery is not detected
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
Submitter : Janosch Machowinski <jmachowinski@gmx.de>
Status : unknown
Subject : Asus M6Ne/M6A notebooks: SATA_ACPI errors during kernel boot
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
http://bugzilla.kernel.org/show_bug.cgi?id=8046
Submitter : Janosch Machowinski <jmachowinski@gmx.de>
Lukas Hejtmanek <xhejtman@fi.muni.cz>
Status : unknown
Subject : ata-piix ACPI errors (40/80 pin cable mix)
References : http://lkml.org/lkml/2007/2/22/159
Submitter : Meelis Roos <mroos@linux.ee>
Handled-By : Alan Cox <alan@lxorguk.ukuu.org.uk>
Status : unknown
Subject : ata_piix: PATA UDMA/100 configured as UDMA/33
References : http://lkml.org/lkml/2007/2/20/294
Submitter : Fabio Comolli <fabio.comolli@gmail.com>
Status : unknown
Subject : sata_via failure
References : http://bugzilla.kernel.org/show_bug.cgi?id=8025
Submitter : Jean-Luc Coulon <jean.luc.coulon@gmail.com>
Markus Trippelsdorf <markus@trippelsdorf.de>
Handled-By : Tejun Heo <htejun@gmail.com>
Patch : http://www.mail-archive.com/linux-ide@vger.kernel.org/msg03945.html
Status : patch available
Subject : BUG: at drivers/pci/pci.c:817 pcim_enable_device() (suspend, ata)
References : http://lkml.org/lkml/2007/2/14/275
http://lkml.org/lkml/2007/2/22/367
Submitter : Rafael J. Wysocki <rjw@sisk.pl>
Lukas Hejtmanek <xhejtman@mail.muni.cz>
Handled-By : Tejun Heo <htejun@gmail.com>
Patch : http://lkml.org/lkml/2007/2/25/102
Status : patch available
^ permalink raw reply [flat|nested] 104+ messages in thread
* 2.6.21-rc1: known regressions (part 2)
[not found] <Pine.LNX.4.64.0702202043280.4043@woody.linux-foundation.org>
2007-02-25 17:52 ` 2.6.21-rc1: known regressions (part 1) Adrian Bunk
@ 2007-02-25 17:55 ` Adrian Bunk
2007-02-27 10:02 ` Jens Axboe
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
2 siblings, 1 reply; 104+ messages in thread
From: Adrian Bunk @ 2007-02-25 17:55 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton
Cc: Daniel Walker, Michal Piotrowski, Michael S. Tsirkin,
Thomas Gleixner, linux-pm, Ingo Molnar, Linux Kernel Mailing List
This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
that are not yet fixed in Linus' tree.
If you find your name in the Cc header, you are either submitter of one
of the bugs, maintainer of an affectected subsystem or driver, a patch
of you caused a breakage or I'm considering you in any other way possibly
involved with one or more of these issues.
Due to the huge amount of recipients, please trim the Cc when answering.
Subject : ThinkPad T60: system doesn't come out of suspend to RAM
(CONFIG_NO_HZ)
References : http://lkml.org/lkml/2007/2/22/391
Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
Thomas Gleixner <tglx@linutronix.de>
Handled-By : Ingo Molnar <mingo@elte.hu>
Status : unknown
Subject : kernel BUG at kernel/time/tick-sched.c:168 (CONFIG_NO_HZ)
References : http://lkml.org/lkml/2007/2/16/346
Submitter : Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Handled-By : Thomas Gleixner <tglx@linutronix.de>
Status : problem is being debugged
Subject : BUG: soft lockup detected on CPU#0
NOHZ: local_softirq_pending 20
References : http://lkml.org/lkml/2007/2/20/257
Submitter : Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Handled-By : Thomas Gleixner <tglx@linutronix.de>
Ingo Molnar <mingo@elte.hu>
Status : problem is being debugged
Subject : i386: no boot with nmi_watchdog=1 (clockevents)
References : http://lkml.org/lkml/2007/2/21/208
Submitter : Daniel Walker <dwalker@mvista.com>
Caused-By : Thomas Gleixner <tglx@linutronix.de>
commit e9e2cdb412412326c4827fc78ba27f410d837e6e
Handled-By : Thomas Gleixner <tglx@linutronix.de>
Status : problem is being debugged
^ permalink raw reply [flat|nested] 104+ messages in thread
* 2.6.21-rc1: known regressions (v2) (part 1)
[not found] <Pine.LNX.4.64.0702202043280.4043@woody.linux-foundation.org>
2007-02-25 17:52 ` 2.6.21-rc1: known regressions (part 1) Adrian Bunk
2007-02-25 17:55 ` 2.6.21-rc1: known regressions (part 2) Adrian Bunk
@ 2007-02-26 22:01 ` Adrian Bunk
2007-02-27 4:09 ` Sergio Monteiro Basto
` (2 more replies)
2 siblings, 3 replies; 104+ messages in thread
From: Adrian Bunk @ 2007-02-26 22:01 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton
Cc: Linux Kernel Mailing List, Pavel Machek, Marcel Holtmann,
linux-pm, Michael S. Tsirkin, Ingo Molnar, lenb, linux-acpi,
luming.yu, Arkadiusz Miskiewicz, Konstantin Karasyov,
linux-usb-devel, Ismail Dönmez, Fabio Comolli, Thomas Meyer,
Andrew Nelless, Antonino A. Daplas, Janosch Machowinski,
vladimir.p.lebedev, Lukas Hejtmanek, Meelis Roos, jgarzik,
linux-ide, Tejun Heo
This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
that are not yet fixed in Linus' tree.
If you find your name in the Cc header, you are either submitter of one
of the bugs, maintainer of an affectected subsystem or driver, a patch
of you caused a breakage or I'm considering you in any other way possibly
involved with one or more of these issues.
Due to the huge amount of recipients, please trim the Cc when answering.
Subject : resume: slab error in verify_redzone_free(): cache `size-512':
memory outside object was overwritten
References : http://lkml.org/lkml/2007/2/24/41
Submitter : Pavel Machek <pavel@ucw.cz>
Handled-By : Marcel Holtmann <marcel@holtmann.org>
Status : unknown
Subject : ThinkPad T60: no screen after suspend to RAM
References : http://lkml.org/lkml/2007/2/22/391
Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
Handled-By : Ingo Molnar <mingo@elte.hu>
Status : unknown
Subject : HP nx6325 notebook: usb mouse stops working after suspend to ram
References : http://lkml.org/lkml/2007/2/21/413
Submitter : Arkadiusz Miskiewicz <arekm@maven.pl>
Caused-By : Konstantin Karasyov <konstantin.a.karasyov@intel.com>
commit 0a6139027f3986162233adc17285151e78b39cac
Status : unknown
Subject : ACPI update breaks kpowersave
References : http://lkml.org/lkml/2007/2/10/7
Submitter : Ismail Dönmez <ismail@pardus.org.tr>
Fabio Comolli <fabio.comolli@gmail.com>
Status : unknown
Subject : MacBook: AE_NOT_FOUND ACPI messages
References : http://bugzilla.kernel.org/show_bug.cgi?id=8066
Submitter : Thomas Meyer <thomas.mey@web.de>
Status : unknown
Subject : Asus A8N-VM motherboard:
framebuffer/console boot failure boot failure (ACPI related)
References : http://lkml.org/lkml/2007/2/23/132
Submitter : Andrew Nelless <andrew@nelless.net>
Handled-By : Antonino A. Daplas <adaplas@gmail.com>
Status : problem is being debugged
Subject : Asus M6Ne notebook: ACPI: First battery is not detected
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
Submitter : Janosch Machowinski <jmachowinski@gmx.de>
Status : unknown
Subject : Asus M6Ne/M6A notebooks: SATA_ACPI errors during kernel boot
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
http://bugzilla.kernel.org/show_bug.cgi?id=8046
Submitter : Janosch Machowinski <jmachowinski@gmx.de>
Lukas Hejtmanek <xhejtman@fi.muni.cz>
Status : unknown
Subject : ata-piix ACPI errors (40/80 pin cable mix)
References : http://lkml.org/lkml/2007/2/22/159
Submitter : Meelis Roos <mroos@linux.ee>
Status : unknown
Subject : libata: PATA UDMA/100 configured as UDMA/33
References : http://lkml.org/lkml/2007/2/20/294
http://www.mail-archive.com/linux-ide@vger.kernel.org/msg04115.html
Submitter : Fabio Comolli <fabio.comolli@gmail.com>
Handled-By : Tejun Heo <htejun@gmail.com>
Status : problem is being discussed
Subject : sata_via failure
References : http://bugzilla.kernel.org/show_bug.cgi?id=8025
Submitter : Jean-Luc Coulon <jean.luc.coulon@gmail.com>
Markus Trippelsdorf <markus@trippelsdorf.de>
Handled-By : Tejun Heo <htejun@gmail.com>
Patch : http://www.mail-archive.com/linux-ide@vger.kernel.org/msg03945.html
Status : patch available
Subject : BUG: at drivers/pci/pci.c:817 pcim_enable_device() (libata)
References : http://lkml.org/lkml/2007/2/14/275
http://lkml.org/lkml/2007/2/22/367
Submitter : Rafael J. Wysocki <rjw@sisk.pl>
Lukas Hejtmanek <xhejtman@mail.muni.cz>
Handled-By : Tejun Heo <htejun@gmail.com>
Patch : http://lkml.org/lkml/2007/2/25/102
Status : patch available
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
@ 2007-02-27 4:09 ` Sergio Monteiro Basto
2007-02-27 12:50 ` S.Çağlar Onur
2007-02-28 21:13 ` Michael S. Tsirkin
2 siblings, 0 replies; 104+ messages in thread
From: Sergio Monteiro Basto @ 2007-02-27 4:09 UTC (permalink / raw)
To: Adrian Bunk
Cc: Tejun Heo, Arkadiusz Miskiewicz, Antonino A. Daplas,
Marcel Holtmann, linux-ide, Pavel Machek, Lukas Hejtmanek,
Jean-Luc Coulon, Andrew Morton, Ismail Dönmez,
linux-usb-devel, Andrew Nelless, jgarzik, Meelis Roos,
Janosch Machowinski, linux-pm, Linux Kernel Mailing List,
linux-acpi, Fabio Comolli, Thomas Meyer, Michael S. Tsirkin,
Ingo Molnar, Linus Torvalds
[-- Attachment #1.1: Type: text/plain, Size: 354 bytes --]
On Mon, 2007-02-26 at 23:01 +0100, Adrian Bunk wrote:
> Subject : MacBook: AE_NOT_FOUND ACPI messages
> References : http://bugzilla.kernel.org/show_bug.cgi?id=8066
> Submitter : Thomas Meyer <thomas.mey@web.de>
> Status : unknown
I think , Messages is not a regression
Appears AE_NOT_FOUND messages could be good
--
Sérgio M.B.
[-- Attachment #1.2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 2192 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-25 17:55 ` 2.6.21-rc1: known regressions (part 2) Adrian Bunk
@ 2007-02-27 10:02 ` Jens Axboe
2007-02-27 10:21 ` Pavel Machek
2007-02-27 22:09 ` Adrian Bunk
0 siblings, 2 replies; 104+ messages in thread
From: Jens Axboe @ 2007-02-27 10:02 UTC (permalink / raw)
To: Adrian Bunk
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Daniel Walker,
Michael S. Tsirkin, Andrew Morton, Linus Torvalds, Ingo Molnar,
Linux Kernel Mailing List
On Sun, Feb 25 2007, Adrian Bunk wrote:
> This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> that are not yet fixed in Linus' tree.
>
> If you find your name in the Cc header, you are either submitter of one
> of the bugs, maintainer of an affectected subsystem or driver, a patch
> of you caused a breakage or I'm considering you in any other way possibly
> involved with one or more of these issues.
>
> Due to the huge amount of recipients, please trim the Cc when answering.
>
>
> Subject : ThinkPad T60: system doesn't come out of suspend to RAM
> (CONFIG_NO_HZ)
> References : http://lkml.org/lkml/2007/2/22/391
> Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> Thomas Gleixner <tglx@linutronix.de>
> Handled-By : Ingo Molnar <mingo@elte.hu>
> Status : unknown
x60 doesn't resume from S2R either, it doesn't matter if CONFIG_NO_HZ is
set or not though. 2.6.20 worked fine.
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:02 ` Jens Axboe
@ 2007-02-27 10:21 ` Pavel Machek
2007-02-27 10:30 ` Jens Axboe
2007-02-27 22:09 ` Adrian Bunk
1 sibling, 1 reply; 104+ messages in thread
From: Pavel Machek @ 2007-02-27 10:21 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Daniel Walker,
Michael S. Tsirkin, Andrew Morton, Ingo Molnar, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
Hi!
> > This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> > that are not yet fixed in Linus' tree.
> >
> > If you find your name in the Cc header, you are either submitter of one
> > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > of you caused a breakage or I'm considering you in any other way possibly
> > involved with one or more of these issues.
> >
> > Due to the huge amount of recipients, please trim the Cc when answering.
> >
> >
> > Subject : ThinkPad T60: system doesn't come out of suspend to RAM
> > (CONFIG_NO_HZ)
> > References : http://lkml.org/lkml/2007/2/22/391
> > Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> > Thomas Gleixner <tglx@linutronix.de>
> > Handled-By : Ingo Molnar <mingo@elte.hu>
> > Status : unknown
>
> x60 doesn't resume from S2R either, it doesn't matter if CONFIG_NO_HZ is
> set or not though. 2.6.20 worked fine.
It somehow works for me. As long as I do not play with bluetooth and
suspend to disk...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:21 ` Pavel Machek
@ 2007-02-27 10:30 ` Jens Axboe
2007-02-27 10:34 ` Ingo Molnar
0 siblings, 1 reply; 104+ messages in thread
From: Jens Axboe @ 2007-02-27 10:30 UTC (permalink / raw)
To: Pavel Machek
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Daniel Walker,
Michael S. Tsirkin, Andrew Morton, Ingo Molnar, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
On Tue, Feb 27 2007, Pavel Machek wrote:
> Hi!
>
> > > This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> > > that are not yet fixed in Linus' tree.
> > >
> > > If you find your name in the Cc header, you are either submitter of one
> > > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > > of you caused a breakage or I'm considering you in any other way possibly
> > > involved with one or more of these issues.
> > >
> > > Due to the huge amount of recipients, please trim the Cc when answering.
> > >
> > >
> > > Subject : ThinkPad T60: system doesn't come out of suspend to RAM
> > > (CONFIG_NO_HZ)
> > > References : http://lkml.org/lkml/2007/2/22/391
> > > Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> > > Thomas Gleixner <tglx@linutronix.de>
> > > Handled-By : Ingo Molnar <mingo@elte.hu>
> > > Status : unknown
> >
> > x60 doesn't resume from S2R either, it doesn't matter if CONFIG_NO_HZ is
> > set or not though. 2.6.20 worked fine.
>
> It somehow works for me. As long as I do not play with bluetooth and
> suspend to disk...
It locks solid here on resume, going back to 2.6.20 makes it work
perfectly again. In between 2.6.20 and 2.6.21-rc1 some ACPI change broke
resume, but that got fixed. Some other change later snuck in that broke
it AGAIN for me, sigh.
I don't use bluetooth nor suspend to disk.
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:30 ` Jens Axboe
@ 2007-02-27 10:34 ` Ingo Molnar
2007-02-27 10:59 ` Jens Axboe
0 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-02-27 10:34 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
* Jens Axboe <jens.axboe@oracle.com> wrote:
> > > x60 doesn't resume from S2R either, it doesn't matter if
> > > CONFIG_NO_HZ is set or not though. 2.6.20 worked fine.
> >
> > It somehow works for me. As long as I do not play with bluetooth and
> > suspend to disk...
>
> It locks solid here on resume, going back to 2.6.20 makes it work
> perfectly again. In between 2.6.20 and 2.6.21-rc1 some ACPI change
> broke resume, but that got fixed. Some other change later snuck in
> that broke it AGAIN for me, sigh.
>
> I don't use bluetooth nor suspend to disk.
resume is stock on my T60 too. So you mean v2.6.21-rc1 vanilla works
fine? Do you know a commit ID that works for sure? I'd like to bisect
this, but this way i might just find that ACPI change that got already
fixed later on (and then got re-broken).
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:34 ` Ingo Molnar
@ 2007-02-27 10:59 ` Jens Axboe
2007-02-27 11:15 ` Jens Axboe
0 siblings, 1 reply; 104+ messages in thread
From: Jens Axboe @ 2007-02-27 10:59 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
On Tue, Feb 27 2007, Ingo Molnar wrote:
>
> * Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > > > x60 doesn't resume from S2R either, it doesn't matter if
> > > > CONFIG_NO_HZ is set or not though. 2.6.20 worked fine.
> > >
> > > It somehow works for me. As long as I do not play with bluetooth and
> > > suspend to disk...
> >
> > It locks solid here on resume, going back to 2.6.20 makes it work
> > perfectly again. In between 2.6.20 and 2.6.21-rc1 some ACPI change
> > broke resume, but that got fixed. Some other change later snuck in
> > that broke it AGAIN for me, sigh.
> >
> > I don't use bluetooth nor suspend to disk.
>
> resume is stock on my T60 too. So you mean v2.6.21-rc1 vanilla works
> fine? Do you know a commit ID that works for sure? I'd like to bisect
Nope, 2.6.21-rc1 vanilla does not work. 2.6.20 works. 2.6.20-gitX worked
until some acpi change broke it, the below patch fixed that for me. That
got merged in a later 2.6.20-gitY, but then some other patch broke it
again so that 2.6.21-rc1 is broken. Not much luck there :-)
So it looks like:
- c5a7156959e89b32260ad6072bbf5077bcdfbeee broke 2.6.20-git
- f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 should fix that.
- Something later than f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 broke it
again.
> this, but this way i might just find that ACPI change that got already
> fixed later on (and then got re-broken).
Yeah, it gets trickier. I'll try
f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 now and see if that works, then
bisect to 2.6.21-rc1 to find the other offender. I hope the other
offender didn't get added before
f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38, we'll see :-)
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:59 ` Jens Axboe
@ 2007-02-27 11:15 ` Jens Axboe
2007-02-27 13:09 ` Jens Axboe
2007-03-01 9:34 ` Ingo Molnar
0 siblings, 2 replies; 104+ messages in thread
From: Jens Axboe @ 2007-02-27 11:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
On Tue, Feb 27 2007, Jens Axboe wrote:
> On Tue, Feb 27 2007, Ingo Molnar wrote:
> >
> > * Jens Axboe <jens.axboe@oracle.com> wrote:
> >
> > > > > x60 doesn't resume from S2R either, it doesn't matter if
> > > > > CONFIG_NO_HZ is set or not though. 2.6.20 worked fine.
> > > >
> > > > It somehow works for me. As long as I do not play with bluetooth and
> > > > suspend to disk...
> > >
> > > It locks solid here on resume, going back to 2.6.20 makes it work
> > > perfectly again. In between 2.6.20 and 2.6.21-rc1 some ACPI change
> > > broke resume, but that got fixed. Some other change later snuck in
> > > that broke it AGAIN for me, sigh.
> > >
> > > I don't use bluetooth nor suspend to disk.
> >
> > resume is stock on my T60 too. So you mean v2.6.21-rc1 vanilla works
> > fine? Do you know a commit ID that works for sure? I'd like to bisect
>
> Nope, 2.6.21-rc1 vanilla does not work. 2.6.20 works. 2.6.20-gitX worked
> until some acpi change broke it, the below patch fixed that for me. That
> got merged in a later 2.6.20-gitY, but then some other patch broke it
> again so that 2.6.21-rc1 is broken. Not much luck there :-)
>
> So it looks like:
>
> - c5a7156959e89b32260ad6072bbf5077bcdfbeee broke 2.6.20-git
> - f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 should fix that.
> - Something later than f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 broke it
> again.
>
> > this, but this way i might just find that ACPI change that got already
> > fixed later on (and then got re-broken).
>
> Yeah, it gets trickier. I'll try
> f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 now and see if that works, then
> bisect to 2.6.21-rc1 to find the other offender. I hope the other
> offender didn't get added before
> f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38, we'll see :-)
f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, starting bisect.
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
2007-02-27 4:09 ` Sergio Monteiro Basto
@ 2007-02-27 12:50 ` S.Çağlar Onur
2007-02-27 13:25 ` Ismail Dönmez
2007-02-28 21:13 ` Michael S. Tsirkin
2 siblings, 1 reply; 104+ messages in thread
From: S.Çağlar Onur @ 2007-02-27 12:50 UTC (permalink / raw)
To: Adrian Bunk
Cc: Tejun Heo, Arkadiusz Miskiewicz, Antonino A. Daplas,
Marcel Holtmann, linux-ide, Pavel Machek, Lukas Hejtmanek,
Jean-Luc Coulon, Andrew Morton, Ismail Dönmez,
linux-usb-devel, Andrew Nelless, jgarzik, Meelis Roos,
Janosch Machowinski, linux-pm, Linux Kernel Mailing List,
linux-acpi, Fabio Comolli, Thomas Meyer, Michael S. Tsirkin,
Ingo Molnar, Linus Torvalds
[-- Attachment #1.1: Type: text/plain, Size: 998 bytes --]
27 Şub 2007 Sal tarihinde, Adrian Bunk şunları yazmıştı:
> This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> that are not yet fixed in Linus' tree.
>
> If you find your name in the Cc header, you are either submitter of one
> of the bugs, maintainer of an affectected subsystem or driver, a patch
> of you caused a breakage or I'm considering you in any other way possibly
> involved with one or more of these issues.
...
> Subject : ACPI update breaks kpowersave
> References : http://lkml.org/lkml/2007/2/10/7
> Submitter : Ismail Dönmez <ismail@pardus.org.tr>
> Fabio Comolli <fabio.comolli@gmail.com>
> Status : unknown
That regression fixed by c2b6705b75d9c7aff98a4602a32230639e10891c according to
İsmail [1]
[1] http://lkml.org/lkml/2007/2/13/105
--
S.Çağlar Onur <caglar@pardus.org.tr>
http://cekirdek.pardus.org.tr/~caglar/
Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 11:15 ` Jens Axboe
@ 2007-02-27 13:09 ` Jens Axboe
2007-03-01 9:34 ` Ingo Molnar
1 sibling, 0 replies; 104+ messages in thread
From: Jens Axboe @ 2007-02-27 13:09 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
On Tue, Feb 27 2007, Jens Axboe wrote:
> On Tue, Feb 27 2007, Jens Axboe wrote:
> > On Tue, Feb 27 2007, Ingo Molnar wrote:
> > >
> > > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > >
> > > > > > x60 doesn't resume from S2R either, it doesn't matter if
> > > > > > CONFIG_NO_HZ is set or not though. 2.6.20 worked fine.
> > > > >
> > > > > It somehow works for me. As long as I do not play with bluetooth and
> > > > > suspend to disk...
> > > >
> > > > It locks solid here on resume, going back to 2.6.20 makes it work
> > > > perfectly again. In between 2.6.20 and 2.6.21-rc1 some ACPI change
> > > > broke resume, but that got fixed. Some other change later snuck in
> > > > that broke it AGAIN for me, sigh.
> > > >
> > > > I don't use bluetooth nor suspend to disk.
> > >
> > > resume is stock on my T60 too. So you mean v2.6.21-rc1 vanilla works
> > > fine? Do you know a commit ID that works for sure? I'd like to bisect
> >
> > Nope, 2.6.21-rc1 vanilla does not work. 2.6.20 works. 2.6.20-gitX worked
> > until some acpi change broke it, the below patch fixed that for me. That
> > got merged in a later 2.6.20-gitY, but then some other patch broke it
> > again so that 2.6.21-rc1 is broken. Not much luck there :-)
> >
> > So it looks like:
> >
> > - c5a7156959e89b32260ad6072bbf5077bcdfbeee broke 2.6.20-git
> > - f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 should fix that.
> > - Something later than f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 broke it
> > again.
> >
> > > this, but this way i might just find that ACPI change that got already
> > > fixed later on (and then got re-broken).
> >
> > Yeah, it gets trickier. I'll try
> > f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 now and see if that works, then
> > bisect to 2.6.21-rc1 to find the other offender. I hope the other
> > offender didn't get added before
> > f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38, we'll see :-)
>
> f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, starting bisect.
Which got me nowhere, after bisecting down from 1213 revisions to
nothing. f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 certainly works, just
verified again. Trying only acpi related changes now...
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-27 12:50 ` S.Çağlar Onur
@ 2007-02-27 13:25 ` Ismail Dönmez
0 siblings, 0 replies; 104+ messages in thread
From: Ismail Dönmez @ 2007-02-27 13:25 UTC (permalink / raw)
To: caglar
Cc: Tejun Heo, Arkadiusz Miskiewicz, Antonino A. Daplas, linux-pm,
Marcel Holtmann, linux-ide, Pavel Machek, Lukas Hejtmanek,
Jean-Luc Coulon, Andrew Morton, linux-usb-devel, Andrew Nelless,
jgarzik, Meelis Roos, Janosch Machowinski,
Linux Kernel Mailing List, Adrian Bunk, linux-acpi, Fabio Comolli,
Thomas Meyer, Michael S. Tsirkin, Ingo Molnar, Linus Torvalds,
Markus
On Tuesday 27 February 2007 14:50:17 S.Çağlar Onur wrote:
> 27 Şub 2007 Sal tarihinde, Adrian Bunk şunları yazmıştı:
> > This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> > that are not yet fixed in Linus' tree.
> >
> > If you find your name in the Cc header, you are either submitter of one
> > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > of you caused a breakage or I'm considering you in any other way possibly
> > involved with one or more of these issues.
>
> ...
>
> > Subject : ACPI update breaks kpowersave
> > References : http://lkml.org/lkml/2007/2/10/7
> > Submitter : Ismail Dönmez <ismail@pardus.org.tr>
> > Fabio Comolli <fabio.comolli@gmail.com>
> > Status : unknown
>
> That regression fixed by c2b6705b75d9c7aff98a4602a32230639e10891c according
> to İsmail [1]
>
> [1] http://lkml.org/lkml/2007/2/13/105
Not quite, my laptop died the same day. So I can't do any reliable test. Also
Fabio seems to reproduce it with 2.6.21-rc1.
Regards,
ismail
--
In God We Trust Others We Monitor
_______________________________________________
linux-pm mailing list
linux-pm@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/linux-pm
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 10:02 ` Jens Axboe
2007-02-27 10:21 ` Pavel Machek
@ 2007-02-27 22:09 ` Adrian Bunk
2007-02-28 7:41 ` Jens Axboe
1 sibling, 1 reply; 104+ messages in thread
From: Adrian Bunk @ 2007-02-27 22:09 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Daniel Walker,
Michael S. Tsirkin, Andrew Morton, Linus Torvalds, Ingo Molnar,
Linux Kernel Mailing List
On Tue, Feb 27, 2007 at 11:02:02AM +0100, Jens Axboe wrote:
> On Sun, Feb 25 2007, Adrian Bunk wrote:
> > This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> > that are not yet fixed in Linus' tree.
> >
> > If you find your name in the Cc header, you are either submitter of one
> > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > of you caused a breakage or I'm considering you in any other way possibly
> > involved with one or more of these issues.
> >
> > Due to the huge amount of recipients, please trim the Cc when answering.
> >
> >
> > Subject : ThinkPad T60: system doesn't come out of suspend to RAM
> > (CONFIG_NO_HZ)
> > References : http://lkml.org/lkml/2007/2/22/391
> > Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> > Thomas Gleixner <tglx@linutronix.de>
> > Handled-By : Ingo Molnar <mingo@elte.hu>
> > Status : unknown
>
> x60 doesn't resume from S2R either, it doesn't matter if CONFIG_NO_HZ is
> set or not though. 2.6.20 worked fine.
Is this
Subject : ThinkPad T60: no screen after suspend to RAM
References : http://lkml.org/lkml/2007/2/22/391
Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
Ingo Molnar <mingo@elte.hu>
Handled-By : Ingo Molnar <mingo@elte.hu>
Status : unknown
or doesn't it resume at all?
> Jens Axboe
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 22:09 ` Adrian Bunk
@ 2007-02-28 7:41 ` Jens Axboe
0 siblings, 0 replies; 104+ messages in thread
From: Jens Axboe @ 2007-02-28 7:41 UTC (permalink / raw)
To: Adrian Bunk
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Daniel Walker,
Michael S. Tsirkin, Andrew Morton, Linus Torvalds, Ingo Molnar,
Linux Kernel Mailing List
On Tue, Feb 27 2007, Adrian Bunk wrote:
> On Tue, Feb 27, 2007 at 11:02:02AM +0100, Jens Axboe wrote:
> > On Sun, Feb 25 2007, Adrian Bunk wrote:
> > > This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
> > > that are not yet fixed in Linus' tree.
> > >
> > > If you find your name in the Cc header, you are either submitter of one
> > > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > > of you caused a breakage or I'm considering you in any other way possibly
> > > involved with one or more of these issues.
> > >
> > > Due to the huge amount of recipients, please trim the Cc when answering.
> > >
> > >
> > > Subject : ThinkPad T60: system doesn't come out of suspend to RAM
> > > (CONFIG_NO_HZ)
> > > References : http://lkml.org/lkml/2007/2/22/391
> > > Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> > > Thomas Gleixner <tglx@linutronix.de>
> > > Handled-By : Ingo Molnar <mingo@elte.hu>
> > > Status : unknown
> >
> > x60 doesn't resume from S2R either, it doesn't matter if CONFIG_NO_HZ is
> > set or not though. 2.6.20 worked fine.
>
> Is this
>
> Subject : ThinkPad T60: no screen after suspend to RAM
> References : http://lkml.org/lkml/2007/2/22/391
> Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> Ingo Molnar <mingo@elte.hu>
> Handled-By : Ingo Molnar <mingo@elte.hu>
> Status : unknown
>
> or doesn't it resume at all?
It doesn't resume at all.
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* RE: 2.6.21-rc1: known regressions (part 1)
2007-02-25 17:52 ` 2.6.21-rc1: known regressions (part 1) Adrian Bunk
@ 2007-02-28 18:16 ` Karasyov, Konstantin A
0 siblings, 0 replies; 104+ messages in thread
From: Karasyov, Konstantin A @ 2007-02-28 18:16 UTC (permalink / raw)
To: Adrian Bunk, Linus Torvalds, Andrew Morton
Cc: Linux Kernel Mailing List, Pavel Machek, linux-pm, Ingo Molnar,
lenb, linux-acpi, Arkadiusz Miskiewicz, linux-usb-devel,
Rafael J. Wysocki
[-- Attachment #1: Type: text/plain, Size: 1706 bytes --]
Arkadiusz,
Could try the attached patch to see if it solves the problem?
If not, please send the output of acpidump command and log.
Regards.
Konstantin.
>-----Original Message-----
>From: Adrian Bunk [mailto:bunk@stusta.de]
>Sent: Sunday, February 25, 2007 8:53 PM
>To: Linus Torvalds; Andrew Morton
>Cc: Linux Kernel Mailing List; Pavel Machek; Marcel Holtmann; linux-
>pm@lists.osdl.org; Michael S. Tsirkin; Ingo Molnar; lenb@kernel.org;
linux-
>acpi@vger.kernel.org; Yu, Luming; Arkadiusz Miskiewicz; Karasyov,
>Konstantin A; linux-usb-devel@lists.sourceforge.net; Thomas Meyer;
Andrew;
>Janosch Machowinski; Lebedev, Vladimir P; Lukas Hejtmanek;
>jgarzik@pobox.com; linux-ide@vger.kernel.org; Meelis Roos; Alan Cox;
Fabio
>Comolli; Jean-Luc Coulon; Markus Trippelsdorf; Tejun Heo; Rafael J.
Wysocki
>Subject: 2.6.21-rc1: known regressions (part 1)
>
>This email lists some known regressions in 2.6.21-rc1 compared to
2.6.20
>that are not yet fixed in Linus' tree.
>
>If you find your name in the Cc header, you are either submitter of one
>of the bugs, maintainer of an affectected subsystem or driver, a patch
>of you caused a breakage or I'm considering you in any other way
possibly
>involved with one or more of these issues.
>
>Due to the huge amount of recipients, please trim the Cc when
answering.
>
>
>Subject : HP nx6325 notebook: usb mouse stops working after suspend
to
>ram
>References : http://lkml.org/lkml/2007/2/21/413
>Submitter : Arkadiusz Miskiewicz <arekm@maven.pl>
>Caused-By : Konstantin Karasyov <konstantin.a.karasyov@intel.com>
> commit 0a6139027f3986162233adc17285151e78b39cac
>Status : unknown
>
>
[-- Attachment #2: usb_power.patch --]
[-- Type: application/octet-stream, Size: 1443 bytes --]
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index 1ef3385..866c8e7 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -436,8 +436,6 @@ int acpi_power_transition(struct acpi_device *device, int state)
cl = &device->power.states[device->power.state].resources;
tl = &device->power.states[state].resources;
- device->power.state = ACPI_STATE_UNKNOWN;
-
if (!cl->count && !tl->count) {
result = -ENODEV;
goto end;
@@ -468,12 +466,15 @@ int acpi_power_transition(struct acpi_device *device, int state)
goto end;
}
- /* We shouldn't change the state till all above operations succeed */
- device->power.state = state;
- end:
- if (result)
+ end:
+ if (result) {
+ device->power.state = ACPI_STATE_UNKNOWN;
printk(KERN_WARNING PREFIX "Transitioning device [%s] to D%d\n",
device->pnp.bus_id, state);
+ } else {
+ /* We shouldn't change the state till all above operations succeed */
+ device->power.state = state;
+ }
return result;
}
@@ -690,7 +691,8 @@ static int acpi_power_resume(struct acpi_device *device)
if ((resource->state == ACPI_POWER_RESOURCE_STATE_ON) &&
list_empty(&resource->reference)) {
mutex_unlock(&resource->resource_lock);
- result = acpi_power_off_device(device->handle, NULL);
+// result = acpi_power_off_device(device->handle, NULL);
+printk("RESUME: power resource %s found to be OFF\n", device->pnp.bus_id);
return result;
}
^ permalink raw reply related [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
2007-02-27 4:09 ` Sergio Monteiro Basto
2007-02-27 12:50 ` S.Çağlar Onur
@ 2007-02-28 21:13 ` Michael S. Tsirkin
2007-02-28 21:27 ` Thomas Gleixner
2007-03-01 3:45 ` Jeff Chua
2 siblings, 2 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-02-28 21:13 UTC (permalink / raw)
To: Adrian Bunk
Cc: Linux Kernel Mailing List, Pavel Machek, linux-pm, Ingo Molnar,
lenb, linux-acpi
>Subject : ThinkPad T60: no screen after suspend to RAM
>References : http://lkml.org/lkml/2007/2/22/391
>Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
>Handled-By : Ingo Molnar <mingo@elte.hu>
>Status : unknown
Just reproduced this in -rc2.
Another thing I noticed:
with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
On 2.6.21-rc2, after resume (when the box is accessible from network),
pressing Fn/F4 again does not seem to have any effect.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-28 21:13 ` Michael S. Tsirkin
@ 2007-02-28 21:27 ` Thomas Gleixner
2007-02-28 21:40 ` Michael S. Tsirkin
2007-03-01 3:45 ` Jeff Chua
1 sibling, 1 reply; 104+ messages in thread
From: Thomas Gleixner @ 2007-02-28 21:27 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Adrian Bunk, Linux Kernel Mailing List, Pavel Machek, linux-pm,
Ingo Molnar, lenb, linux-acpi
On Wed, 2007-02-28 at 23:13 +0200, Michael S. Tsirkin wrote:
> >Subject : ThinkPad T60: no screen after suspend to RAM
> >References : http://lkml.org/lkml/2007/2/22/391
> >Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
> >Handled-By : Ingo Molnar <mingo@elte.hu>
> >Status : unknown
>
> Just reproduced this in -rc2.
> Another thing I noticed:
> with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
>
> On 2.6.21-rc2, after resume (when the box is accessible from network),
> pressing Fn/F4 again does not seem to have any effect.
Can you please get the dmesg output after resume via the network ?
tglx
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-28 21:27 ` Thomas Gleixner
@ 2007-02-28 21:40 ` Michael S. Tsirkin
0 siblings, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-02-28 21:40 UTC (permalink / raw)
To: Thomas Gleixner
Cc: linux-acpi, Pavel Machek, Ingo Molnar, Adrian Bunk, linux-pm,
Linux Kernel Mailing List
>Quoting Thomas Gleixner <tglx@linutronix.de>:
>Subject: Re: 2.6.21-rc1: known regressions (v2) (part 1)
>
>On Wed, 2007-02-28 at 23:13 +0200, Michael S. Tsirkin wrote:
>> >Subject : ThinkPad T60: no screen after suspend to RAM
>> >References : http://lkml.org/lkml/2007/2/22/391
>> >Submitter : Michael S. Tsirkin <mst@mellanox.co.il>
>> >Handled-By : Ingo Molnar <mingo@elte.hu>
>> >Status : unknown
>>
>> Just reproduced this in -rc2.
>> Another thing I noticed:
>> with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
>>
>> On 2.6.21-rc2, after resume (when the box is accessible from network),
>> pressing Fn/F4 again does not seem to have any effect.
>
>Can you please get the dmesg output after resume via the network ?
The link above has it.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-02-28 21:13 ` Michael S. Tsirkin
2007-02-28 21:27 ` Thomas Gleixner
@ 2007-03-01 3:45 ` Jeff Chua
2007-03-02 12:26 ` [linux-pm] " Pavel Machek
2007-03-05 0:04 ` Adrian Bunk
1 sibling, 2 replies; 104+ messages in thread
From: Jeff Chua @ 2007-03-01 3:45 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: linux-acpi, Pavel Machek, Ingo Molnar, Adrian Bunk, linux-pm,
Linux Kernel Mailing List
On 3/1/07, Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
>
> On 2.6.21-rc2, after resume (when the box is accessible from network),
> pressing Fn/F4 again does not seem to have any effect.
I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
from RAM, can't suspend to disk. It is possible to revert all the
changes to ACPI and test it?
Jeff.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-02-27 11:15 ` Jens Axboe
2007-02-27 13:09 ` Jens Axboe
@ 2007-03-01 9:34 ` Ingo Molnar
2007-03-01 10:41 ` Ingo Molnar
` (2 more replies)
1 sibling, 3 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-01 9:34 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
* Jens Axboe <jens.axboe@oracle.com> wrote:
> f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, [...]
update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
to bisect this.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 9:34 ` Ingo Molnar
@ 2007-03-01 10:41 ` Ingo Molnar
2007-03-01 14:52 ` Ingo Molnar
2007-03-01 23:36 ` Linus Torvalds
2007-03-02 10:07 ` Pavel Machek
2007-03-05 15:34 ` Michael S. Tsirkin
2 siblings, 2 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-01 10:41 UTC (permalink / raw)
To: Jens Axboe
Cc: linux-pm, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Daniel Walker, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
* Ingo Molnar <mingo@elte.hu> wrote:
> update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
> 01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
> to bisect this.
hm. There's some weird bisection artifact here. Here are the commits i
tested, in git-log order:
#1 commit 01363220f5d23ef68276db8974e46a502e43d01d bad
#2 commit ee404566f97f9254433399fbbcfa05390c7c55f7 bad
#3 commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 good
#4 commit c827ba4cb49a30ce581201fd0ba2be77cde412c7 bad
if i tell git-bisect that #1 is bad and #3 is good, then it offers me #2
- that's OK. But when i tell it that #2 is bad, it offers #4 - which is
out of order! The bisection goes off into la-la land after that and
never gets back to a commit that is /after/ the good commit. How is this
possible? (I upgraded from git-1.4.4 to 1.5.0 to make sure this isnt
some git bug that's already fixed.)
i'll try to straighten this out manually, perhaps #3 is in some merge
branch that confuses bisection. Or maybe i misunderstood how git-bisect
works.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 10:41 ` Ingo Molnar
@ 2007-03-01 14:52 ` Ingo Molnar
2007-03-01 16:12 ` Rafael J. Wysocki
2007-03-02 0:26 ` Linus Torvalds
2007-03-01 23:36 ` Linus Torvalds
1 sibling, 2 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-01 14:52 UTC (permalink / raw)
To: Jens Axboe
Cc: Pavel Machek, Adrian Bunk, Linus Torvalds, Andrew Morton,
Linux Kernel Mailing List, Michael S. Tsirkin, Thomas Gleixner,
linux-pm, Michal Piotrowski, Daniel Walker
* Ingo Molnar <mingo@elte.hu> wrote:
> hm. There's some weird bisection artifact here. Here are the commits i
> tested, in git-log order:
>
> #1 commit 01363220f5d23ef68276db8974e46a502e43d01d bad
> #2 commit ee404566f97f9254433399fbbcfa05390c7c55f7 bad
> #3 commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 good
> #4 commit c827ba4cb49a30ce581201fd0ba2be77cde412c7 bad
>
> if i tell git-bisect that #1 is bad and #3 is good, then it offers me
> #2 - that's OK. But when i tell it that #2 is bad, it offers #4 -
> which is out of order! The bisection goes off into la-la land after
> that and never gets back to a commit that is /after/ the good commit.
> How is this possible? (I upgraded from git-1.4.4 to 1.5.0 to make sure
> this isnt some git bug that's already fixed.)
>
> i'll try to straighten this out manually, perhaps #3 is in some merge
> branch that confuses bisection. Or maybe i misunderstood how
> git-bisect works.
git-bisect gets royally confused on those ACPI merge branches around
commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe. Here are my test
results so far:
commit 01363220f5d23ef68276db8974e46a502e43d01d: bad
commit 255f0385c8e0d6b9005c0e09fffb5bd852f3b506: bad
commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe: bad
commit c24e912b61b1ab2301c59777134194066b06465c: good
commit e9e2cdb412412326c4827fc78ba27f410d837e6e: bad
commit 79bf2bb335b85db25d27421c798595a2fa2a0e82: bad
commit fc955f670c0a66aca965605dae797e747b2bef7d: good
commit 70c0846e430881967776582e13aefb81407919f1: good
commit 414f827c46973ba39320cfb43feb55a0eeb9b4e8: bad
commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38: good
commit 5f0b1437e0708772b6fecae5900c01c3b5f9b512: bad
commit b878ca5d37953ad1c4578b225a13a3c3e7e743b7: bad
commit c2902c8ae06762d941fab64198467f78cab6f8cd: bad
commit 12e74f7d430655f541b85018ea62bcd669094bd7: bad
commit 3388c37e04ec0e35ebc1b4c732fdefc9ea938f3b: bad
commit 9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff: bad
the results are totally reproducible (i re-tried a few of both the good
and the bad commits), i.e. it's not a sporadic condition. Also, a number
of the 'bad' commits have no dynticks stuff in them at all, so i'd
exclude dynticks.
could someone suggest a sane way to go with this? Perhaps suggest
specific commit IDs to test?
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 14:52 ` Ingo Molnar
@ 2007-03-01 16:12 ` Rafael J. Wysocki
2007-03-02 0:26 ` Linus Torvalds
1 sibling, 0 replies; 104+ messages in thread
From: Rafael J. Wysocki @ 2007-03-01 16:12 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
On Thursday, 1 March 2007 15:52, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
> > hm. There's some weird bisection artifact here. Here are the commits i
> > tested, in git-log order:
> >
> > #1 commit 01363220f5d23ef68276db8974e46a502e43d01d bad
> > #2 commit ee404566f97f9254433399fbbcfa05390c7c55f7 bad
> > #3 commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 good
> > #4 commit c827ba4cb49a30ce581201fd0ba2be77cde412c7 bad
> >
> > if i tell git-bisect that #1 is bad and #3 is good, then it offers me
> > #2 - that's OK. But when i tell it that #2 is bad, it offers #4 -
> > which is out of order! The bisection goes off into la-la land after
> > that and never gets back to a commit that is /after/ the good commit.
> > How is this possible? (I upgraded from git-1.4.4 to 1.5.0 to make sure
> > this isnt some git bug that's already fixed.)
> >
> > i'll try to straighten this out manually, perhaps #3 is in some merge
> > branch that confuses bisection. Or maybe i misunderstood how
> > git-bisect works.
>
> git-bisect gets royally confused on those ACPI merge branches around
> commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe. Here are my test
> results so far:
>
> commit 01363220f5d23ef68276db8974e46a502e43d01d: bad
> commit 255f0385c8e0d6b9005c0e09fffb5bd852f3b506: bad
> commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe: bad
> commit c24e912b61b1ab2301c59777134194066b06465c: good
> commit e9e2cdb412412326c4827fc78ba27f410d837e6e: bad
> commit 79bf2bb335b85db25d27421c798595a2fa2a0e82: bad
> commit fc955f670c0a66aca965605dae797e747b2bef7d: good
> commit 70c0846e430881967776582e13aefb81407919f1: good
> commit 414f827c46973ba39320cfb43feb55a0eeb9b4e8: bad
> commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38: good
> commit 5f0b1437e0708772b6fecae5900c01c3b5f9b512: bad
> commit b878ca5d37953ad1c4578b225a13a3c3e7e743b7: bad
> commit c2902c8ae06762d941fab64198467f78cab6f8cd: bad
> commit 12e74f7d430655f541b85018ea62bcd669094bd7: bad
> commit 3388c37e04ec0e35ebc1b4c732fdefc9ea938f3b: bad
> commit 9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff: bad
>
> the results are totally reproducible (i re-tried a few of both the good
> and the bad commits), i.e. it's not a sporadic condition. Also, a number
> of the 'bad' commits have no dynticks stuff in them at all, so i'd
> exclude dynticks.
>
> could someone suggest a sane way to go with this? Perhaps suggest
> specific commit IDs to test?
Hm, does 2.6.20-mm2 work? If not, you can bisect the broken-out sereis
with quilt.
Rafael
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 10:41 ` Ingo Molnar
2007-03-01 14:52 ` Ingo Molnar
@ 2007-03-01 23:36 ` Linus Torvalds
1 sibling, 0 replies; 104+ messages in thread
From: Linus Torvalds @ 2007-03-01 23:36 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, linux-pm,
Linux Kernel Mailing List, Adrian Bunk
On Thu, 1 Mar 2007, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
> > update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
> > 01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
> > to bisect this.
>
> hm. There's some weird bisection artifact here. Here are the commits i
> tested, in git-log order:
>
> #1 commit 01363220f5d23ef68276db8974e46a502e43d01d bad
> #2 commit ee404566f97f9254433399fbbcfa05390c7c55f7 bad
> #3 commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 good
> #4 commit c827ba4cb49a30ce581201fd0ba2be77cde412c7 bad
Use "git bisect visualize" to see what bisect ends up doing.
> if i tell git-bisect that #1 is bad and #3 is good, then it offers me #2
> - that's OK. But when i tell it that #2 is bad, it offers #4 - which is
> out of order!
No it's not. "git bisect" does exactly the right thing. There is no simple
ordering in a complex branch-merge schenario, you can't just put the
commits in some "ordering" and test things in time order. That would be
totally broken, and idiotic. It doesn't give the right results.
What git bisect does is to find the commit that most closely *bisects* the
history of commits, so that if it is marked good/bad, it will leave you
with about 50% of the commits left. But if you are looking at date order,
you're entirely confused.
For example, let's take a really simple case
a <- bad
/ \
b c
| |
d e
| |
f g
\ /
h
|
* <-good
and if you are looking to find something "in the middle", you might thing
that "d" or "e" are the best choices, since time-wise, they are in the
middle.
But that's not true AT ALL.
If you actually want to bisect that kind of history, you need to choose
"b" or "c", even though they may both be *much* more "recent" than the
others. Why? Because if you pick "d", you're really only testing three
commits ('d' 'f' and 'h') out of the 8 commits you have to test.
In contrast, if you pick 'b', you are testing the effects of *four*
commits ('b', 'd', 'f' and 'h') and you have thus neatly bisected the
commits into two equal groups for testing (one group _with_ those four
commits, and one group _without_) instead of having partitioned them as 3
commits vs 5 commits.
So please realize that non-linear history very much means that you MUST
NOT think that you just pick a commit "in the middle". No, git bisect is a
LOT smarter than that - it picks a commit that *reaches* about half the
commits you have left to test.
> The bisection goes off into la-la land after that and
> never gets back to a commit that is /after/ the good commit. How is this
> possible? (I upgraded from git-1.4.4 to 1.5.0 to make sure this isnt
> some git bug that's already fixed.)
It's possible because git knows what it is doing, and you didn't think
things through.
The commits that "git bisect" picked out are the right ones. Quite often,
there may be two or more "equally good" commits (in my example above, you
can choose either "b" or "c", and it will bisect the set of untested
commits equally well - in two groups of four, but two *different* groups
of four commits), and yes, it's possible that git has a bug that makes it
pick the wrong ones, but quite frankly, I seriously doubt it. "git bisect"
has been very successful indeed, and is generally a *lot* better at
picking a commit "in the middle" than people are, exactly because it's
quite hard to see which commit "reaches" half the commits if you have lots
of merges and branches.
Try out
git bisect visualize
and it will literally show you what it is doing.
What can be confusing is that if the "good" and "bad" markers are ON
DIFFERENT BRANCHES OF DEVELOPMENT, you may not even *see* the "good"
marker, because you may well have something like this:
a <- bad
|
b * <- good
| |
c d
\ /
e
|
f
|
...
and what do you think "git bisect visualize" will actually show you?
Since 'd', 'e' and 'f' are all in the "good" set (they both exist as
commits in something leading up to a commit that has already been deemed
fine), they aren't *interesting* - they can't be introducing the bug,
since if that was the case, the good commit wouldn't have been good. So as
far as bisection is concerned, the tree actually looks like
a <- bad
|
b
|
c
|
...
and you have just three commits that are potentially interesting: 'a', 'b'
and 'c'.
Now, with three commits, you cannot test them half-and-half, so you have
to test it in groups of 1 vs 2 commits, so it's arbitrary whether you
choose 'b' or 'c' to test, but you'd test one of them. Say that you choose
'b', and it turns out to be good. If so, you're done: 'a' is bad and 'b'
is good, so the bug was introduced in 'a'. But if it turns out to be bad,
you'll still have to test 'c' too, since you don't know if the bug was
*introduced* in 'b' or not.
See?
> i'll try to straighten this out manually
Don't. You're just going to make your bisection much less effective. The
whole point of bisection is that you can usually cut the number of commits
to test pretty exactly in half. If you start mucking with the commits to
test, and you don't understand about the reachability graph, you'll just
choose a much worse set of commits to test than "git bisect" will do.
So learn to trust "git bisect". It really does know what it is doing.
Linus
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 14:52 ` Ingo Molnar
2007-03-01 16:12 ` Rafael J. Wysocki
@ 2007-03-02 0:26 ` Linus Torvalds
2007-03-02 0:41 ` Linus Torvalds
` (2 more replies)
1 sibling, 3 replies; 104+ messages in thread
From: Linus Torvalds @ 2007-03-02 0:26 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, linux-pm,
Linux Kernel Mailing List, Adrian Bunk
On Thu, 1 Mar 2007, Ingo Molnar wrote:
>
> git-bisect gets royally confused on those ACPI merge branches around
> commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe. Here are my test
> results so far:
Looks like git bisect worked for you, and wasn't confused at all. You
started out with 2931 commits between your first known-bad and known-good
commits, which means that you usually end up having to check "log2(n)+1"
kernels, ie I'd have expected you to have to do 12-13 bisection attempts
to cut it down to one.
You seem to have done 14 (you list 16 commits, two of which are the
starting points), which is right in that range. The reason you sometimes
get more is:
- you "help" git bisect by choosing other commits than the optimal ones.
- with bad luck, it can be hard to get really close to "half the commits"
in the reachability analysis, especially if you have lots of merges
(and *especially* if you have octopus merges that merge more than two
branches of development). For example, say that you have something like
a
|
+---+---+---+---+
| | | | |
b c d e f
where you have six commits - you can't test any "combinations" at all,
since they are all independent, so "git bisect" cannot test them three
and three to cut down the time, so if you don't know which one is bad,
you'll basically end up testing them all.
The bad luck case never really happens to that extreme in practice, and
even when it does you can sometimes be lucky and just hit on the bug early
(so "bad luck" may end up being "good luck" after all), but it explains
why you can get more - or less - than log2(n)+1 attempts. More commonly
one more.
A much *bigger* problem is if you mark something good or bad that isn't
really. Ie if the bug comes and goes (it might be timing-dependent, for
example), the problem will be that you'll always narrow things down
(that's what bisection does), but you may not narrow it down to the right
thing!
We've had that happen several times. If the bug (for example) means that
suspend *often* breaks, but sometimes works just by luck, you might mark a
kernel "good" when it really wasn't and then "git bisect" will *really* go
out in the weeds, and won't even try to test the commits that may have
introduced the bug, because you told it that those commits resulted in a
good kernel..
> commit 01363220f5d23ef68276db8974e46a502e43d01d: bad
> commit 255f0385c8e0d6b9005c0e09fffb5bd852f3b506: bad
> commit c0cd79d11412969b6b8fa1624cdc1277db82e2fe: bad
> commit c24e912b61b1ab2301c59777134194066b06465c: good
> commit e9e2cdb412412326c4827fc78ba27f410d837e6e: bad
> commit 79bf2bb335b85db25d27421c798595a2fa2a0e82: bad
> commit fc955f670c0a66aca965605dae797e747b2bef7d: good
> commit 70c0846e430881967776582e13aefb81407919f1: good
> commit 414f827c46973ba39320cfb43feb55a0eeb9b4e8: bad
> commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38: good
> commit 5f0b1437e0708772b6fecae5900c01c3b5f9b512: bad
> commit b878ca5d37953ad1c4578b225a13a3c3e7e743b7: bad
> commit c2902c8ae06762d941fab64198467f78cab6f8cd: bad
> commit 12e74f7d430655f541b85018ea62bcd669094bd7: bad
> commit 3388c37e04ec0e35ebc1b4c732fdefc9ea938f3b: bad
> commit 9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff: bad
Looks like it's claiming that 9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff is
the bad commit. Which is extremely unlikely, since it only seems to affect
the emu10k sound driver, which I don't think even exists on any ThinkPad
laptops (correct me if I'm wrong).
Btw, you seem to have re-ordered the commits - the above is not the order
you did the bisection in. The known-good commit (f3ccb06..) is in the
middle. That's totally bogus. Please use the git bisection log (see
.git/BISECT_LOG), and don't think that you know some "better" order. You
really don't.
> the results are totally reproducible (i re-tried a few of both the good
> and the bad commits), i.e. it's not a sporadic condition. Also, a number
> of the 'bad' commits have no dynticks stuff in them at all, so i'd
> exclude dynticks.
>
> could someone suggest a sane way to go with this? Perhaps suggest
> specific commit IDs to test?
You claim that 9f4bd5dd is bad, but you indirectly claim that its direct
parent (5986a2ec) is good by saying that f3ccb06f is good. This is why
"git bisect" will claim that 9f4bd5dd must be the bad commit.
I would suggest testing commit 5986a2ec explicitly. If that one is good,
then, since you claim that 9f4bd5dd is bad, then yes, 9f4bd5dd *is* the
bad commit (because 5986a2ec is its direct parent).
But most likely, 9f4bd5dd is actually already bad, and what you are seeing
is two *different* bugs that just have the same symptoms ("suspend doesn't
work").
What happens is that you've chased them *both*, and you cannot bisect that
kind of behaviour totally automatically and mindlessly, simply because
when you say "git bisect bad", that means that *one* of the bugs is
active, but not necessarily both of them. So you may well be marking
kernels that are "good" (as far as the other bug is concerned) as bad -
and that just means that bisection won't even test them.
When that happens, you need to basically
- be able to separate the bugs out some way (so that you can still mark a
non-working kernel "good" if it's good *with*respect*to* the particular
bug you're chasing)
This is often practically impossible, _especially_ with suspend, where
the behaviour is so unhelpful that it's usually not possible to
separate out "ACPI is broken" from "one particular device driver is
broken", because they both have exactly the same symptoms: the machine
doesn't resume.
HOWEVER. Even if you can't actually separate the bugs out, you can usually
find where *one* of the bugs starts, and that point you can generally find
the fix for it too. In this case, we already know one of the bugs: it's
the ACPI bug that was apparently fixed by f3ccb06f3 (or maybe another one
in that series).
Once you have that, you now actually have a way to "correct" for that
known bug, and by correcting for the known bug, you now *can* separate the
behaviour of the two bugs:
- You can now re-do a totally mindless git bisection for the *other* bug,
but what you now need to do is that at each bisection step, you look at
whether the bisection point has the known bug, and if so, you apply the
known fix for that known bug, and thus you can test the kernel
*without* the interaction of the bug you already found.
This makes bisection a lot less automated (you have to apply the "fix" for
the other bug at each step), but it still allows "total automation" in the
sense that you don't actually need to know at all what you're looking for:
you're just following a known pattern, and you're basically just
correcting for the effects of another bug that you're no longer interested
in, since you already know what the fix for that bug was.
The other alternative is to actually have a clue what you're searching
for, and/or look deeply at where the fix was merged, and trying to narrow
things down by actually understanding the problem. But at that point,
bisection won't much help you, except perhaps as a way to find a mid-way
point to test out theories with ("which drivers that I actually use have
changed in between" kinds of experiments where you simply undo part of
the changes entirely, and bisection ends up being just a way to pick
points that are hopefully "interestingly far apart").
Linus
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 0:26 ` Linus Torvalds
@ 2007-03-02 0:41 ` Linus Torvalds
2007-03-02 7:14 ` Ingo Molnar
2007-03-02 7:21 ` Ingo Molnar
2 siblings, 0 replies; 104+ messages in thread
From: Linus Torvalds @ 2007-03-02 0:41 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, linux-pm,
Linux Kernel Mailing List, Adrian Bunk
On Thu, 1 Mar 2007, Linus Torvalds wrote:
>
> Once you have that, you now actually have a way to "correct" for that
> known bug, and by correcting for the known bug, you now *can* separate the
> behaviour of the two bugs:
>
> - You can now re-do a totally mindless git bisection for the *other* bug,
> but what you now need to do is that at each bisection step, you look at
> whether the bisection point has the known bug, and if so, you apply the
> known fix for that known bug, and thus you can test the kernel
> *without* the interaction of the bug you already found.
>
> This makes bisection a lot less automated (you have to apply the "fix" for
> the other bug at each step)
Side note: it's still usually fairly easy. Especially if you have a known
fix for the other bug, you can usually just do the equivalent of
git cherry-pick <fixcommit>
at each point during this bisect (or just have a known patch that you keep
applying and un-applying), and you're largely done.
Of course, if the area with the fix keeps changing, or if the fix is
really intrusive and nasty, this gets hairy, but at least in this case the
patch is fairly trivial and it shouldn't cause any trouble at all to do
this.
The only real down-side is just the mindless extra work, and the possible
added confusion you get from modifying the history at the points you're
testing. "git bisect" is not necessarily happy about auto-picking a new
bisection point with a dirty tree, for example, so before you mark
something "good" or "bad", you should generally try to do so with a clean
git tree (ie if you apply a patch at each stage, do "git reset --hard" to
remove the patch before you do the "git bisect bad/good" stage).
Similarly, especially at the end of the bisection run, if you actually use
"git cherry-pick" to *add* a commit, the bisection will now take that
added commit into account when trying to pick the next commit to check,
which is not what you really want. It probably doesn't matter that much
during the early stages (when bisection is really jumping around wildly
anyway, and one commit more or less doesn't really matter), but again, it
might be a good idea to make a habit of undoing the cherry-pick, the same
way you'd undo a patch (eg "git reset --hard HEAD^" would do it, if you
have exactly one cherry-pick that you tested).
Linus
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 0:26 ` Linus Torvalds
2007-03-02 0:41 ` Linus Torvalds
@ 2007-03-02 7:14 ` Ingo Molnar
2007-03-02 7:21 ` Ingo Molnar
2 siblings, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-02 7:14 UTC (permalink / raw)
To: Linus Torvalds
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, linux-pm,
Linux Kernel Mailing List, Adrian Bunk
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> Btw, you seem to have re-ordered the commits - the above is not the
> order you did the bisection in. The known-good commit (f3ccb06..) is
> in the middle. [...]
no - i simply picked them by hand, based on looking at gittk output,
because bisection did not appear to find anything useful:
9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff is first bad commit
And via that method i found a couple of more 'good' points - which
git-bisect never picked up by itself. (and i did 3-4 separate git-bisect
sessions, one of them was a "git-bisect start drivers/acpi/" - which is
the main area of suspicion). I looked at git-bisect visualize more than
once, and i've attached one of the bisection logs below.
i also think i know what happens. Firstly, my testing is reliable, as i
mentioned it in the other mail i frequently re-visited commits to make
sure that none of my bad/good decisions is spurios - but no, the test
results are extremely reproducable: either the laptop resumes properly
after flashing its disk light or it does not.
the problem i think is that i simply took git-bisect's behavior for
granted (i used it many times already) but forgot about a very basic
precondition: git-bisect will find only a /single/ good->bad transition.
If there is a bad->good transition combined with a good->bad transition
then git-bisect will think it's the same 'badness', while it's a
/former/ badness that it is honing in on - totally sending the bisection
off into la-la-land.
so as i mentioned it in the first mail: i /know/ that this commit is a
bad->good transition point:
f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
/and i only want to test commits that include this commit/ - because i
know that without this commit git-bisect confuses the /other/ breakage
with the new breakage. In the bisection log below, this choice of
git-bisect:
ee404566f97f9254433399fbbcfa05390c7c55f7
is 'bad' according to testing, but that's 'another' badness - and i
missed it.
Now, having slept on it, the solution is very simple: whenever
git-bisect picks a commit for which the following command comes up
empty:
git-log | grep f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
then i'll mark it "git-bisect good" - artificially marking the older
badness as a 'good' area. That way git-bisect will find the right
good->bad transition point.
btw., that's why i tried to pick up commits by hand, making sure that
commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 is always included - but
got lost in the maze of the commit graph, and didnt realize that there
is a simple solution. Nevertheless i wanted to dump the information i
already gathered. Those commits were totally out of order, etc. - they
were picked by a poor human who is much worse at walking graphs than
git-bisect ;-)
Ingo
git-bisect start
# bad: [01363220f5d23ef68276db8974e46a502e43d01d] [PARISC] clocksource: Move update_cr16_clocksource later in boot
git-bisect bad 01363220f5d23ef68276db8974e46a502e43d01d
# good: [f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38] ACPI: Disable wake GPEs only once.
git-bisect good f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
# bad: [ee404566f97f9254433399fbbcfa05390c7c55f7] sysctl: mips/au1000: remove sys_sysctl support
git-bisect bad ee404566f97f9254433399fbbcfa05390c7c55f7
# bad: [c827ba4cb49a30ce581201fd0ba2be77cde412c7] Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
git-bisect bad c827ba4cb49a30ce581201fd0ba2be77cde412c7
# bad: [68a696a01f482859a9fe937249e8b3d44252b610] Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-tc
git-bisect bad 68a696a01f482859a9fe937249e8b3d44252b610
# bad: [1c433fbda4896a6455d97b66a4f2646cbdd52a8c] [ALSA] soc - 0.13 ASoC headers
git-bisect bad 1c433fbda4896a6455d97b66a4f2646cbdd52a8c
# bad: [048b945077bdc7e8dff5d5810ff2a0ced3590ca9] [ALSA] echoaudio, add TLV support
git-bisect bad 048b945077bdc7e8dff5d5810ff2a0ced3590ca9
# bad: [c07584c83287ae5a13cc836f69a1d824ad068c66] [ALSA] hda-codec - Add support for Medion laptops
git-bisect bad c07584c83287ae5a13cc836f69a1d824ad068c66
# bad: [dbc6b6ad767c86907db373e85139b0e975ba7599] [ALSA] ASoC codecs: generic AC97 support
git-bisect bad dbc6b6ad767c86907db373e85139b0e975ba7599
# bad: [b66b3cfe6c2f6560f351278883a325b6ebc478f5] [ALSA] hda_intel: increase maximum DMA buffer size to 1024MB
git-bisect bad b66b3cfe6c2f6560f351278883a325b6ebc478f5
# bad: [12b131c4cf3eb1dc8a60082a434b7b100774c2e7] [ALSA] allow registering an alsa device with struct device pointer
git-bisect bad 12b131c4cf3eb1dc8a60082a434b7b100774c2e7
# bad: [e4f8e656d8c152c08cd44d0e3c21f009fab09952] [ALSA] usb-audio: allow pausing
git-bisect bad e4f8e656d8c152c08cd44d0e3c21f009fab09952
# bad: [1700f3080d98323e91864d67cb9f6d46f818ccf0] [ALSA] usb-audio: merge playback/capture hardware information structs
git-bisect bad 1700f3080d98323e91864d67cb9f6d46f818ccf0
# bad: [9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff] [ALSA] snd-emu10k1: Added support for emu1010, including E-Mu 1212m and E-Mu 1820m
git-bisect bad 9f4bd5dde81b5cb94e4f52f2f05825aa0422f1ff
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 0:26 ` Linus Torvalds
2007-03-02 0:41 ` Linus Torvalds
2007-03-02 7:14 ` Ingo Molnar
@ 2007-03-02 7:21 ` Ingo Molnar
2007-03-02 8:04 ` Ingo Molnar
2 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-02 7:21 UTC (permalink / raw)
To: Linus Torvalds
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, linux-pm,
Linux Kernel Mailing List, Adrian Bunk
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> But most likely, 9f4bd5dd is actually already bad, and what you are
> seeing is two *different* bugs that just have the same symptoms
> ("suspend doesn't work").
the situation is simpler than that: there is a /known/ bug, and i marked
the bugfix commit as 'good'. I never met such a multiple-bugs scenario
before and forgot that git-bisect could easily pick a tree without this
essential bugfix and would not be able to make a distinction between the
two types of badness.
I'll try what i've described in the previous mail: mark all bisection
points that do not include f3ccb06f as 'good' - thus 'merging' the
known-bad area with the first known-good commit, and thus eliminating it
from the bisection space.
(but it might also be useful to have a "git-bisect must-include" kind of
command that would allow this to be automated: mark a particular tree as
an essential component of the search space.)
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 7:21 ` Ingo Molnar
@ 2007-03-02 8:04 ` Ingo Molnar
2007-03-02 10:20 ` Ingo Molnar
` (2 more replies)
0 siblings, 3 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-02 8:04 UTC (permalink / raw)
To: Linus Torvalds
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Andrew Morton, git
* Ingo Molnar <mingo@elte.hu> wrote:
> I'll try what i've described in the previous mail: mark all bisection
> points that do not include f3ccb06f as 'good' - thus 'merging' the
> known-bad area with the first known-good commit, and thus eliminating
> it from the bisection space.
this got me quite a bit further:
git-bisect start
git-bisect bad 01363220f5d23ef68276db8974e46a502e43d01d
git-bisect good f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
git-bisect fake-good ee404566f97f9254433399fbbcfa05390c7c55f7
git-bisect bad d43a338e395371733a80ec473b40baac5f74d768
git-bisect bad 255f0385c8e0d6b9005c0e09fffb5bd852f3b506
git-bisect fake-good f99c6bb6e2e9c35bd3dc0b1d0faa28bd6970930d
git-bisect fake-good 0187f221e96e3436d552c0c7143f183eb82fb658
git-bisect bad 81450b73dde07f473a4a7208b209b4c8b7251d90
git-bisect fake-good ef29498655b18d2bfd69048e20835d19333981ab
git-bisect fake-good 8a03d9a498eaf02c8a118752050a5154852c13bf
git-bisect good 5c95d3f5783ab184f64b7848f0a871352c35c3cf
git-bisect good ecb5f7521a309cb9c5fc0832b9705cd2a03d7d45
git-bisect good 0539771d7236b425f285652f6f297cc7939c8f9a
81450b73dde07f473a4a7208b209b4c8b7251d90 is first bad commit
[ note: by having the "git-bisect must-have-bugfix f3ccb06f"
functionality i mentioned in the previous mail git-bisect could
have eliminated the fake-good steps. ]
it's not a resolution of this regression yet, because this commit is a
merge with upstream:
| commit 81450b73dde07f473a4a7208b209b4c8b7251d90
| Merge: 8a03d9a... 0539771...
| Author: Len Brown <len.brown@intel.com>
| Date: Fri Feb 16 18:52:41 2007 -0500
|
| Pull misc-for-upstream into release branch
which means that the fix in Len's tree got broken by merging with
upstream. Note: this 'upstream' in isolation is broken too, due to not
having that essential fix from Len's tree!
So we quite likely have /two/ bugs, any of which breaks resume (which
breakage looks the same, so no way to isolate them via testing).
I'll now try the following: i'll try to manually apply Len's fix to
every tree that git-bisect offers me, in the hope of being able to
isolate the /other/ bug.
[ But really, i'm not expecting any miracles because this is way out of
league for git-bisect which really depends on only having a binary
space to search for. ]
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 9:34 ` Ingo Molnar
2007-03-01 10:41 ` Ingo Molnar
@ 2007-03-02 10:07 ` Pavel Machek
2007-03-05 8:42 ` Michael S. Tsirkin
2007-03-05 15:34 ` Michael S. Tsirkin
2 siblings, 1 reply; 104+ messages in thread
From: Pavel Machek @ 2007-03-02 10:07 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-pm, Daniel Walker, Thomas Gleixner, Michal Piotrowski,
Jens Axboe, Michael S. Tsirkin, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
[-- Attachment #1: Type: text/plain, Size: 1384 bytes --]
Hi!
> * Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, [...]
>
> update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
> 01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
> to bisect this.
Strange; on my x60, suspend to ram works okay.
(Resume is very slow, because disks are not spinned up properly; and
there's something wrong with timers; console beeps take way too long).
dmesg attached.
That's with
commit 7b965e0884cee430ffe5dc81cdb117b9316b0549
tree 754dce6432258e0a8c3a758e13a34eb3a1d22ee1
parent 5a39e8c6d655b4fe8305ef8cc2d9bbe782bfee5f
author Trond Myklebust <Trond.Myklebust@netapp.com> Wed, 28 Feb 2007
20:13:55 -0800
committer Linus Torvalds <torvalds@woody.linux-foundation.org> Thu, 01
Mar 2007 14:53:39 -0800
[PATCH] VM: invalidate_inode_pages2_range() should not exit early
Fix invalidate_inode_pages2_range() so that it does not
immediately exit
just because a single page in the specified range could not be
removed.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: delme.gz --]
[-- Type: application/octet-stream, Size: 10027 bytes --]
[-- Attachment #3: delme_config.gz --]
[-- Type: application/octet-stream, Size: 14804 bytes --]
[-- Attachment #4: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 8:04 ` Ingo Molnar
@ 2007-03-02 10:20 ` Ingo Molnar
2007-03-02 10:22 ` [patch] KVM: T60 resume fix Ingo Molnar
2007-03-05 15:44 ` 2.6.21-rc1: known regressions (part 2) Michael S. Tsirkin
2007-03-05 16:14 ` Michael S. Tsirkin
2 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-02 10:20 UTC (permalink / raw)
To: Linus Torvalds
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Andrew Morton, git
* Ingo Molnar <mingo@elte.hu> wrote:
> I'll now try the following: i'll try to manually apply Len's fix to
> every tree that git-bisect offers me, in the hope of being able to
> isolate the /other/ bug.
>
> [ But really, i'm not expecting any miracles because this is way out of
> league for git-bisect which really depends on only having a binary
> space to search for. ]
this method pointed out the real bug that we are interested in:
| 774c47f1d78e373a6bd2964f4e278d1ce26c21cb is first bad commit
| commit 774c47f1d78e373a6bd2964f4e278d1ce26c21cb
| Author: Avi Kivity <avi@qumranet.com>
| Date: Mon Feb 12 00:54:47 2007 -0800
| [PATCH] KVM: cpu hotplug support
undoing the 774c47f1 patch from HEAD gave me a working resume. I'll send
a fix for this KVM breakage in a separate mail.
here's how the bisection went:
bad: [01363220f5d23ef68276db8974e46a502e43d01d] [PARISC] clocksource:
good: [fa285a3d7924a0e3782926e51f16865c5129a2f7] Linux 2.6.20
+good: [bcdb81ae29091f6a66369aabfd8324e4a53d05dc] knfsd: SUNRPC: add a
bad: [920841d8d1d61bc12b43f95a579a5374f6d98f81] Merge branch 'for-linus'
+bad: [86a71dbd3e81e8870d0f0e56b87875f57e58222b] sysctl: hide the sysctl
+bad: [719c91ccadd3ed26570dbb29d54166914832eee9] [POWERPC] Use udbg_early
+bad: [ebaf0c6032f525ddb0158fb59848d41899dce8cd] Merge branch 'for-linus'
+good: [8cd133073f9b5cd335c0b2e4740aceb025d50ca9] kvm: Fix mismatch between
+bad: [5b8e8ee6c65a34d8aafaeb8e2eaa97e496c2567c] ps3: add shutdown to
+bad: [a524d946bdced73c5fbe60170fb33611491c4211] tgafb: sync-on-green
+bad: [a268422de8bf1b4c0cb97987b6c329c9f6a3da4b] fbdev driver for S3
+good: [8d0be2b3bf4a55606967d7d84e56c52521e94333] KVM: VMX: add vcpu_clear()
+bad: [59ae6c6b87711ceb2d1ea5f9e08bb13aee947a29] KVM: Host suspend/resume
+bad: [774c47f1d78e373a6bd2964f4e278d1ce26c21cb] KVM: cpu hotplug support
the commits prefixed with '+' were the ones where i had to hand-merge
the f3ccb06f commit to. Near the end of the bisection it nicely honed in
on the group of KVM changes that included the bad commit.
but the conclusion is clear: if multiple bugs are present in the search
area then it gets quite difficult to sort it out via git-bisect - but
it's not impossible either. The following git-bisect enhancement could
have made things easier for me:
git-bisect mark-must-have <tree>
which would mark <tree> as a must-have fix and would attempt to merge it
to whatever bisection point it ends up with - if that bisection point
does not have <tree> included already. (Maybe not even the full tree but
only one particular commit ID.) In this particular case that merge, when
it had to be done, was always 'clean'.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* [patch] KVM: T60 resume fix
2007-03-02 10:20 ` Ingo Molnar
@ 2007-03-02 10:22 ` Ingo Molnar
2007-03-02 11:39 ` Michael S. Tsirkin
` (2 more replies)
0 siblings, 3 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-02 10:22 UTC (permalink / raw)
To: Linus Torvalds
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Thomas Gleixner, Andrew Morton,
git
Subject: [patch] KVM: T60 resume fix
From: Ingo Molnar <mingo@elte.hu>
my T60 laptop does not resume correctly due to KVM attempting to send an
IPI to a CPU that might be down (or not up yet). (Doing so also triggers
the send_IPI_mask_bitmask() warning in arch/i386/kernel/smp.c, line
732.)
with this fix applied my laptop does not hang during resume.
[ KVM will have to disable/enable virtualization on the CPU itself that
goes down / comes up, not via an IPI sent from the requesting CPU. ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
drivers/kvm/kvm_main.c | 6 ------
1 file changed, 6 deletions(-)
Index: linux/drivers/kvm/kvm_main.c
===================================================================
--- linux.orig/drivers/kvm/kvm_main.c
+++ linux/drivers/kvm/kvm_main.c
@@ -2083,12 +2083,6 @@ static int kvm_cpu_hotplug(struct notifi
case CPU_DEAD:
case CPU_UP_CANCELED:
decache_vcpus_on_cpu(cpu);
- smp_call_function_single(cpu, kvm_arch_ops->hardware_disable,
- NULL, 0, 1);
- break;
- case CPU_UP_PREPARE:
- smp_call_function_single(cpu, kvm_arch_ops->hardware_enable,
- NULL, 0, 1);
break;
}
return NOTIFY_OK;
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-02 10:22 ` [patch] KVM: T60 resume fix Ingo Molnar
@ 2007-03-02 11:39 ` Michael S. Tsirkin
2007-03-03 8:22 ` Avi Kivity
2007-03-03 8:21 ` Avi Kivity
2007-03-05 10:23 ` Michael S. Tsirkin
2 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-02 11:39 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, Jens Axboe, Pavel Machek, Adrian Bunk,
Andrew Morton, Linux Kernel Mailing List, Thomas Gleixner,
linux-pm, Michal Piotrowski, Daniel Walker, Len Brown, git,
Avi Kivity
> Quoting Ingo Molnar <mingo@elte.hu>:
> Subject: [patch] KVM: T60 resume fix
> From: Ingo Molnar <mingo@elte.hu>
>
> my T60 laptop does not resume correctly due to KVM attempting to send an
> IPI to a CPU that might be down (or not up yet). (Doing so also triggers
> the send_IPI_mask_bitmask() warning in arch/i386/kernel/smp.c, line
> 732.)
>
> with this fix applied my laptop does not hang during resume.
>
> [ KVM will have to disable/enable virtualization on the CPU itself that
> goes down / comes up, not via an IPI sent from the requesting CPU. ]
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Since I don't normally have kvm loaded, this patch is unlikely
to help me, is that right?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [linux-pm] 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-01 3:45 ` Jeff Chua
@ 2007-03-02 12:26 ` Pavel Machek
2007-03-03 11:17 ` Jens Axboe
2007-03-05 0:04 ` Adrian Bunk
1 sibling, 1 reply; 104+ messages in thread
From: Pavel Machek @ 2007-03-02 12:26 UTC (permalink / raw)
To: Jeff Chua
Cc: Michael S. Tsirkin, linux-acpi, Ingo Molnar, Adrian Bunk,
linux-pm, Linux Kernel Mailing List
On Thu 2007-03-01 11:45:35, Jeff Chua wrote:
> On 3/1/07, Michael S. Tsirkin <mst@mellanox.co.il> wrote:
>
> > with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
> >
> > On 2.6.21-rc2, after resume (when the box is accessible from network),
> > pressing Fn/F4 again does not seem to have any effect.
>
> I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> from RAM, can't suspend to disk. It is possible to revert all the
> changes to ACPI and test it?
As I said elsewhere in the thread, suspend/resume to RAM works ok on
my thinkpad x60. I posted my .config there, perhaps difference is in
it? Ingo identified KVM as possible culprit.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-02 10:22 ` [patch] KVM: T60 resume fix Ingo Molnar
2007-03-02 11:39 ` Michael S. Tsirkin
@ 2007-03-03 8:21 ` Avi Kivity
2007-03-03 11:57 ` Andrew Morton
2007-03-05 8:22 ` Ingo Molnar
2007-03-05 10:23 ` Michael S. Tsirkin
2 siblings, 2 replies; 104+ messages in thread
From: Avi Kivity @ 2007-03-03 8:21 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton, git
Ingo Molnar wrote:
> Subject: [patch] KVM: T60 resume fix
> From: Ingo Molnar <mingo@elte.hu>
>
> my T60 laptop does not resume correctly due to KVM attempting to send an
> IPI to a CPU that might be down (or not up yet). (Doing so also triggers
> the send_IPI_mask_bitmask() warning in arch/i386/kernel/smp.c, line
> 732.)
>
> with this fix applied my laptop does not hang during resume.
>
> [ KVM will have to disable/enable virtualization on the CPU itself that
> goes down / comes up, not via an IPI sent from the requesting CPU. ]
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> ---
> drivers/kvm/kvm_main.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> Index: linux/drivers/kvm/kvm_main.c
> ===================================================================
> --- linux.orig/drivers/kvm/kvm_main.c
> +++ linux/drivers/kvm/kvm_main.c
> @@ -2083,12 +2083,6 @@ static int kvm_cpu_hotplug(struct notifi
> case CPU_DEAD:
> case CPU_UP_CANCELED:
> decache_vcpus_on_cpu(cpu);
> - smp_call_function_single(cpu, kvm_arch_ops->hardware_disable,
> - NULL, 0, 1);
> - break;
> - case CPU_UP_PREPARE:
> - smp_call_function_single(cpu, kvm_arch_ops->hardware_enable,
> - NULL, 0, 1);
> break;
> }
> return NOTIFY_OK;
>
That is already CPU_ONLINE in my tree (and in the pull request sent to
Linus a couple of days ago).
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-02 11:39 ` Michael S. Tsirkin
@ 2007-03-03 8:22 ` Avi Kivity
0 siblings, 0 replies; 104+ messages in thread
From: Avi Kivity @ 2007-03-03 8:22 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Andrew Morton, Adrian Bunk,
Pavel Machek, Jens Axboe, Thomas Gleixner, Linus Torvalds,
Ingo Molnar, git
Michael S. Tsirkin wrote:
>> Quoting Ingo Molnar <mingo@elte.hu>:
>> Subject: [patch] KVM: T60 resume fix
>> From: Ingo Molnar <mingo@elte.hu>
>>
>> my T60 laptop does not resume correctly due to KVM attempting to send an
>> IPI to a CPU that might be down (or not up yet). (Doing so also triggers
>> the send_IPI_mask_bitmask() warning in arch/i386/kernel/smp.c, line
>> 732.)
>>
>> with this fix applied my laptop does not hang during resume.
>>
>> [ KVM will have to disable/enable virtualization on the CPU itself that
>> goes down / comes up, not via an IPI sent from the requesting CPU. ]
>>
>> Signed-off-by: Ingo Molnar <mingo@elte.hu>
>>
>
> Since I don't normally have kvm loaded, this patch is unlikely
> to help me, is that right?
>
>
That is correct.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [linux-pm] 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-02 12:26 ` [linux-pm] " Pavel Machek
@ 2007-03-03 11:17 ` Jens Axboe
0 siblings, 0 replies; 104+ messages in thread
From: Jens Axboe @ 2007-03-03 11:17 UTC (permalink / raw)
To: Pavel Machek
Cc: Jeff Chua, Michael S. Tsirkin, linux-acpi, Ingo Molnar,
Adrian Bunk, linux-pm, Linux Kernel Mailing List
On Fri, Mar 02 2007, Pavel Machek wrote:
> On Thu 2007-03-01 11:45:35, Jeff Chua wrote:
> > On 3/1/07, Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> >
> > > with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend to RAM.
> > >
> > > On 2.6.21-rc2, after resume (when the box is accessible from network),
> > > pressing Fn/F4 again does not seem to have any effect.
> >
> > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > from RAM, can't suspend to disk. It is possible to revert all the
> > changes to ACPI and test it?
>
> As I said elsewhere in the thread, suspend/resume to RAM works ok on
> my thinkpad x60. I posted my .config there, perhaps difference is in
> it? Ingo identified KVM as possible culprit.
I'll try your .config for kicks, the problem that Ingo pin pointed is
not what is affecting me.
--
Jens Axboe
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-03 8:21 ` Avi Kivity
@ 2007-03-03 11:57 ` Andrew Morton
2007-03-03 12:07 ` Junio C Hamano
2007-03-05 8:22 ` Ingo Molnar
1 sibling, 1 reply; 104+ messages in thread
From: Andrew Morton @ 2007-03-03 11:57 UTC (permalink / raw)
To: Avi Kivity
Cc: Jens Axboe, Daniel Walker, Michal Piotrowski, Pavel, linux-pm,
List, Len, Adrian Bunk, Machek, Linux, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, git
On Sat, 03 Mar 2007 10:21:38 +0200 Avi Kivity <avi@qumranet.com> wrote:
> Ingo Molnar wrote:
> > Subject: [patch] KVM: T60 resume fix
> > From: Ingo Molnar <mingo@elte.hu>
> >
> > my T60 laptop does not resume correctly due to KVM attempting to send an
> > IPI to a CPU that might be down (or not up yet). (Doing so also triggers
> > the send_IPI_mask_bitmask() warning in arch/i386/kernel/smp.c, line
> > 732.)
> >
> > with this fix applied my laptop does not hang during resume.
> >
> > [ KVM will have to disable/enable virtualization on the CPU itself that
> > goes down / comes up, not via an IPI sent from the requesting CPU. ]
> >
> > Signed-off-by: Ingo Molnar <mingo@elte.hu>
> > ---
> > drivers/kvm/kvm_main.c | 6 ------
> > 1 file changed, 6 deletions(-)
> >
> > Index: linux/drivers/kvm/kvm_main.c
> > ===================================================================
> > --- linux.orig/drivers/kvm/kvm_main.c
> > +++ linux/drivers/kvm/kvm_main.c
> > @@ -2083,12 +2083,6 @@ static int kvm_cpu_hotplug(struct notifi
> > case CPU_DEAD:
> > case CPU_UP_CANCELED:
> > decache_vcpus_on_cpu(cpu);
> > - smp_call_function_single(cpu, kvm_arch_ops->hardware_disable,
> > - NULL, 0, 1);
> > - break;
> > - case CPU_UP_PREPARE:
> > - smp_call_function_single(cpu, kvm_arch_ops->hardware_enable,
> > - NULL, 0, 1);
> > break;
> > }
> > return NOTIFY_OK;
> >
>
> That is already CPU_ONLINE in my tree
I noticed ;)
So this mean that Ingo's bug should already be fixed there. And in rc2-mm1.
> (and in the pull request sent to
> Linus a couple of days ago).
Resend, please.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-03 11:57 ` Andrew Morton
@ 2007-03-03 12:07 ` Junio C Hamano
0 siblings, 0 replies; 104+ messages in thread
From: Junio C Hamano @ 2007-03-03 12:07 UTC (permalink / raw)
To: Andrew Morton
Cc: Daniel Walker, Michael S. Tsirkin, Michal Piotrowski, linux-pm,
Pavel, Avi Kivity, List, Linux, Machek, Jens Axboe, Len,
Thomas Gleixner, Adrian Bunk, Linus Torvalds, Ingo Molnar
Could you un-CC: git@vger.kernel.org from this thread, please?
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-01 3:45 ` Jeff Chua
2007-03-02 12:26 ` [linux-pm] " Pavel Machek
@ 2007-03-05 0:04 ` Adrian Bunk
2007-03-06 1:32 ` Jeff Chua
1 sibling, 1 reply; 104+ messages in thread
From: Adrian Bunk @ 2007-03-05 0:04 UTC (permalink / raw)
To: Jeff Chua
Cc: Michael S. Tsirkin, Linux Kernel Mailing List, Pavel Machek,
linux-pm, Ingo Molnar, lenb, linux-acpi
On Thu, Mar 01, 2007 at 11:45:35AM +0800, Jeff Chua wrote:
> On 3/1/07, Michael S. Tsirkin <mst@mellanox.co.il> wrote:
>
> >with 2.6.20, pressing Fn/F4 generates an ACPI event and triggers suspend
> >to RAM.
> >
> >On 2.6.21-rc2, after resume (when the box is accessible from network),
> >pressing Fn/F4 again does not seem to have any effect.
>
> I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> from RAM, can't suspend to disk. It is possible to revert all the
> changes to ACPI and test it?
This is with CONFIG_KVM=n?
> Jeff.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-03 8:21 ` Avi Kivity
2007-03-03 11:57 ` Andrew Morton
@ 2007-03-05 8:22 ` Ingo Molnar
2007-03-05 8:50 ` Avi Kivity
1 sibling, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 8:22 UTC (permalink / raw)
To: Avi Kivity
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton, git
* Avi Kivity <avi@qumranet.com> wrote:
> > my T60 laptop does not resume correctly due to KVM attempting to
> > send an IPI to a CPU that might be down (or not up yet). (Doing so
> > also triggers the send_IPI_mask_bitmask() warning in
> > arch/i386/kernel/smp.c, line 732.)
> >
> >with this fix applied my laptop does not hang during resume.
> >
> >[ KVM will have to disable/enable virtualization on the CPU itself
> > that goes down / comes up, not via an IPI sent from the requesting
> > CPU. ]
> That is already CPU_ONLINE in my tree (and in the pull request sent to
> Linus a couple of days ago).
that solves the resume problem - but doesnt solve the CPU_DEAD issue of
sending an IPI to an already offline CPU. Might be a better idea to do
it in CPU_DOWN_PREPARE? (and then to also add a CPU_DOWN_FAILED branch?)
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 10:07 ` Pavel Machek
@ 2007-03-05 8:42 ` Michael S. Tsirkin
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
2007-03-09 6:44 ` 2.6.21-rc1: known regressions (part 2) Pavel Machek
0 siblings, 2 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 8:42 UTC (permalink / raw)
To: Pavel Machek
Cc: Daniel Walker, Michal Piotrowski, Thomas Gleixner, Andrew Morton,
Jens Axboe, linux-pm, Ingo Molnar, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
> Quoting Pavel Machek <pavel@ucw.cz>:
> Subject: Re: 2.6.21-rc1: known regressions (part 2)
>
> Hi!
>
> > * Jens Axboe <jens.axboe@oracle.com> wrote:
> >
> > > f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, [...]
> >
> > update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
> > 01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
> > to bisect this.
>
> Strange; on my x60, suspend to ram works okay.
>
> (Resume is very slow, because disks are not spinned up properly; and
> there's something wrong with timers; console beeps take way too long).
>
> dmesg attached.
>
> That's with
>
> commit 7b965e0884cee430ffe5dc81cdb117b9316b0549
> tree 754dce6432258e0a8c3a758e13a34eb3a1d22ee1
> parent 5a39e8c6d655b4fe8305ef8cc2d9bbe782bfee5f
> author Trond Myklebust <Trond.Myklebust@netapp.com> Wed, 28 Feb 2007
> 20:13:55 -0800
> committer Linus Torvalds <torvalds@woody.linux-foundation.org> Thu, 01
> Mar 2007 14:53:39 -0800
>
> [PATCH] VM: invalidate_inode_pages2_range() should not exit early
>
> Fix invalidate_inode_pages2_range() so that it does not
> immediately exit
> just because a single page in the specified range could not be
> removed.
>
> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Pavel, I tried with your .config, and indeed the system came back to life after
2-3 minutes after I press Fn/F4, indeed the issue seems to be with the disk.
It could be that the same takes place with my original .config - maybe
I just wasn't patient enough. I'll need to re-test that.
However, I noticed that, after resume, when the system is presumably functional,
if I try to suspend to ram again, this second suspend hangs, displaying
the following on screen:
[ 17.170000] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 20
[ 17.170000] PCI: Setting latency timer of device 0000:02:00.0 to 64
[ 17.250000] e1000: 0000:02:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1) 00:16:41:5
4:6c:47
[ 17.330000] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
the crescent LED starts blinking and does not seem to stop for at lest 10 min,
I've run out of patience after that. It could be that it's just very slow again.
Pavel, did you try suspend to RAM after a successfull resume from RAM?
Under 2.6.20, the system suspends/resumes to memory within about 20 sec
any number of times.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 8:50 ` Avi Kivity
@ 2007-03-05 8:44 ` Ingo Molnar
2007-03-05 8:57 ` Ingo Molnar
0 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 8:44 UTC (permalink / raw)
To: Avi Kivity
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
* Avi Kivity <avi@qumranet.com> wrote:
> >> That is already CPU_ONLINE in my tree (and in the pull request sent
> >> to Linus a couple of days ago).
> >
> > that solves the resume problem - but doesnt solve the CPU_DEAD issue
> > of sending an IPI to an already offline CPU. Might be a better idea
> > to do it in CPU_DOWN_PREPARE? (and then to also add a
> > CPU_DOWN_FAILED branch?)
>
> Mainline now has DOWN_PREPARE and UP_CANCELED calling
> ->hardware_disable(), and ONLINE calling ->hardware_enabled(). What
> tree are you looking at?
oh, i just hand-fixed it. I'll check current-git now.
> [but I do see the need for DOWN_FAILED now. Off to find a resumable
> machine...]
yeah, both DOWN_FAILED and UP_FAILED might trigger when some other bug
prevents a resume.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 8:22 ` Ingo Molnar
@ 2007-03-05 8:50 ` Avi Kivity
2007-03-05 8:44 ` Ingo Molnar
0 siblings, 1 reply; 104+ messages in thread
From: Avi Kivity @ 2007-03-05 8:50 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
Ingo Molnar wrote:
> * Avi Kivity <avi@qumranet.com> wrote:
>
>
>>> my T60 laptop does not resume correctly due to KVM attempting to
>>> send an IPI to a CPU that might be down (or not up yet). (Doing so
>>> also triggers the send_IPI_mask_bitmask() warning in
>>> arch/i386/kernel/smp.c, line 732.)
>>>
>>> with this fix applied my laptop does not hang during resume.
>>>
>>> [ KVM will have to disable/enable virtualization on the CPU itself
>>> that goes down / comes up, not via an IPI sent from the requesting
>>> CPU. ]
>>>
>
>
>> That is already CPU_ONLINE in my tree (and in the pull request sent to
>> Linus a couple of days ago).
>>
>
> that solves the resume problem - but doesnt solve the CPU_DEAD issue of
> sending an IPI to an already offline CPU. Might be a better idea to do
> it in CPU_DOWN_PREPARE? (and then to also add a CPU_DOWN_FAILED branch?)
>
>
Mainline now has DOWN_PREPARE and UP_CANCELED calling
->hardware_disable(), and ONLINE calling ->hardware_enabled(). What
tree are you looking at?
[but I do see the need for DOWN_FAILED now. Off to find a resumable
machine...]
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 8:44 ` Ingo Molnar
@ 2007-03-05 8:57 ` Ingo Molnar
2007-03-05 9:27 ` Avi Kivity
2007-03-05 12:54 ` Michael S. Tsirkin
0 siblings, 2 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 8:57 UTC (permalink / raw)
To: Avi Kivity
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
* Ingo Molnar <mingo@elte.hu> wrote:
> > Mainline now has DOWN_PREPARE and UP_CANCELED calling
> > ->hardware_disable(), and ONLINE calling ->hardware_enabled(). What
> > tree are you looking at?
>
> oh, i just hand-fixed it. I'll check current-git now.
suspend/resume works fine now and there are no warning messages
whatsoever (with suspend simulation). Thanks Avi!
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 8:57 ` Ingo Molnar
@ 2007-03-05 9:27 ` Avi Kivity
2007-03-05 10:05 ` Ingo Molnar
2007-03-05 12:54 ` Michael S. Tsirkin
1 sibling, 1 reply; 104+ messages in thread
From: Avi Kivity @ 2007-03-05 9:27 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
Ingo Molnar wrote:
> suspend/resume works fine now and there are no warning messages
> whatsoever (with suspend simulation). Thanks Avi!
>
>
Where do I find this suspend simulation? Sounds like a great suspend
debugging tool.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 9:27 ` Avi Kivity
@ 2007-03-05 10:05 ` Ingo Molnar
2007-03-05 10:33 ` Avi Kivity
0 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 10:05 UTC (permalink / raw)
To: Avi Kivity
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
* Avi Kivity <avi@qumranet.com> wrote:
> > suspend/resume works fine now and there are no warning messages
> > whatsoever (with suspend simulation). Thanks Avi!
>
> Where do I find this suspend simulation? Sounds like a great suspend
> debugging tool.
it's just the simple hack below.
Ingo
------------------------>
Subject: [patch] suspend debugging: simulate suspend-to-RAM
From: Ingo Molnar <mingo@elte.hu>
most resume bugs are due to the kernel hanging or crashing while trying
to resume a specific device. It is extremely hard to debug such hangs
because often when the hang happens there's no console available yet.
Make debugging such bugs easier by offering a resume mode that does not
actually call into the BIOS to turn off the machine. This, in
combination with earlyprintk=serial,ttyS0,115200,keep ,
CONFIG_PM_DEBUG=y, CONFIG_DISABLE_CONSOLE_SUSPEND=y and
/sys/power/filter enables me to have a fully functional serial console
during the full suspend/resume cycle.
I debugged two suspend bugs in the -rt kernel this way already, so it's
pretty useful.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
Documentation/kernel-parameters.txt | 4 ++++
drivers/acpi/sleep/main.c | 15 ++++++++++++++-
include/linux/acpi.h | 1 +
kernel/sysctl.c | 8 ++++++++
4 files changed, 27 insertions(+), 1 deletion(-)
Index: linux/Documentation/kernel-parameters.txt
===================================================================
--- linux.orig/Documentation/kernel-parameters.txt
+++ linux/Documentation/kernel-parameters.txt
@@ -163,6 +163,10 @@ and is between 256 and 4096 characters.
acpi_osi= [HW,ACPI] empty param disables _OSI
+ acpi_simulate_suspend_to_ram
+ [KNL] Do not call into BIOS to do suspend-to-RAM
+ Format: <0/1>
+
acpi_serialize [HW,ACPI] force serialization of AML methods
acpi_skip_timer_override [HW,ACPI]
Index: linux/drivers/acpi/sleep/main.c
===================================================================
--- linux.orig/drivers/acpi/sleep/main.c
+++ linux/drivers/acpi/sleep/main.c
@@ -35,6 +35,14 @@ static u32 acpi_suspend_states[] = {
static int init_8259A_after_S1;
+/*
+ * simulate entry into the BIOS - this way the system will not
+ * be turned off for real, and the kernel's resume functionality
+ * can be debugged while still having some system capabilities
+ * left. This is especially useful in combination with /sys/power/filter.
+ */
+int acpi_simulate_suspend_to_ram;
+
/**
* acpi_pm_prepare - Do preliminary suspend work.
* @pm_state: suspend state we're entering.
@@ -91,7 +99,12 @@ static int acpi_pm_enter(suspend_state_t
break;
case PM_SUSPEND_MEM:
- do_suspend_lowlevel();
+ if (unlikely(acpi_simulate_suspend_to_ram)) {
+ printk(KERN_INFO "ACPI: simulating suspend-to-RAM: "
+ "not calling BIOS.\n");
+ } else {
+ do_suspend_lowlevel();
+ }
break;
case PM_SUSPEND_DISK:
Index: linux/include/linux/acpi.h
===================================================================
--- linux.orig/include/linux/acpi.h
+++ linux/include/linux/acpi.h
@@ -123,6 +123,7 @@ extern int pci_mmcfg_config_num;
extern int sbf_port;
extern unsigned long acpi_video_flags;
+extern int acpi_simulate_suspend_to_ram;
#else /* !CONFIG_ACPI */
Index: linux/kernel/sysctl.c
===================================================================
--- linux.orig/kernel/sysctl.c
+++ linux/kernel/sysctl.c
@@ -581,6 +581,14 @@ static ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = &proc_doulongvec_minmax,
},
+ {
+ .ctl_name = CTL_UNNUMBERED,
+ .procname = "acpi_simulate_suspend_to_ram",
+ .data = &acpi_simulate_suspend_to_ram,
+ .maxlen = sizeof (int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
#endif
#ifdef CONFIG_IA64
{
^ permalink raw reply [flat|nested] 104+ messages in thread
* SATA resume slowness, e1000 MSI warning
2007-03-05 8:42 ` Michael S. Tsirkin
@ 2007-03-05 10:11 ` Ingo Molnar
2007-03-06 5:30 ` Jeff Garzik
` (2 more replies)
2007-03-09 6:44 ` 2.6.21-rc1: known regressions (part 2) Pavel Machek
1 sibling, 3 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 10:11 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Auke Kok, Michal Piotrowski, Linus Torvalds, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Jeff Garzik, Andrew Morton
* Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > (Resume is very slow, because disks are not spinned up properly; and
> > there's something wrong with timers; console beeps take way too long).
> Pavel, I tried with your .config, and indeed the system came back to
> life after 2-3 minutes after I press Fn/F4, indeed the issue seems to
> be with the disk. It could be that the same takes place with my
> original .config - maybe I just wasn't patient enough. I'll need to
> re-test that.
the spin-up takes a few seconds here under suspend/resume simulation:
| ata1: waiting for device to spin up (7 secs)
| Restarting tasks ... done.
[5-10 seconds pass]
| ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
| ata1.00: configured for UDMA/100
| SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
| sda: Write Protect is off
| sda: Mode Sense: 00 3a 00 00
| SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
with real resume it takes even longer time - but i dont see where the
delays come from in that case - i suspect it's SATA.
i'm also getting this WARN_ON() from e1000:
BUG: at drivers/pci/msi.c:611 pci_enable_msi()
[<c01061bd>] show_trace_log_lvl+0x19/0x2e
[<c01062b6>] show_trace+0x12/0x14
[<c01062cc>] dump_stack+0x14/0x16
[<c024fcc4>] pci_enable_msi+0x6d/0x203
[<c02b709e>] e1000_request_irq+0x2e/0xe2
[<c02bb742>] e1000_resume+0x7f/0xef
[<c0249a68>] pci_device_resume+0x1a/0x44
[<c02b39ec>] resume_device+0xf7/0x16f
[<c02b3adb>] dpm_resume+0x77/0xcb
[<c02b3b69>] device_resume+0x3a/0x51
[<c014e669>] enter_state+0x193/0x1bb
[<c014e712>] state_store+0x81/0x97
[<c01b68bc>] subsys_attr_store+0x20/0x25
[<c01b6feb>] sysfs_write_file+0xce/0xf6
[<c017e16b>] vfs_write+0xb1/0x13a
[<c017e899>] sys_write+0x3d/0x61
[<c0105220>] syscall_call+0x7/0xb
seems harmless because it seems to work fine.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-02 10:22 ` [patch] KVM: T60 resume fix Ingo Molnar
2007-03-02 11:39 ` Michael S. Tsirkin
2007-03-03 8:21 ` Avi Kivity
@ 2007-03-05 10:23 ` Michael S. Tsirkin
2007-03-05 10:29 ` Ingo Molnar
2 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 10:23 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Thomas Gleixner, Linus Torvalds, Andrew Morton, git
> with this fix applied my laptop does not hang during resume.
On the off chance that this is relevant, could you post
your .config please?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 10:23 ` Michael S. Tsirkin
@ 2007-03-05 10:29 ` Ingo Molnar
0 siblings, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 10:29 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Linus Torvalds, Jens Axboe, Pavel Machek, Adrian Bunk,
Andrew Morton, Linux Kernel Mailing List, Thomas Gleixner,
linux-pm, Michal Piotrowski, Daniel Walker, Len Brown, git,
Avi Kivity
* Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > with this fix applied my laptop does not hang during resume.
>
> On the off chance that this is relevant, could you post your .config
> please?
sure - find it below.
Ingo
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21
# Mon Mar 5 11:15:42 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_ASYNC_SUPPORT=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
# CONFIG_UTS_NS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
# CONFIG_IKCONFIG is not set
CONFIG_CPUSETS=y
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
#
# Block layer
#
CONFIG_BLOCK=y
CONFIG_LBD=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_LSF=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_SMP=y
# CONFIG_X86_PC is not set
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
CONFIG_X86_GENERICARCH=y
# CONFIG_X86_ES7000 is not set
CONFIG_PARAVIRT=y
CONFIG_VMI=y
CONFIG_X86_CYCLONE_TIMER=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
CONFIG_M686=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MCORE2 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_PPRO_FENCE=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_NR_CPUS=32
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
CONFIG_TOSHIBA=m
CONFIG_I8K=m
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_EFI_VARS=y
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_HIGHPTE is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_EFI=y
# CONFIG_IRQBALANCE is not set
CONFIG_BOOT_IOREMAP=y
# CONFIG_SECCOMP is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
CONFIG_PM_DEBUG=y
CONFIG_DISABLE_CONSOLE_SUSPEND=y
CONFIG_PM_TRACE=y
CONFIG_PM_SYSFS_DEPRECATED=y
CONFIG_SOFTWARE_SUSPEND=y
CONFIG_PM_STD_PARTITION=""
CONFIG_SUSPEND_SMP=y
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=m
# CONFIG_ACPI_BAY is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_IBM=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_ACPI_BLACKLIST_YEAR=1999
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_SBS=m
#
# APM (Advanced Power Management) BIOS Support
#
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_GX_SUSPMOD is not set
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_SMI=y
CONFIG_X86_P4_CLOCKMOD=m
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
CONFIG_X86_LONGRUN=y
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
CONFIG_PCIEAER=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_K8_NB=y
#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
CONFIG_CARDBUS=y
#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
CONFIG_PD6729=m
CONFIG_I82092=m
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=y
#
# PCI Hotplug Support
#
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_FAKE=m
CONFIG_HOTPLUG_PCI_COMPAQ=m
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
CONFIG_HOTPLUG_PCI_IBM=m
CONFIG_HOTPLUG_PCI_ACPI=m
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_DEFAULT_BIC=y
# CONFIG_DEFAULT_CUBIC is not set
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="bic"
CONFIG_TCP_MD5SIG=y
#
# IP: Virtual Server Configuration
#
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_MULTIPLE_TABLES is not set
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK_ENABLED=m
CONFIG_NF_CONNTRACK_SUPPORT=y
# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AH=m
# CONFIG_IP6_NF_MATCH_MH is not set
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
#
# DECnet: Netfilter Configuration
#
# CONFIG_DECNET_NF_GRABULATOR is not set
#
# Bridge: Netfilter Configuration
#
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
#
# DCCP Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_ACKVEC=y
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP_CCID2=m
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=m
CONFIG_IP_DCCP_TFRC_LIB=m
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_CCID3_RTO=100
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
#
# TIPC Configuration (EXPERIMENTAL)
#
CONFIG_TIPC=m
# CONFIG_TIPC_ADVANCED is not set
# CONFIG_TIPC_DEBUG is not set
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not set
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_DECNET_ROUTER=y
CONFIG_LLC=y
# CONFIG_LLC2 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
# CONFIG_LTPC is not set
# CONFIG_COPS is not set
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
CONFIG_WAN_ROUTER=m
#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_NET_SCH_CLK_JIFFIES is not set
CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
# CONFIG_NET_SCH_CLK_CPU is not set
#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m
#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_ESTIMATOR=y
#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
CONFIG_IRDA=m
#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m
#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TOIM3232_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m
#
# Old SIR device drivers
#
#
# Old Serial dongle support
#
#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_NSC_FIR=m
CONFIG_WINBOND_FIR=m
CONFIG_TOSHIBA_FIR=m
CONFIG_SMC_IRCC_FIR=m
CONFIG_ALI_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_MCS_FIR=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
CONFIG_IEEE80211_SOFTMAC_DEBUG=y
CONFIG_WIRELESS_EXT=y
CONFIG_FIB_RULES=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
#
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
CONFIG_RFD_FTL=m
# CONFIG_SSFDC is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m
# CONFIG_MTD_OBSOLETE_CHIPS is not set
#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
CONFIG_MTD_TS5500=m
# CONFIG_MTD_SBC_GXX is not set
# CONFIG_MTD_AMD76XROM is not set
# CONFIG_MTD_ICHXROM is not set
# CONFIG_MTD_ESB2ROM is not set
# CONFIG_MTD_CK804XROM is not set
CONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not set
# CONFIG_MTD_L440GX is not set
CONFIG_MTD_PCI=m
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
# CONFIG_MTD_NAND_CAFE is not set
CONFIG_MTD_NAND_CS553X=m
CONFIG_MTD_NAND_NANDSIM=m
#
# OneNAND Flash Device Drivers
#
# CONFIG_MTD_ONENAND is not set
#
# Parallel port support
#
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
CONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not set
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE=m
#
# Parallel IDE high-level drivers
#
CONFIG_PARIDE_PD=m
CONFIG_PARIDE_PCD=m
CONFIG_PARIDE_PF=m
CONFIG_PARIDE_PT=m
CONFIG_PARIDE_PG=m
#
# Parallel IDE protocol modules
#
CONFIG_PARIDE_ATEN=m
CONFIG_PARIDE_BPCK=m
CONFIG_PARIDE_BPCK6=m
CONFIG_PARIDE_COMM=m
CONFIG_PARIDE_DSTR=m
CONFIG_PARIDE_FIT2=m
CONFIG_PARIDE_FIT3=m
CONFIG_PARIDE_EPAT=m
CONFIG_PARIDE_EPATC8=y
CONFIG_PARIDE_EPIA=m
CONFIG_PARIDE_FRIQ=m
CONFIG_PARIDE_FRPW=m
CONFIG_PARIDE_KBIC=m
CONFIG_PARIDE_KTTI=m
CONFIG_PARIDE_ON20=m
CONFIG_PARIDE_ON26=m
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=y
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_UB=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_RAM_BLOCKSIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
#
# Misc devices
#
CONFIG_IBM_ASM=m
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ASUS_LAPTOP is not set
CONFIG_MSI_LAPTOP=m
# CONFIG_SONY_LAPTOP is not set
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=m
# CONFIG_BLK_DEV_DELKIN is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_BLK_DEV_IDEACPI is not set
CONFIG_IDE_TASK_IOCTL=y
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_CMD640_ENHANCED=y
CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_AEC62XX=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
# CONFIG_BLK_DEV_CY82C693 is not set
CONFIG_BLK_DEV_CS5520=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_CS5535=y
CONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=y
CONFIG_BLK_DEV_JMICRON=m
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
CONFIG_BLK_DEV_IT821X=y
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
# CONFIG_PDC202XX_BURST is not set
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_TGT=m
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not set
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
#
# SCSI low-level drivers
#
CONFIG_ISCSI_TCP=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_3W_9XXX=m
# CONFIG_SCSI_7000FASST is not set
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_AHA1542=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=1000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=y
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=1000
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC94XX=y
# CONFIG_AIC94XX_DEBUG is not set
# CONFIG_SCSI_DPT_I2O is not set
CONFIG_SCSI_ADVANSYS=m
# CONFIG_SCSI_IN2000 is not set
CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_OMIT_FLASHPOINT is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
# CONFIG_SCSI_NCR53C406A is not set
CONFIG_SCSI_STEX=m
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA_FC=m
CONFIG_SCSI_QLA_ISCSI=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SYM53C416 is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
CONFIG_SCSI_SRP=m
#
# PCMCIA SCSI adapter support
#
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_SATA_AHCI=y
CONFIG_SATA_SVW=y
CONFIG_ATA_PIIX=y
CONFIG_SATA_MV=y
CONFIG_SATA_NV=y
CONFIG_PDC_ADMA=y
CONFIG_SATA_QSTOR=y
CONFIG_SATA_PROMISE=y
CONFIG_SATA_SX4=y
CONFIG_SATA_SIL=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_SIS=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y
# CONFIG_SATA_INIC162X is not set
CONFIG_SATA_INTEL_COMBINED=y
CONFIG_SATA_ACPI=y
CONFIG_PATA_ALI=y
CONFIG_PATA_AMD=y
CONFIG_PATA_ARTOP=y
CONFIG_PATA_ATIIXP=y
CONFIG_PATA_CMD64X=y
CONFIG_PATA_CS5520=y
CONFIG_PATA_CS5530=y
CONFIG_PATA_CS5535=y
CONFIG_PATA_CYPRESS=y
CONFIG_PATA_EFAR=y
CONFIG_ATA_GENERIC=y
CONFIG_PATA_HPT366=y
CONFIG_PATA_HPT37X=y
CONFIG_PATA_HPT3X2N=y
CONFIG_PATA_HPT3X3=y
CONFIG_PATA_ISAPNP=y
CONFIG_PATA_IT821X=y
# CONFIG_PATA_IT8213 is not set
CONFIG_PATA_JMICRON=y
CONFIG_PATA_LEGACY=m
CONFIG_PATA_TRIFLEX=y
CONFIG_PATA_MARVELL=y
CONFIG_PATA_MPIIX=y
CONFIG_PATA_OLDPIIX=y
CONFIG_PATA_NETCELL=y
CONFIG_PATA_NS87410=y
CONFIG_PATA_OPTI=y
CONFIG_PATA_OPTIDMA=y
CONFIG_PATA_PCMCIA=y
CONFIG_PATA_PDC_OLD=y
CONFIG_PATA_QDI=y
CONFIG_PATA_RADISYS=y
CONFIG_PATA_RZ1000=y
CONFIG_PATA_SC1200=y
CONFIG_PATA_SERVERWORKS=y
CONFIG_PATA_PDC2027X=y
CONFIG_PATA_SIL680=y
CONFIG_PATA_SIS=y
CONFIG_PATA_VIA=y
CONFIG_PATA_WINBOND=y
CONFIG_PATA_WINBOND_VLB=y
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_RAID5_RESHAPE=y
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_EMC=m
#
# Fusion MPT device support
#
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
#
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=m
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
#
# Device Drivers
#
CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m
#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
#
# I2O device support
#
CONFIG_I2O=m
# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=m
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
#
# Macintosh device drivers
#
# CONFIG_MAC_EMUMOUSEBTN is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_IFB=m
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
CONFIG_NET_SB1000=m
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#
CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_FIXED_PHY=m
CONFIG_FIXED_MII_10_FDX=y
CONFIG_FIXED_MII_100_FDX=y
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NET_VENDOR_3COM=y
# CONFIG_EL1 is not set
# CONFIG_EL2 is not set
# CONFIG_ELPLUS is not set
# CONFIG_EL16 is not set
CONFIG_EL3=m
# CONFIG_3C515 is not set
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
# CONFIG_LANCE is not set
CONFIG_NET_VENDOR_SMC=y
# CONFIG_WD80x3 is not set
CONFIG_ULTRA=m
# CONFIG_SMC9194 is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
CONFIG_NET_ISA=y
# CONFIG_E2100 is not set
CONFIG_EWRK3=m
# CONFIG_EEXPRESS is not set
# CONFIG_EEXPRESS_PRO is not set
# CONFIG_HPLAN_PLUS is not set
# CONFIG_HPLAN is not set
# CONFIG_LP486E is not set
# CONFIG_ETH16I is not set
CONFIG_NE2000=m
# CONFIG_ZNET is not set
# CONFIG_SEEQ8005 is not set
CONFIG_NET_PCI=y
CONFIG_PCNET32=m
CONFIG_PCNET32_NAPI=y
CONFIG_AMD8111_ETH=m
CONFIG_AMD8111E_NAPI=y
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_ADAPTEC_STARFIRE_NAPI=y
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
CONFIG_B44=m
CONFIG_FORCEDETH=y
CONFIG_FORCEDETH_NAPI=y
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NE2K_PCI=m
CONFIG_8139CP=y
CONFIG_8139TOO=y
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_SIS900=m
CONFIG_EPIC100=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_TLAN=m
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_RHINE_NAPI=y
# CONFIG_SC92031 is not set
CONFIG_NET_POCKET=y
CONFIG_ATP=m
CONFIG_DE600=m
CONFIG_DE620=m
#
# Ethernet (1000 Mbit)
#
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=y
CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
CONFIG_R8169_NAPI=y
CONFIG_R8169_VLAN=y
CONFIG_SIS190=m
CONFIG_SKGE=y
CONFIG_SKY2=m
# CONFIG_SK98LIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=y
CONFIG_BNX2=m
CONFIG_QLA3XXX=m
# CONFIG_ATL1 is not set
#
# Ethernet (10000 Mbit)
#
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1_NAPI=y
# CONFIG_CHELSIO_T3 is not set
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
CONFIG_MYRI10GE=m
CONFIG_NETXEN_NIC=m
#
# Token Ring devices
#
CONFIG_TR=y
# CONFIG_IBMTR is not set
CONFIG_IBMOL=m
CONFIG_IBMLS=m
CONFIG_3C359=m
# CONFIG_TMS380TR is not set
# CONFIG_SMCTR is not set
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
CONFIG_NET_WIRELESS_RTNETLINK=y
#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
# CONFIG_WAVELAN is not set
CONFIG_PCMCIA_WAVELAN=m
CONFIG_PCMCIA_NETWAVE=m
#
# Wireless 802.11 Frequency Hopping cards support
#
# CONFIG_PCMCIA_RAYCS is not set
#
# Wireless 802.11b ISA/PCI cards support
#
CONFIG_IPW2100=m
CONFIG_IPW2100_MONITOR=y
# CONFIG_IPW2100_DEBUG is not set
CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_AIRO=m
CONFIG_HERMES=m
CONFIG_PLX_HERMES=m
CONFIG_TMD_HERMES=m
CONFIG_NORTEL_HERMES=m
CONFIG_PCI_HERMES=m
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m
#
# Wireless 802.11b Pcmcia/Cardbus cards support
#
CONFIG_PCMCIA_HERMES=m
CONFIG_PCMCIA_SPECTRUM=m
CONFIG_AIRO_CS=m
CONFIG_PCMCIA_ATMEL=m
CONFIG_PCMCIA_WL3501=m
#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
CONFIG_PRISM54=m
CONFIG_USB_ZD1201=m
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
CONFIG_HOSTAP_CS=m
CONFIG_BCM43XX=m
CONFIG_BCM43XX_DEBUG=y
CONFIG_BCM43XX_DMA=y
CONFIG_BCM43XX_PIO=y
CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
# CONFIG_BCM43XX_DMA_MODE is not set
# CONFIG_BCM43XX_PIO_MODE is not set
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_NET_WIRELESS=y
#
# PCMCIA network device support
#
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_AXNET=m
CONFIG_PCMCIA_IBMTR=m
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# ATM drivers
#
# CONFIG_ATM_DUMMY is not set
CONFIG_ATM_TCP=m
CONFIG_ATM_LANAI=m
CONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not set
CONFIG_ATM_FIRESTREAM=m
# CONFIG_ATM_ZATM is not set
CONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
CONFIG_ATM_IDT77252=m
# CONFIG_ATM_IDT77252_DEBUG is not set
# CONFIG_ATM_IDT77252_RCV_ALL is not set
CONFIG_ATM_IDT77252_USE_SUNI=y
CONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not set
CONFIG_ATM_HORIZON=m
# CONFIG_ATM_HORIZON_DEBUG is not set
# CONFIG_ATM_IA is not set
CONFIG_ATM_FORE200E_MAYBE=m
# CONFIG_ATM_FORE200E_PCA is not set
CONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not set
CONFIG_FDDI=y
# CONFIG_DEFXX is not set
CONFIG_SKFP=m
# CONFIG_HIPPI is not set
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not set
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
CONFIG_PPPOATM=m
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=m
CONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not set
CONFIG_NET_FC=y
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
CONFIG_ISDN=m
#
# Old ISDN4Linux
#
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_IPPP_FILTER=y
# CONFIG_ISDN_PPP_BSDCOMP is not set
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y
#
# ISDN feature submodules
#
CONFIG_ISDN_DIVERSION=m
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#
CONFIG_ISDN_DRV_HISAX=m
#
# D-channel protocol features
#
CONFIG_HISAX_EURO=y
CONFIG_DE_AOC=y
CONFIG_HISAX_NO_SENDCOMPLETE=y
CONFIG_HISAX_NO_LLC=y
CONFIG_HISAX_NO_KEYPAD=y
CONFIG_HISAX_1TR6=y
CONFIG_HISAX_NI1=y
CONFIG_HISAX_MAX_CARDS=8
#
# HiSax supported cards
#
# CONFIG_HISAX_16_0 is not set
CONFIG_HISAX_16_3=y
CONFIG_HISAX_TELESPCI=y
CONFIG_HISAX_S0BOX=y
# CONFIG_HISAX_AVM_A1 is not set
CONFIG_HISAX_FRITZPCI=y
CONFIG_HISAX_AVM_A1_PCMCIA=y
CONFIG_HISAX_ELSA=y
# CONFIG_HISAX_IX1MICROR2 is not set
CONFIG_HISAX_DIEHLDIVA=y
# CONFIG_HISAX_ASUSCOM is not set
# CONFIG_HISAX_TELEINT is not set
# CONFIG_HISAX_HFCS is not set
CONFIG_HISAX_SEDLBAUER=y
# CONFIG_HISAX_SPORTSTER is not set
# CONFIG_HISAX_MIC is not set
CONFIG_HISAX_NETJET=y
CONFIG_HISAX_NETJET_U=y
CONFIG_HISAX_NICCY=y
# CONFIG_HISAX_ISURF is not set
# CONFIG_HISAX_HSTSAPHIR is not set
CONFIG_HISAX_BKM_A4T=y
CONFIG_HISAX_SCT_QUADRO=y
CONFIG_HISAX_GAZEL=y
CONFIG_HISAX_HFC_PCI=y
CONFIG_HISAX_W6692=y
CONFIG_HISAX_HFC_SX=y
CONFIG_HISAX_ENTERNOW_PCI=y
# CONFIG_HISAX_DEBUG is not set
#
# HiSax PCMCIA card service modules
#
CONFIG_HISAX_SEDLBAUER_CS=m
CONFIG_HISAX_ELSA_CS=m
CONFIG_HISAX_AVM_A1_CS=m
CONFIG_HISAX_TELES_CS=m
#
# HiSax sub driver modules
#
CONFIG_HISAX_ST5481=m
# CONFIG_HISAX_HFCUSB is not set
CONFIG_HISAX_HFC4S8S=m
CONFIG_HISAX_FRITZ_PCIPNP=m
CONFIG_HISAX_HDLC=y
#
# Active cards
#
# CONFIG_ISDN_DRV_ICN is not set
# CONFIG_ISDN_DRV_PCBIT is not set
# CONFIG_ISDN_DRV_SC is not set
# CONFIG_ISDN_DRV_ACT2000 is not set
#
# Siemens Gigaset
#
CONFIG_ISDN_DRV_GIGASET=m
CONFIG_GIGASET_BASE=m
CONFIG_GIGASET_M105=m
# CONFIG_GIGASET_M101 is not set
# CONFIG_GIGASET_DEBUG is not set
# CONFIG_GIGASET_UNDOCREQ is not set
#
# CAPI subsystem
#
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#
#
# Active AVM cards
#
CONFIG_CAPI_AVM=y
# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
CONFIG_ISDN_DRV_AVMB1_B1PCI=m
CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
CONFIG_ISDN_DRV_AVMB1_T1PCI=m
CONFIG_ISDN_DRV_AVMB1_C4=m
#
# Active Eicon DIVA Server cards
#
CONFIG_CAPI_EICON=y
CONFIG_ISDN_DIVAS=m
CONFIG_ISDN_DIVAS_BRIPCI=y
CONFIG_ISDN_DIVAS_PRIPCI=y
CONFIG_ISDN_DIVAS_DIVACAPI=m
CONFIG_ISDN_DIVAS_USERIDI=m
CONFIG_ISDN_DIVAS_MAINT=m
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_KEYBOARD_STOWAWAY=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
CONFIG_MOUSE_VSXXXAA=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
CONFIG_INPUT_WISTRON_BTNS=m
# CONFIG_INPUT_ATLAS_BTNS is not set
CONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
CONFIG_GAMEPORT_L4=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not set
# CONFIG_ROCKETPORT is not set
CONFIG_CYCLADES=m
# CONFIG_CYZ_INTR is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_ESPSERIAL is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
CONFIG_MOXA_SMARTIO_NEW=m
# CONFIG_ISI is not set
CONFIG_SYNCLINK=m
CONFIG_SYNCLINKMP=m
CONFIG_SYNCLINK_GT=m
CONFIG_N_HDLC=m
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not set
# CONFIG_STALDRV is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_FOURPORT is not set
# CONFIG_SERIAL_8250_ACCENT is not set
# CONFIG_SERIAL_8250_BOCA is not set
CONFIG_SERIAL_8250_EXAR_ST16C554=m
# CONFIG_SERIAL_8250_HUB6 is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=m
CONFIG_LP_CONSOLE=y
CONFIG_PPDEV=m
CONFIG_TIPAR=m
#
# IPMI
#
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
# CONFIG_SC520_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
CONFIG_IBMASR=m
# CONFIG_WAFER_WDT is not set
CONFIG_I6300ESB_WDT=m
CONFIG_I8XX_TCO=m
CONFIG_ITCO_WDT=m
CONFIG_ITCO_VENDOR_SUPPORT=y
# CONFIG_SC1200_WDT is not set
CONFIG_PC87413_WDT=m
# CONFIG_60XX_WDT is not set
# CONFIG_SBC8360_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
CONFIG_W83627HF_WDT=m
CONFIG_W83697HF_WDT=m
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
#
# ISA-based Watchdog Cards
#
# CONFIG_PCWATCHDOG is not set
# CONFIG_MIXCOMWD is not set
# CONFIG_WDT is not set
#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m
CONFIG_WDT_501_PCI=y
#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_NVRAM=y
CONFIG_RTC=y
CONFIG_DTLK=m
CONFIG_R3964=m
# CONFIG_APPLICOM is not set
CONFIG_SONYPI=m
CONFIG_AGP=y
CONFIG_AGP_ALI=y
CONFIG_AGP_ATI=y
CONFIG_AGP_AMD=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_NVIDIA=y
CONFIG_AGP_SIS=y
CONFIG_AGP_SWORKS=y
CONFIG_AGP_VIA=y
CONFIG_AGP_EFFICEON=y
CONFIG_DRM=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_I915=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
CONFIG_CARDMAN_4000=m
CONFIG_CARDMAN_4040=m
CONFIG_MWAVE=m
CONFIG_PC8736x_GPIO=m
CONFIG_NSC_GPIO=m
CONFIG_CS5535_GPIO=m
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=m
#
# TPM devices
#
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
# CONFIG_TELCLOCK is not set
#
# I2C support
#
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
CONFIG_I2C_ALI1535=m
CONFIG_I2C_ALI1563=m
CONFIG_I2C_ALI15X3=m
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_ISA=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
# CONFIG_I2C_PASEMI is not set
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
# CONFIG_SCx200_ACB is not set
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_STUB=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_VOODOO3=m
CONFIG_I2C_PCA_ISA=m
#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
CONFIG_W1=m
CONFIG_W1_CON=y
#
# 1-wire Bus Masters
#
CONFIG_W1_MASTER_MATROX=m
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
#
# Hardware Monitoring support
#
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
# CONFIG_SENSORS_ADM1029 is not set
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
#
# Video Capture Adapters
#
#
# Video Capture Adapters
#
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9840=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_TEA6415C=m
CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_KS0127=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_SAA7110=m
CONFIG_VIDEO_SAA7111=m
CONFIG_VIDEO_SAA7114=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
CONFIG_VIDEO_VPX3220=m
CONFIG_VIDEO_CX25840=m
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_BT848_DVB=y
CONFIG_VIDEO_SAA6588=m
# CONFIG_VIDEO_PMS is not set
CONFIG_VIDEO_BWQCAM=m
CONFIG_VIDEO_CQCAM=m
CONFIG_VIDEO_W9966=m
CONFIG_VIDEO_CPIA=m
CONFIG_VIDEO_CPIA_PP=m
CONFIG_VIDEO_CPIA_USB=m
CONFIG_VIDEO_CPIA2=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_TUNER_3036=m
CONFIG_VIDEO_STRADIS=m
CONFIG_VIDEO_ZORAN_ZR36060=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_BUZ=m
CONFIG_VIDEO_ZORAN_DC10=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN_AVS6EYES=m
CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CAFE_CCIC=m
#
# V4L USB devices
#
CONFIG_VIDEO_PVRUSB2=m
# CONFIG_VIDEO_PVRUSB2_29XXX is not set
CONFIG_VIDEO_PVRUSB2_24XXX=y
CONFIG_VIDEO_PVRUSB2_SYSFS=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_USBVISION=m
CONFIG_VIDEO_USBVIDEO=m
CONFIG_USB_VICAM=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
CONFIG_USB_QUICKCAM_MESSENGER=m
CONFIG_USB_ET61X251=m
CONFIG_VIDEO_OVCAMCHIP=m
CONFIG_USB_W9968CF=m
CONFIG_USB_OV511=m
CONFIG_USB_SE401=m
CONFIG_USB_SN9C102=m
CONFIG_USB_STV680=m
CONFIG_USB_ZC0301=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
#
# Radio Adapters
#
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_RTRACK is not set
# CONFIG_RADIO_RTRACK2 is not set
# CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_GEMTEK is not set
CONFIG_RADIO_GEMTEK_PCI=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_MAESTRO=m
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_SF16FMR2 is not set
# CONFIG_RADIO_TERRATEC is not set
# CONFIG_RADIO_TRUST is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
CONFIG_USB_DSBR=m
#
# Digital Video Broadcasting Devices
#
CONFIG_DVB=y
CONFIG_DVB_CORE=m
# CONFIG_DVB_CORE_ATTACH is not set
#
# Supported SAA7146 based PCI Adapters
#
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_BUDGET_PATCH=m
#
# Supported USB Adapters
#
CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_DIBUSB_MB=m
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
CONFIG_DVB_USB_DIBUSB_MC=m
CONFIG_DVB_USB_DIB0700=m
CONFIG_DVB_USB_UMT_010=m
CONFIG_DVB_USB_CXUSB=m
# CONFIG_DVB_USB_M920X is not set
# CONFIG_DVB_USB_GL861 is not set
# CONFIG_DVB_USB_AU6610 is not set
CONFIG_DVB_USB_DIGITV=m
CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_USB_VP702X=m
CONFIG_DVB_USB_GP8PSK=m
CONFIG_DVB_USB_NOVA_T_USB2=m
CONFIG_DVB_USB_TTUSB2=m
CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_DVB_CINERGYT2=m
CONFIG_DVB_CINERGYT2_TUNING=y
CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
#
# Supported FlexCopII (B2C2) Adapters
#
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
#
# Supported BT878 Adapters
#
CONFIG_DVB_BT8XX=m
#
# Supported Pluto2 Adapters
#
CONFIG_DVB_PLUTO2=m
#
# Supported DVB Frontends
#
#
# Customise DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
#
# DVB-S (satellite) frontends
#
CONFIG_DVB_STV0299=m
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24123=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_MT312=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_S5H1420=m
CONFIG_DVB_TDA10086=m
#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_L64781=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_MT352=m
CONFIG_DVB_ZL10353=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m
#
# DVB-C (cable) frontends
#
CONFIG_DVB_VES1820=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_STV0297=m
#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
CONFIG_DVB_NXT200X=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m
#
# Tuners/PLL support
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TDA826X=m
# CONFIG_DVB_TUNER_QT1010 is not set
CONFIG_DVB_TUNER_MT2060=m
CONFIG_DVB_TUNER_LGH06XF=m
#
# Miscellaneous devices
#
CONFIG_DVB_LNBP21=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_TUA6100=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_USB_DABUSB=m
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_PROGEAR is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frambuffer hardware drivers
#
CONFIG_FB_CIRRUS=m
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=m
CONFIG_FB_VESA=y
# CONFIG_FB_IMAC is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
CONFIG_FB_NVIDIA_BACKLIGHT=y
CONFIG_FB_RIVA=m
# CONFIG_FB_RIVA_I2C is not set
# CONFIG_FB_RIVA_DEBUG is not set
CONFIG_FB_RIVA_BACKLIGHT=y
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
CONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not set
CONFIG_FB_INTEL_I2C=y
CONFIG_FB_MATROX=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_MATROX_MULTIHEAD=y
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=m
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY=m
CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GENERIC_LCD=y
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y
# CONFIG_FB_S3 is not set
CONFIG_FB_SAVAGE=m
CONFIG_FB_SAVAGE_I2C=y
CONFIG_FB_SAVAGE_ACCEL=y
# CONFIG_FB_SIS is not set
CONFIG_FB_NEOMAGIC=m
CONFIG_FB_KYRO=m
CONFIG_FB_3DFX=m
CONFIG_FB_3DFX_ACCEL=y
CONFIG_FB_VOODOO1=m
CONFIG_FB_CYBLA=m
CONFIG_FB_TRIDENT=m
CONFIG_FB_TRIDENT_ACCEL=y
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
#
# Logo configuration
#
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
CONFIG_SOUND=m
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_OPL4_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
# CONFIG_SND_SERIAL_U16550 is not set
CONFIG_SND_MPU401=m
# CONFIG_SND_PORTMAN2X4 is not set
#
# ISA devices
#
CONFIG_SND_CS4231_LIB=m
CONFIG_SND_ADLIB=m
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
CONFIG_SND_CS4236=m
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
CONFIG_SND_ES18XX=m
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
CONFIG_SND_OPL3SA2=m
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
CONFIG_SND_MIRO=m
# CONFIG_SND_SB8 is not set
CONFIG_SND_SB16=m
CONFIG_SND_SBAWE=m
# CONFIG_SND_SB16_CSP is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set
#
# PCI devices
#
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS5535AUDIO=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_FM801_TEA575X=m
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_AC97_POWER_SAVE=y
#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
#
# PCMCIA devices
#
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set
#
# SoC audio support
#
# CONFIG_SND_SOC is not set
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
#
# HID Devices
#
CONFIG_HID=m
# CONFIG_HID_DEBUG is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_CS=m
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y
#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_THRUSTMASTER_FF=y
CONFIG_ZEROPLUS_FF=y
CONFIG_USB_HIDDEV=y
#
# USB HID Boot Protocol drivers
#
CONFIG_USB_KBD=m
CONFIG_USB_MOUSE=m
CONFIG_USB_AIPTEK=m
CONFIG_USB_WACOM=m
CONFIG_USB_ACECAD=m
CONFIG_USB_KBTAB=m
CONFIG_USB_POWERMATE=m
CONFIG_USB_TOUCHSCREEN=m
CONFIG_USB_TOUCHSCREEN_EGALAX=y
CONFIG_USB_TOUCHSCREEN_PANJIT=y
CONFIG_USB_TOUCHSCREEN_3M=y
CONFIG_USB_TOUCHSCREEN_ITM=y
CONFIG_USB_TOUCHSCREEN_ETURBO=y
CONFIG_USB_TOUCHSCREEN_GUNZE=y
CONFIG_USB_TOUCHSCREEN_DMC_TSC10=y
# CONFIG_USB_YEALINK is not set
CONFIG_USB_XPAD=m
CONFIG_USB_ATI_REMOTE=m
CONFIG_USB_ATI_REMOTE2=m
CONFIG_USB_KEYSPAN_REMOTE=m
CONFIG_USB_APPLETOUCH=m
# CONFIG_USB_GTCO is not set
#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
#
# USB Network Adapters
#
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET_MII=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
# CONFIG_USB_NET_DM9601 is not set
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_MON=y
#
# USB port drivers
#
CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP2101=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
# CONFIG_USB_BERRY_CHARGE is not set
CONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
CONFIG_USB_PHIDGET=m
CONFIG_USB_PHIDGETKIT=m
CONFIG_USB_PHIDGETMOTORCONTROL=m
CONFIG_USB_PHIDGETSERVO=m
CONFIG_USB_IDMOUSE=m
CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
CONFIG_USB_TRANCEVIBRATOR=m
# CONFIG_USB_IOWARRIOR is not set
CONFIG_USB_TEST=m
#
# USB DSL modem support
#
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_BLOCK=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
#
# LED devices
#
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
#
# LED drivers
#
#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# InfiniBand support
#
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
# CONFIG_INFINIBAND_AMSO1100 is not set
CONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_CM is not set
CONFIG_INFINIBAND_IPOIB_DEBUG=y
CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_ISER=m
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
CONFIG_EDAC=y
#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82860=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y
#
# Real Time Clock
#
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=m
CONFIG_RTC_INTF_PROC=m
CONFIG_RTC_INTF_DEV=m
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
#
# RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_PCF8563=m
CONFIG_RTC_DRV_PCF8583=m
CONFIG_RTC_DRV_RS5C372=m
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_TEST is not set
CONFIG_RTC_DRV_V3020=m
#
# DMA Engine support
#
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
CONFIG_NET_DMA=y
#
# DMA Devices
#
CONFIG_INTEL_IOATDMA=m
#
# Auxiliary Display support
#
# CONFIG_KS0108 is not set
#
# Virtualization
#
CONFIG_KVM=y
CONFIG_KVM_INTEL=y
CONFIG_KVM_AMD=y
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
CONFIG_GFS2_FS=m
CONFIG_GFS2_FS_LOCKING_NOLOCK=m
CONFIG_GFS2_FS_LOCKING_DLM=m
CONFIG_OCFS2_FS=m
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
CONFIG_AFFS_FS=m
CONFIG_ECRYPT_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_SUMMARY=y
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
# CONFIG_HPFS_FS is not set
CONFIG_QNX4FS_FS=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
CONFIG_CODA_FS=m
# CONFIG_CODA_FS_OLD_API is not set
# CONFIG_AFS_FS is not set
CONFIG_9P_FS=m
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
CONFIG_KARMA_PARTITION=y
CONFIG_EFI_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
#
# Distributed Lock Manager
#
CONFIG_DLM=m
CONFIG_DLM_TCP=y
# CONFIG_DLM_SCTP is not set
CONFIG_DLM_DEBUG=y
#
# Instrumentation Support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_KPROBES=y
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_LOG_BUF_SHIFT=20
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SLAB_LEAK=y
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
CONFIG_RT_MUTEX_TESTER=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_DEBUG_LOCKDEP is not set
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_LIST=y
CONFIG_FRAME_POINTER=y
# CONFIG_FORCED_INLINING is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_LKDTM is not set
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
#
# Page alloc debug is incompatible with Software Suspend on i386
#
CONFIG_DEBUG_RODATA=y
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_PARAVIRT is not set
#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_CAPABILITIES=m
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_WP512=y
CONFIG_CRYPTO_TGR192=y
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_LRW=y
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
# CONFIG_CRYPTO_TWOFISH_586 is not set
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_586 is not set
CONFIG_CRYPTO_CAST5=y
CONFIG_CRYPTO_CAST6=y
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_KHAZAD=y
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
CONFIG_NO_IDLE_HZ=y
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 10:05 ` Ingo Molnar
@ 2007-03-05 10:33 ` Avi Kivity
2007-03-05 10:33 ` Ingo Molnar
2007-03-05 10:40 ` Michael S. Tsirkin
0 siblings, 2 replies; 104+ messages in thread
From: Avi Kivity @ 2007-03-05 10:33 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, Jens Axboe, Pavel Machek, Adrian Bunk,
Andrew Morton, Linux Kernel Mailing List, Michael S. Tsirkin,
Thomas Gleixner, linux-pm, Michal Piotrowski, Daniel Walker,
Len Brown
Ingo Molnar wrote:
> * Avi Kivity <avi@qumranet.com> wrote:
>
>
>>> suspend/resume works fine now and there are no warning messages
>>> whatsoever (with suspend simulation). Thanks Avi!
>>>
>> Where do I find this suspend simulation? Sounds like a great suspend
>> debugging tool.
>>
>
> it's just the simple hack below.
>
>
>
Thanks, I'll put it to good use. Are you planning to upstream it? Not
for 2.6.21, presumably ;)
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 10:33 ` Avi Kivity
@ 2007-03-05 10:33 ` Ingo Molnar
2007-03-05 10:40 ` Michael S. Tsirkin
1 sibling, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 10:33 UTC (permalink / raw)
To: Avi Kivity
Cc: Linus Torvalds, Jens Axboe, Pavel Machek, Adrian Bunk,
Andrew Morton, Linux Kernel Mailing List, Michael S. Tsirkin,
Thomas Gleixner, linux-pm, Michal Piotrowski, Daniel Walker,
Len Brown
* Avi Kivity <avi@qumranet.com> wrote:
> >it's just the simple hack below.
>
> Thanks, I'll put it to good use. Are you planning to upstream it?
> Not for 2.6.21, presumably ;)
it needs an essential cleanup: instead of modifying 'mem' behavior, it
should be a 'testmem' thing and no acpi_ flag.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 10:33 ` Avi Kivity
2007-03-05 10:33 ` Ingo Molnar
@ 2007-03-05 10:40 ` Michael S. Tsirkin
1 sibling, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 10:40 UTC (permalink / raw)
To: Avi Kivity
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Andrew Morton, Adrian Bunk,
Pavel Machek, Jens Axboe, Thomas Gleixner, Linus Torvalds,
Ingo Molnar
> Quoting Avi Kivity <avi@qumranet.com>:
> Subject: Re: [patch] KVM: T60 resume fix
>
> Ingo Molnar wrote:
> > * Avi Kivity <avi@qumranet.com> wrote:
> >
> >
> >>> suspend/resume works fine now and there are no warning messages
> >>> whatsoever (with suspend simulation). Thanks Avi!
> >>>
> >> Where do I find this suspend simulation? Sounds like a great suspend
> >> debugging tool.
> >>
> >
> > it's just the simple hack below.
> >
> >
> >
>
> Thanks, I'll put it to good use. Are you planning to upstream it? Not
> for 2.6.21, presumably ;)
I think Pavel wants it triggerable through /sys/power/state:
http://lkml.org/lkml/2007/1/25/99
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 12:54 ` Michael S. Tsirkin
@ 2007-03-05 12:50 ` Ingo Molnar
2007-03-05 13:26 ` Michael S. Tsirkin
0 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 12:50 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Thomas Gleixner, Linus Torvalds, Andrew Morton
* Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > suspend/resume works fine now and there are no warning messages
> > whatsoever (with suspend simulation). Thanks Avi!
>
> I just tried Ingo's .config and it hangs on resume for me (with
> suspend to memory).
could you try 's2ram' from http://suspend.sf.net ? It's basically
equivalent to 'echo mem > /sys/power/state', but you can usually also
see the reason why it doesnt resume, on the vga console. (by default the
kernel doesnt resume the t60's vga properly)
on my box resume works, but it's incredibly slow. Takes a few minutes to
have total effect.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 8:57 ` Ingo Molnar
2007-03-05 9:27 ` Avi Kivity
@ 2007-03-05 12:54 ` Michael S. Tsirkin
2007-03-05 12:50 ` Ingo Molnar
1 sibling, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 12:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Thomas Gleixner, Linus Torvalds, Andrew Morton
> suspend/resume works fine now and there are no warning messages
> whatsoever (with suspend simulation). Thanks Avi!
I just tried Ingo's .config and it hangs on resume for me (with suspend to memory).
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 12:50 ` Ingo Molnar
@ 2007-03-05 13:26 ` Michael S. Tsirkin
2007-03-05 13:32 ` Ingo Molnar
0 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 13:26 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Thomas Gleixner, Linus Torvalds, Andrew Morton
> Quoting Ingo Molnar <mingo@elte.hu>:
> Subject: Re: [patch] KVM: T60 resume fix
>
>
> * Michael S. Tsirkin <mst@mellanox.co.il> wrote:
>
> > > suspend/resume works fine now and there are no warning messages
> > > whatsoever (with suspend simulation). Thanks Avi!
> >
> > I just tried Ingo's .config and it hangs on resume for me (with
> > suspend to memory).
>
> could you try 's2ram' from http://suspend.sf.net ? It's basically
> equivalent to 'echo mem > /sys/power/state', but you can usually also
> see the reason why it doesnt resume, on the vga console. (by default the
> kernel doesnt resume the t60's vga properly)
OK, I'll give it a try. Do I have to shut down X or is it enough to
switch to another VT?
> on my box resume works, but it's incredibly slow.
I guess it is possible that what I mistook for a hang was actually an incredibly
slow system, and that it would resume, eventually. I waited for 5 min and gave
up.
> Takes a few minutes to have total effect.
I have same here with my old .config (2-3 min).
However, after resume was completed, system would hang on the *next* suspend to
ram.
Ingo, do you see this behaviour, or can you suspend/resume any number of times?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [patch] KVM: T60 resume fix
2007-03-05 13:26 ` Michael S. Tsirkin
@ 2007-03-05 13:32 ` Ingo Molnar
0 siblings, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 13:32 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Avi Kivity, Adrian Bunk, Pavel Machek,
Jens Axboe, Thomas Gleixner, Linus Torvalds, Andrew Morton
* Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > could you try 's2ram' from http://suspend.sf.net ? It's basically
> > equivalent to 'echo mem > /sys/power/state', but you can usually also
> > see the reason why it doesnt resume, on the vga console. (by default the
> > kernel doesnt resume the t60's vga properly)
>
> OK, I'll give it a try. Do I have to shut down X or is it enough to
> switch to another VT?
s2ram takes care of that on your behalf.
> > on my box resume works, but it's incredibly slow.
>
> I guess it is possible that what I mistook for a hang was actually an
> incredibly slow system, and that it would resume, eventually. I waited
> for 5 min and gave up.
5 min should be enough to have the box pingable again.
> However, after resume was completed, system would hang on the *next*
> suspend to ram.
>
> Ingo, do you see this behaviour, or can you suspend/resume any number
> of times?
havent tried that yet - first trying to figure out why the first resume
misbehaves ;)
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-01 9:34 ` Ingo Molnar
2007-03-01 10:41 ` Ingo Molnar
2007-03-02 10:07 ` Pavel Machek
@ 2007-03-05 15:34 ` Michael S. Tsirkin
2 siblings, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 15:34 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Thomas Gleixner, Michal Piotrowski, Pavel Machek,
Jens Axboe, linux-pm, Andrew Morton, Linus Torvalds,
Linux Kernel Mailing List, Adrian Bunk
> Quoting Ingo Molnar <mingo@elte.hu>:
> Subject: Re: 2.6.21-rc1: known regressions (part 2)
>
>
> * Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, [...]
>
> update: f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me too, and
> 01363220f5d23ef68276db8974e46a502e43d01d is broken. I too will attempt
> to bisect this.
f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38 works for me, too.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 8:04 ` Ingo Molnar
2007-03-02 10:20 ` Ingo Molnar
@ 2007-03-05 15:44 ` Michael S. Tsirkin
2007-03-05 16:14 ` Michael S. Tsirkin
2 siblings, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 15:44 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton, git
> Quoting Ingo Molnar <mingo@elte.hu>:
> Subject: Re: 2.6.21-rc1: known regressions (part 2)
>
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
> > I'll try what i've described in the previous mail: mark all bisection
> > points that do not include f3ccb06f as 'good' - thus 'merging' the
> > known-bad area with the first known-good commit, and thus eliminating
> > it from the bisection space.
>
> this got me quite a bit further:
>
> git-bisect start
> git-bisect bad 01363220f5d23ef68276db8974e46a502e43d01d
> git-bisect good f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
> git-bisect fake-good ee404566f97f9254433399fbbcfa05390c7c55f7
> git-bisect bad d43a338e395371733a80ec473b40baac5f74d768
> git-bisect bad 255f0385c8e0d6b9005c0e09fffb5bd852f3b506
> git-bisect fake-good f99c6bb6e2e9c35bd3dc0b1d0faa28bd6970930d
> git-bisect fake-good 0187f221e96e3436d552c0c7143f183eb82fb658
> git-bisect bad 81450b73dde07f473a4a7208b209b4c8b7251d90
> git-bisect fake-good ef29498655b18d2bfd69048e20835d19333981ab
> git-bisect fake-good 8a03d9a498eaf02c8a118752050a5154852c13bf
> git-bisect good 5c95d3f5783ab184f64b7848f0a871352c35c3cf
> git-bisect good ecb5f7521a309cb9c5fc0832b9705cd2a03d7d45
> git-bisect good 0539771d7236b425f285652f6f297cc7939c8f9a
I just confirmed that 0539771d7236b425f285652f6f297cc7939c8f9a
is good for me, too.
> 81450b73dde07f473a4a7208b209b4c8b7251d90 is first bad commit
Going to test that now.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-02 8:04 ` Ingo Molnar
2007-03-02 10:20 ` Ingo Molnar
2007-03-05 15:44 ` 2.6.21-rc1: known regressions (part 2) Michael S. Tsirkin
@ 2007-03-05 16:14 ` Michael S. Tsirkin
2007-03-05 16:41 ` Ingo Molnar
2007-03-05 18:16 ` Jens Axboe
2 siblings, 2 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-05 16:14 UTC (permalink / raw)
To: Ingo Molnar
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton, git
> Quoting Ingo Molnar <mingo@elte.hu>:
> git-bisect good 0539771d7236b425f285652f6f297cc7939c8f9a
>
> 81450b73dde07f473a4a7208b209b4c8b7251d90 is first bad commit
I have confirmed these two on my system.
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-05 16:14 ` Michael S. Tsirkin
@ 2007-03-05 16:41 ` Ingo Molnar
2007-03-05 18:16 ` Jens Axboe
1 sibling, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-05 16:41 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel Walker, Michal Piotrowski, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton, git
* Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > Quoting Ingo Molnar <mingo@elte.hu>:
> > git-bisect good 0539771d7236b425f285652f6f297cc7939c8f9a
> >
> > 81450b73dde07f473a4a7208b209b4c8b7251d90 is first bad commit
>
> I have confirmed these two on my system.
you could probably get quite a bit further in bisecting the other
breakage, by using the following method:
manully apply the patch below to 81450b73dde and retest. It will most
likely work. Then FIRST unapply the patch and mark the tree via
'git-bisect good' and continue the bisection. Then try to apply the
patch again. If it's already included - ignore the rejected patch.
Whenever git-bisect offers you a new commit, just try to apply the
patch. Ok? This way you'll be able to avoid the known ACPI breakage, and
zoom in on the unknown breakage.
Ingo
---------------->
commit f3ccb06f3b8e0cf42b579db21f3ca7f17fcc3f38
Author: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>
Date: Tue Feb 13 02:35:50 2007 -0500
ACPI: Disable wake GPEs only once.
fixes Suspend/Resume regressions due to recent ACPICA update.
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
diff --git a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c
index dfac3ec..635ba44 100644
--- a/drivers/acpi/events/evgpe.c
+++ b/drivers/acpi/events/evgpe.c
@@ -636,17 +636,6 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number)
}
}
- if (!acpi_gbl_system_awake_and_running) {
- /*
- * We just woke up because of a wake GPE. Disable any further GPEs
- * until we are fully up and running (Only wake GPEs should be enabled
- * at this time, but we just brute-force disable them all.)
- * 1) We must disable this particular wake GPE so it won't fire again
- * 2) We want to disable all wake GPEs, since we are now awake
- */
- (void)acpi_hw_disable_all_gpes();
- }
-
/*
* Dispatch the GPE to either an installed handler, or the control method
* associated with this GPE (_Lxx or _Exx). If a handler exists, we invoke
^ permalink raw reply related [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-05 16:14 ` Michael S. Tsirkin
2007-03-05 16:41 ` Ingo Molnar
@ 2007-03-05 18:16 ` Jens Axboe
1 sibling, 0 replies; 104+ messages in thread
From: Jens Axboe @ 2007-03-05 18:16 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Ingo Molnar, Linus Torvalds, Pavel Machek, Adrian Bunk,
Andrew Morton, Linux Kernel Mailing List, Thomas Gleixner,
linux-pm, Michal Piotrowski, Daniel Walker, Len Brown, git
[-- Attachment #1: Type: text/plain, Size: 566 bytes --]
On Mon, Mar 05 2007, Michael S. Tsirkin wrote:
> > Quoting Ingo Molnar <mingo@elte.hu>:
> > git-bisect good 0539771d7236b425f285652f6f297cc7939c8f9a
> >
> > 81450b73dde07f473a4a7208b209b4c8b7251d90 is first bad commit
>
> I have confirmed these two on my system.
BTW, the key here seems to be CONFIG_CC_OPTIMIZE_FOR_SIZE, at least that
is my current guess looking at the config options I still need to test
whether they make a difference. Either that, or the vmsplit option got
broken again. I'm attaching my x60 config that works for me.
--
Jens Axboe
[-- Attachment #2: .config --]
[-- Type: application/x-config, Size: 37392 bytes --]
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-05 0:04 ` Adrian Bunk
@ 2007-03-06 1:32 ` Jeff Chua
2007-03-06 12:03 ` Jeff Chua
0 siblings, 1 reply; 104+ messages in thread
From: Jeff Chua @ 2007-03-06 1:32 UTC (permalink / raw)
To: Adrian Bunk
Cc: Michael S. Tsirkin, Linux Kernel Mailing List, Pavel Machek,
linux-pm, Ingo Molnar, lenb, linux-acpi
On 3/5/07, Adrian Bunk <bunk@stusta.de> wrote:
> > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > from RAM, can't suspend to disk. It is possible to revert all the
> > changes to ACPI and test it?
>
> This is with CONFIG_KVM=n?
Yes.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
@ 2007-03-06 5:30 ` Jeff Garzik
2007-03-06 6:35 ` Kok, Auke
2007-03-06 9:06 ` Ingo Molnar
2007-03-06 16:26 ` Thomas Gleixner
2 siblings, 1 reply; 104+ messages in thread
From: Jeff Garzik @ 2007-03-06 5:30 UTC (permalink / raw)
To: Ingo Molnar
Cc: Auke Kok, Michal Piotrowski, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Andrew Morton
Ingo Molnar wrote:
> i'm also getting this WARN_ON() from e1000:
>
> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
> [<c01061bd>] show_trace_log_lvl+0x19/0x2e
> [<c01062b6>] show_trace+0x12/0x14
> [<c01062cc>] dump_stack+0x14/0x16
> [<c024fcc4>] pci_enable_msi+0x6d/0x203
> [<c02b709e>] e1000_request_irq+0x2e/0xe2
> [<c02bb742>] e1000_resume+0x7f/0xef
> [<c0249a68>] pci_device_resume+0x1a/0x44
> [<c02b39ec>] resume_device+0xf7/0x16f
> [<c02b3adb>] dpm_resume+0x77/0xcb
> [<c02b3b69>] device_resume+0x3a/0x51
> [<c014e669>] enter_state+0x193/0x1bb
> [<c014e712>] state_store+0x81/0x97
> [<c01b68bc>] subsys_attr_store+0x20/0x25
> [<c01b6feb>] sysfs_write_file+0xce/0xf6
> [<c017e16b>] vfs_write+0xb1/0x13a
> [<c017e899>] sys_write+0x3d/0x61
> [<c0105220>] syscall_call+0x7/0xb
>
> seems harmless because it seems to work fine.
I would poke Eric Biederman(sp?) about this one. Maybe its even solved
by the MSI-enable-related patch he posted in the past 24-48 hours.
Jeff
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 5:30 ` Jeff Garzik
@ 2007-03-06 6:35 ` Kok, Auke
2007-03-06 9:04 ` Ingo Molnar
0 siblings, 1 reply; 104+ messages in thread
From: Kok, Auke @ 2007-03-06 6:35 UTC (permalink / raw)
To: Jeff Garzik, Linus Torvalds
Cc: Michal Piotrowski, linux-pm, Linux Kernel Mailing List,
Andrew Morton, Adrian Bunk, Eric W. Biederman, Pavel Machek,
Jens Axboe, Michael S. Tsirkin, Thomas Gleixner, Ingo Molnar
Jeff Garzik wrote:
> Ingo Molnar wrote:
>> i'm also getting this WARN_ON() from e1000:
>>
>> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
>> [<c01061bd>] show_trace_log_lvl+0x19/0x2e
>> [<c01062b6>] show_trace+0x12/0x14
>> [<c01062cc>] dump_stack+0x14/0x16
>> [<c024fcc4>] pci_enable_msi+0x6d/0x203
>> [<c02b709e>] e1000_request_irq+0x2e/0xe2
>> [<c02bb742>] e1000_resume+0x7f/0xef
>> [<c0249a68>] pci_device_resume+0x1a/0x44
>> [<c02b39ec>] resume_device+0xf7/0x16f
>> [<c02b3adb>] dpm_resume+0x77/0xcb
>> [<c02b3b69>] device_resume+0x3a/0x51
>> [<c014e669>] enter_state+0x193/0x1bb
>> [<c014e712>] state_store+0x81/0x97
>> [<c01b68bc>] subsys_attr_store+0x20/0x25
>> [<c01b6feb>] sysfs_write_file+0xce/0xf6
>> [<c017e16b>] vfs_write+0xb1/0x13a
>> [<c017e899>] sys_write+0x3d/0x61
>> [<c0105220>] syscall_call+0x7/0xb
>>
>> seems harmless because it seems to work fine.
>
> I would poke Eric Biederman(sp?) about this one. Maybe its even solved
> by the MSI-enable-related patch he posted in the past 24-48 hours.
Eric, Linus,
I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and they fix this
problem for me. Were you expecting the OOPS in the first place? In any case, it
survived several suspend/resume cycles on both enabled (irq alloc'd and enabled)
and disabled devices (only initialized).
Jens Axboe was seeing the same problem, perhaps he can confirm the fix as well.
In any case, the patches have my blessing :)
Please add my:
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Cheers,
Auke
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 6:35 ` Kok, Auke
@ 2007-03-06 9:04 ` Ingo Molnar
2007-03-06 15:34 ` Kok, Auke
0 siblings, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-06 9:04 UTC (permalink / raw)
To: Kok, Auke
Cc: Michal Piotrowski, Jeff Garzik, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Eric W. Biederman,
Pavel Machek, Jens Axboe, Michael S. Tsirkin, Thomas Gleixner,
Linus Torvalds, Andrew Morton
* Kok, Auke <auke-jan.h.kok@intel.com> wrote:
> >>BUG: at drivers/pci/msi.c:611 pci_enable_msi()
> >I would poke Eric Biederman(sp?) about this one. Maybe its even
> >solved by the MSI-enable-related patch he posted in the past 24-48
> >hours.
>
> I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and
> they fix this problem for me. Were you expecting the OOPS in the first
> place? [...]
the bug was the warning message (a WARN_ON()) above - not an oops. So
that warning message is gone in your testing?
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
2007-03-06 5:30 ` Jeff Garzik
@ 2007-03-06 9:06 ` Ingo Molnar
2007-03-06 16:26 ` Thomas Gleixner
2 siblings, 0 replies; 104+ messages in thread
From: Ingo Molnar @ 2007-03-06 9:06 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Auke Kok, Michal Piotrowski, Linus Torvalds, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Jeff Garzik, Andrew Morton
* Ingo Molnar <mingo@elte.hu> wrote:
> with real resume it takes even longer time - but i dont see where the
> delays come from in that case - i suspect it's SATA.
update: Thomas' PIT/HPET resume-fix patch fixed the delay for me.
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-06 1:32 ` Jeff Chua
@ 2007-03-06 12:03 ` Jeff Chua
2007-03-06 12:08 ` Michael S. Tsirkin
0 siblings, 1 reply; 104+ messages in thread
From: Jeff Chua @ 2007-03-06 12:03 UTC (permalink / raw)
To: Adrian Bunk
Cc: Michael S. Tsirkin, Linux Kernel Mailing List, Pavel Machek,
linux-pm, Ingo Molnar, lenb, linux-acpi
On 3/6/07, Jeff Chua <jeff.chua.linux@gmail.com> wrote:
> On 3/5/07, Adrian Bunk <bunk@stusta.de> wrote:
>
> > > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > > from RAM, can't suspend to disk. It is possible to revert all the
> > > changes to ACPI and test it?
> >
> > This is with CONFIG_KVM=n?
>
> Yes.
I've tried with CONFIG_KVM=n and CONFIG_KVM=y and both does not suspend.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-06 12:03 ` Jeff Chua
@ 2007-03-06 12:08 ` Michael S. Tsirkin
2007-03-06 12:12 ` Jeff Chua
0 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-06 12:08 UTC (permalink / raw)
To: Jeff Chua
Cc: linux-acpi, Pavel Machek, Ingo Molnar, Adrian Bunk, linux-pm,
Linux Kernel Mailing List
> Quoting Jeff Chua <jeff.chua.linux@gmail.com>:
> Subject: Re: 2.6.21-rc1: known regressions (v2) (part 1)
>
> On 3/6/07, Jeff Chua <jeff.chua.linux@gmail.com> wrote:
> > On 3/5/07, Adrian Bunk <bunk@stusta.de> wrote:
> >
> > > > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > > > from RAM, can't suspend to disk. It is possible to revert all the
> > > > changes to ACPI and test it?
> > >
> > > This is with CONFIG_KVM=n?
> >
> > Yes.
>
> I've tried with CONFIG_KVM=n and CONFIG_KVM=y and both does not suspend.
Do you mean that they "do not resume after suspend"?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-06 12:08 ` Michael S. Tsirkin
@ 2007-03-06 12:12 ` Jeff Chua
2007-03-19 15:32 ` Pavel Machek
0 siblings, 1 reply; 104+ messages in thread
From: Jeff Chua @ 2007-03-06 12:12 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Adrian Bunk, Linux Kernel Mailing List, Pavel Machek, linux-pm,
Ingo Molnar, lenb, linux-acpi
On 3/6/07, Michael S. Tsirkin <mst@mellanox.co.il> wrote:
> > Quoting Jeff Chua <jeff.chua.linux@gmail.com>:
> > Subject: Re: 2.6.21-rc1: known regressions (v2) (part 1)
> >
> > On 3/6/07, Jeff Chua <jeff.chua.linux@gmail.com> wrote:
> > > On 3/5/07, Adrian Bunk <bunk@stusta.de> wrote:
> > >
> > > > > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > > > > from RAM, can't suspend to disk. It is possible to revert all the
> > > > > changes to ACPI and test it?
> > > >
> > > > This is with CONFIG_KVM=n?
> > >
> > > Yes.
> >
> > I've tried with CONFIG_KVM=n and CONFIG_KVM=y and both does not suspend.
>
> Do you mean that they "do not resume after suspend"?
I can't even suspend to disk/ram. It just hangs and the lights just
blink and everything else hangs. With 2.6.20, it works fine.
Jeff.
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 9:04 ` Ingo Molnar
@ 2007-03-06 15:34 ` Kok, Auke
2007-03-07 4:15 ` Eric W. Biederman
0 siblings, 1 reply; 104+ messages in thread
From: Kok, Auke @ 2007-03-06 15:34 UTC (permalink / raw)
To: Ingo Molnar
Cc: Kok, Auke, Jeff Garzik, Linus Torvalds, Michael S. Tsirkin,
Pavel Machek, Jens Axboe, Adrian Bunk, Andrew Morton,
Linux Kernel Mailing List, Thomas Gleixner, linux-pm,
Michal Piotrowski, Eric W. Biederman
Ingo Molnar wrote:
> * Kok, Auke <auke-jan.h.kok@intel.com> wrote:
>
>>>> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
>
>>> I would poke Eric Biederman(sp?) about this one. Maybe its even
>>> solved by the MSI-enable-related patch he posted in the past 24-48
>>> hours.
>> I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and
>> they fix this problem for me. Were you expecting the OOPS in the first
>> place? [...]
>
> the bug was the warning message (a WARN_ON()) above - not an oops. So
> that warning message is gone in your testing?
yes.
Auke
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
2007-03-06 5:30 ` Jeff Garzik
2007-03-06 9:06 ` Ingo Molnar
@ 2007-03-06 16:26 ` Thomas Gleixner
2007-03-06 16:52 ` Linus Torvalds
2 siblings, 1 reply; 104+ messages in thread
From: Thomas Gleixner @ 2007-03-06 16:26 UTC (permalink / raw)
To: Ingo Molnar
Cc: Auke Kok, Michal Piotrowski, Linus Torvalds, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Andrew Morton, Jeff Garzik
On Mon, 2007-03-05 at 11:11 +0100, Ingo Molnar wrote:
> the spin-up takes a few seconds here under suspend/resume simulation:
>
> | ata1: waiting for device to spin up (7 secs)
> | Restarting tasks ... done.
>
> [5-10 seconds pass]
>
> | ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> | ata1.00: configured for UDMA/100
> | SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
> | sda: Write Protect is off
> | sda: Mode Sense: 00 3a 00 00
> | SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>
> with real resume it takes even longer time - but i dont see where the
> delays come from in that case - i suspect it's SATA.
SATA has another nice feature. Somehow there is an interrupt pending on
the SATA controller, which comes in somewhere in the middle of resume.
If it happens before the SATA code resumed, the SATA code ignores the
interrupt and the interrupt is disabled due to "nobody cared", which in
turn prevents SATA to ever become functional again.
Any idea on that one ?
tglx
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 16:26 ` Thomas Gleixner
@ 2007-03-06 16:52 ` Linus Torvalds
2007-03-06 17:09 ` Kok, Auke
0 siblings, 1 reply; 104+ messages in thread
From: Linus Torvalds @ 2007-03-06 16:52 UTC (permalink / raw)
To: Thomas Gleixner
Cc: Auke Kok, Michal Piotrowski, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Ingo Molnar, Jeff Garzik, Andrew Morton
On Tue, 6 Mar 2007, Thomas Gleixner wrote:
>
> SATA has another nice feature. Somehow there is an interrupt pending on
> the SATA controller, which comes in somewhere in the middle of resume.
> If it happens before the SATA code resumed, the SATA code ignores the
> interrupt and the interrupt is disabled due to "nobody cared", which in
> turn prevents SATA to ever become functional again.
Jeff - that sounds like a SATA bug.
If you have an interrupt handler registered, you'd better handle the
interrupt regardless of whether you think the hardware might be gone or
not.
It's generally *not* ok to do
if (device_offline())
return IRQ_NONE;
at the top of an interrupt handler.
Of course, if you think the hardware is supposed to be quiescent, then the
only thing you should do is generally just do the "shut up" operation (ie
read status, write it back or whatever). You must generally *not* try to
pass any data upwards (ie if the higher layers have told you to shut up,
you may need to handle the hardware, but you must not involve the higher
layers themselves any more, because they expect you to be quiet).
And if you cannot do that because you need to resume in order to have the
status register mapped, then you need to have an "early_resume()" function
which gets called *before* interrupts are enabled. That's what
early-resume (and late-suspend) are designed for: doing things that happen
very early in the resume sequence before everything is up.
And if you don't want to do any of these things (or are unable to, because
of some ordering constraint or bad design), then you simply need to
unregister and re-register the interrupt handler over sleep.
> Any idea on that one ?
Jeff, Auke, does this ring any bells?
Linus
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 16:52 ` Linus Torvalds
@ 2007-03-06 17:09 ` Kok, Auke
0 siblings, 0 replies; 104+ messages in thread
From: Kok, Auke @ 2007-03-06 17:09 UTC (permalink / raw)
To: Linus Torvalds
Cc: Michal Piotrowski, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Andrew Morton, Jeff Garzik, Thomas Gleixner
Linus Torvalds wrote:
>
> On Tue, 6 Mar 2007, Thomas Gleixner wrote:
>> SATA has another nice feature. Somehow there is an interrupt pending on
>> the SATA controller, which comes in somewhere in the middle of resume.
>> If it happens before the SATA code resumed, the SATA code ignores the
>> interrupt and the interrupt is disabled due to "nobody cared", which in
>> turn prevents SATA to ever become functional again. >
> And if you don't want to do any of these things (or are unable to, because
> of some ordering constraint or bad design), then you simply need to
> unregister and re-register the interrupt handler over sleep.
>
>> Any idea on that one ?
>
> Jeff, Auke, does this ring any bells?
For the e1000 issue, the problem is solved with Eric Biederman's 3-patch msi
cleanups. You should have another message in your mailbox confirming that I
tested his patches and the MSI warning for e1000 suspend-resume is gone with them.
Cheers,
Auke
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-06 15:34 ` Kok, Auke
@ 2007-03-07 4:15 ` Eric W. Biederman
2007-03-07 16:31 ` Kok, Auke
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-07 4:15 UTC (permalink / raw)
To: Kok, Auke
Cc: Andrew Morton, Jeff Garzik, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, Michal Piotrowski
"Kok, Auke" <auke-jan.h.kok@intel.com> writes:
> Ingo Molnar wrote:
>> * Kok, Auke <auke-jan.h.kok@intel.com> wrote:
>>
>>>>> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
>>
>>>> I would poke Eric Biederman(sp?) about this one. Maybe its even solved by
>>>> the MSI-enable-related patch he posted in the past 24-48 hours.
>>> I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and they fix
>>> this problem for me. Were you expecting the OOPS in the first place? [...]
>>
>> the bug was the warning message (a WARN_ON()) above - not an oops. So that
>> warning message is gone in your testing?
>
> yes.
Sorry for the slow delay. I was out of town for my brothers wedding the last few
days.
I wasn't exactly expecting the WARN_ON to trigger. What I fixed was
an inconsistency in handling our state bits. Fixing that
inconsistency appears to have fixed the e1000 usage scenario mostly by
accident.
The basic issue is that pci_save_state saves the current msi state
along with other registers, and then the e1000 driver goes and
disables the msi irq after we have saved the irq state as on.
My code notices that the msi irq was disabled before restore time, so
it skips the restore. However we now have a leak of the msi saved cap
because we are not freeing it.
This leaves with some basic questions.
- Does it make sense for suspend/resume methods to request/free irqs?
- Does it make sense for suspend/resume methods to allocate/free msi irqs?
- Do we want pci_save/restore_cap to save/restore msi state?
The path of least resistance is to just free the extra state and we
are good. I'm just not quite certain that is sane and it has been a
long day.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-07 4:15 ` Eric W. Biederman
@ 2007-03-07 16:31 ` Kok, Auke
2007-03-07 16:45 ` Kok, Auke
0 siblings, 1 reply; 104+ messages in thread
From: Kok, Auke @ 2007-03-07 16:31 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Andrew Morton, Jeff Garzik, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds, Ingo Molnar,
Michal Piotrowski
Eric W. Biederman wrote:
> "Kok, Auke" <auke-jan.h.kok@intel.com> writes:
>
>> Ingo Molnar wrote:
>>> * Kok, Auke <auke-jan.h.kok@intel.com> wrote:
>>>
>>>>>> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
>>>>> I would poke Eric Biederman(sp?) about this one. Maybe its even solved by
>>>>> the MSI-enable-related patch he posted in the past 24-48 hours.
>>>> I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and they fix
>>>> this problem for me. Were you expecting the OOPS in the first place? [...]
>>> the bug was the warning message (a WARN_ON()) above - not an oops. So that
>>> warning message is gone in your testing?
>> yes.
>
> Sorry for the slow delay. I was out of town for my brothers wedding the last few
> days.
>
> I wasn't exactly expecting the WARN_ON to trigger. What I fixed was
> an inconsistency in handling our state bits. Fixing that
> inconsistency appears to have fixed the e1000 usage scenario mostly by
> accident.
>
> The basic issue is that pci_save_state saves the current msi state
> along with other registers, and then the e1000 driver goes and
> disables the msi irq after we have saved the irq state as on.
>
> My code notices that the msi irq was disabled before restore time, so
> it skips the restore. However we now have a leak of the msi saved cap
> because we are not freeing it.
>
> This leaves with some basic questions.
> - Does it make sense for suspend/resume methods to request/free irqs?
> - Does it make sense for suspend/resume methods to allocate/free msi irqs?
> - Do we want pci_save/restore_cap to save/restore msi state?
>
> The path of least resistance is to just free the extra state and we
> are good. I'm just not quite certain that is sane and it has been a
> long day.
we used to have a lengthy e1000_pci_save|restore_state in our code, which is now
gone, so I'm all for that. A separate pci_save_pxie|msi(x)_state for every
driver seems completely unnecessary. I can't think of a use case where
saving+restoring everything hurts. That's what you want I presume.
We currently free all irq's and msi before going into suspend in e1000, and I
think that is probably a good thing, somehow I can think of bad things happening
if we dont, but I admit that I haven't tried it without alloc/free. We do this
in e100 as well and it works.
Another motivation would be to leave this up to the driver: if the driver
chooses to free/alloc interrupts because it makes sense, you probably would want
to keep that choice available. Devices that don't need this can skip the
alloc/free, but leave the choice open for others.
hth
Auke
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-07 16:31 ` Kok, Auke
@ 2007-03-07 16:45 ` Kok, Auke
2007-03-07 19:28 ` Eric W. Biederman
0 siblings, 1 reply; 104+ messages in thread
From: Kok, Auke @ 2007-03-07 16:45 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Andrew Morton, Jeff Garzik, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, Michal Piotrowski
Kok, Auke wrote:
> Eric W. Biederman wrote:
>> "Kok, Auke" <auke-jan.h.kok@intel.com> writes:
>>
>>> Ingo Molnar wrote:
>>>> * Kok, Auke <auke-jan.h.kok@intel.com> wrote:
>>>>
>>>>>>> BUG: at drivers/pci/msi.c:611 pci_enable_msi()
>>>>>> I would poke Eric Biederman(sp?) about this one. Maybe its even solved by
>>>>>> the MSI-enable-related patch he posted in the past 24-48 hours.
>>>>> I tried the 3-patch series "[PATCH 0/3] Basic msi bug fixes.." and they fix
>>>>> this problem for me. Were you expecting the OOPS in the first place? [...]
>>>> the bug was the warning message (a WARN_ON()) above - not an oops. So that
>>>> warning message is gone in your testing?
>>> yes.
>> Sorry for the slow delay. I was out of town for my brothers wedding the last few
>> days.
>>
>> I wasn't exactly expecting the WARN_ON to trigger. What I fixed was
>> an inconsistency in handling our state bits. Fixing that
>> inconsistency appears to have fixed the e1000 usage scenario mostly by
>> accident.
>>
>> The basic issue is that pci_save_state saves the current msi state
>> along with other registers, and then the e1000 driver goes and
>> disables the msi irq after we have saved the irq state as on.
>>
>> My code notices that the msi irq was disabled before restore time, so
>> it skips the restore. However we now have a leak of the msi saved cap
>> because we are not freeing it.
>>
>> This leaves with some basic questions.
>> - Does it make sense for suspend/resume methods to request/free irqs?
>> - Does it make sense for suspend/resume methods to allocate/free msi irqs?
>> - Do we want pci_save/restore_cap to save/restore msi state?
>>
>> The path of least resistance is to just free the extra state and we
>> are good. I'm just not quite certain that is sane and it has been a
>> long day.
>
> we used to have a lengthy e1000_pci_save|restore_state in our code, which is now
> gone, so I'm all for that. A separate pci_save_pxie|msi(x)_state for every
> driver seems completely unnecessary. I can't think of a use case where
> saving+restoring everything hurts. That's what you want I presume.
>
> We currently free all irq's and msi before going into suspend in e1000, and I
> think that is probably a good thing, somehow I can think of bad things happening
> if we dont, but I admit that I haven't tried it without alloc/free. We do this
> in e100 as well and it works.
>
> Another motivation would be to leave this up to the driver: if the driver
> chooses to free/alloc interrupts because it makes sense, you probably would want
> to keep that choice available. Devices that don't need this can skip the
> alloc/free, but leave the choice open for others.
ah, looking at the code in e1000 we do:
_suspend:
pci_save_state();
free_irq()
_resume:
pci_restore_state();
alloc_irq();
I suppose that's not good either, and the major cause of the warning in the
first place.
Maybe I can rollback your latest patches and try to fix that mess by postponing
the pci_save_state until after we free'd the irq's.
Auke
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-07 16:45 ` Kok, Auke
@ 2007-03-07 19:28 ` Eric W. Biederman
2007-03-08 2:53 ` Andrew Morton
2007-03-09 23:06 ` Kok, Auke
0 siblings, 2 replies; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-07 19:28 UTC (permalink / raw)
To: Kok, Auke
Cc: Andrew Morton, Jeff Garzik, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, Michal Piotrowski
"Kok, Auke" <auke-jan.h.kok@intel.com> writes:
> Kok, Auke wrote:
>> Eric W. Biederman wrote:
>>> This leaves with some basic questions.
>>> - Does it make sense for suspend/resume methods to request/free irqs?
>>> - Does it make sense for suspend/resume methods to allocate/free msi irqs?
>>> - Do we want pci_save/restore_cap to save/restore msi state?
>>>
>>> The path of least resistance is to just free the extra state and we
>>> are good. I'm just not quite certain that is sane and it has been a
>>> long day.
>>
>> we used to have a lengthy e1000_pci_save|restore_state in our code, which is
>> now gone, so I'm all for that. A separate pci_save_pxie|msi(x)_state for every
>> driver seems completely unnecessary. I can't think of a use case where
>> saving+restoring everything hurts. That's what you want I presume.
I just want to understand why we have issues and to see if how we have
organized the suspend/resume path for dealing with msi irqs makes sense.
That is I haven't looked much at the suspend/resume path so I don't know it
well and I am afraid that your problem might be a symptom of a deeper
problem.
>> We currently free all irq's and msi before going into suspend in e1000, and I
>> think that is probably a good thing, somehow I can think of bad things
>> happening if we dont, but I admit that I haven't tried it without
>> alloc/free. We do this in e100 as well and it works.
Currently the irq code supports operation without the
free_irq/request_irq. Since the numbers given are pure linux
abstractions things should it is really a matter of just
saving/restoring the appropriate state.
>> Another motivation would be to leave this up to the driver: if the driver
>> chooses to free/alloc interrupts because it makes sense, you probably would
>> want to keep that choice available. Devices that don't need this can skip the
>> alloc/free, but leave the choice open for others.
>
> ah, looking at the code in e1000 we do:
>
> _suspend:
> pci_save_state();
> free_irq()
>
> _resume:
> pci_restore_state();
> alloc_irq();
>
> I suppose that's not good either, and the major cause of the warning in the
> first place.
Yep.
> Maybe I can rollback your latest patches and try to fix that mess by postponing
> the pci_save_state until after we free'd the irq's.
Below is an additional set of warnings that should help debug this.
The old code just got lucky that it triggered a warning when this happens.
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 01869b1..5113913 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -613,6 +613,7 @@ int pci_enable_msi(struct pci_dev* dev)
return -EINVAL;
WARN_ON(!!dev->msi_enabled);
+ WARN_ON(!hlist_empty(&dev->saved_cap_space));
/* Check whether driver already requested for MSI-X irqs */
if (dev->msix_enabled) {
@@ -638,6 +639,8 @@ void pci_disable_msi(struct pci_dev* dev)
if (!dev->msi_enabled)
return;
+ WARN_ON(!hlist_empty(&dev->saved_cap_space));
+
msi_set_enable(dev, 0);
pci_intx(dev, 1); /* enable intx */
dev->msi_enabled = 0;
@@ -739,6 +742,7 @@ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec)
}
}
WARN_ON(!!dev->msix_enabled);
+ WARN_ON(!hlist_empty(&dev->saved_cap_space));
/* Check whether driver already requested for MSI irq */
if (dev->msi_enabled) {
@@ -763,6 +767,8 @@ void pci_disable_msix(struct pci_dev* dev)
if (!dev->msix_enabled)
return;
+ WARN_ON(!hlist_empty(&dev->saved_cap_space));
+
msix_set_enable(dev, 0);
pci_intx(dev, 1); /* enable intx */
dev->msix_enabled = 0;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index bd44a48..4418839 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -677,6 +677,7 @@ pci_restore_state(struct pci_dev *dev)
}
pci_restore_pcix_state(dev);
pci_restore_msi_state(dev);
+ WARN_ON(!hlist_empty(&dev->saved_cap_space));
return 0;
}
^ permalink raw reply related [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-07 19:28 ` Eric W. Biederman
@ 2007-03-08 2:53 ` Andrew Morton
2007-03-08 6:58 ` Eric W. Biederman
2007-03-09 23:06 ` Kok, Auke
1 sibling, 1 reply; 104+ messages in thread
From: Andrew Morton @ 2007-03-08 2:53 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Adrian, linux-pm,
Linux Kernel Mailing List, Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds, Ingo Molnar
On Wed, 07 Mar 2007 12:28:11 -0700 ebiederm@xmission.com (Eric W. Biederman) wrote:
> Below is an additional set of warnings that should help debug this.
> The old code just got lucky that it triggered a warning when this happens.
>
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 01869b1..5113913 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -613,6 +613,7 @@ int pci_enable_msi(struct pci_dev* dev)
> return -EINVAL;
>
> WARN_ON(!!dev->msi_enabled);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> /* Check whether driver already requested for MSI-X irqs */
> if (dev->msix_enabled) {
> @@ -638,6 +639,8 @@ void pci_disable_msi(struct pci_dev* dev)
> if (!dev->msi_enabled)
> return;
>
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
> +
> msi_set_enable(dev, 0);
> pci_intx(dev, 1); /* enable intx */
> dev->msi_enabled = 0;
> @@ -739,6 +742,7 @@ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec)
> }
> }
> WARN_ON(!!dev->msix_enabled);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> /* Check whether driver already requested for MSI irq */
> if (dev->msi_enabled) {
> @@ -763,6 +767,8 @@ void pci_disable_msix(struct pci_dev* dev)
> if (!dev->msix_enabled)
> return;
>
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
> +
> msix_set_enable(dev, 0);
> pci_intx(dev, 1); /* enable intx */
> dev->msix_enabled = 0;
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index bd44a48..4418839 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -677,6 +677,7 @@ pci_restore_state(struct pci_dev *dev)
> }
> pci_restore_pcix_state(dev);
> pci_restore_msi_state(dev);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> return 0;
> }
Got a hit on a powerpc g5:
PM: Writing back config space on device 0001:05:04.0 at offset 1 (was 2b00000, writing 2b00006)
------------[ cut here ]------------
Badness at drivers/pci/pci.c:679
Call Trace:
[C0000000080F7410] [C000000000011EFC] .show_stack+0x50/0x1cc (unreliable)
[C0000000080F74C0] [C0000000001AD610] .report_bug+0xa0/0x110
[C0000000080F7550] [C0000000000256E4] .program_check_exception+0xb4/0x670
[C0000000080F7630] [C0000000000046F4] program_check_common+0xf4/0x100
--- Exception: 700 at .pci_restore_state+0x310/0x340
LR = .pci_restore_state+0x2e0/0x340
[C0000000080F79D0] [C00000000026A174] .tg3_chip_reset+0x19c/0xa04
[C0000000080F7A90] [C00000000026D948] .tg3_reset_hw+0xa4/0x2718
[C0000000080F7BA0] [C000000000270030] .tg3_init_hw+0x74/0x94
[C0000000080F7C30] [C000000000270BE0] .tg3_open+0x4c8/0x854
[C0000000080F7CF0] [C0000000003A74A4] .dev_open+0x100/0x12c
[C0000000080F7D90] [C0000000003BAEA8] .netpoll_setup+0x2dc/0x3ec
[C0000000080F7E40] [C000000000283450] .init_netconsole+0x64/0x8c
[C0000000080F7EC0] [C0000000005C0BE4] .init+0x1d0/0x390
[C0000000080F7F90] [C0000000000271F8] .kernel_thread+0x4c/0x68
tg3: eth0: Link is up at 1000 Mbps, full duplex.
tg3: eth0: Flow control is on for TX and on for RX.
Scheduler bitmap error - bitmap being reconstructed..
netconsole: network logging started
Calling initcall 0xc0000000006bd180: .macio_module_init+0x0/0x3c()
That's:
pci_restore_pcix_state(dev);
pci_restore_msi_state(dev);
WARN_ON(!hlist_empty(&dev->saved_cap_space));
return 0;
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-08 2:53 ` Andrew Morton
@ 2007-03-08 6:58 ` Eric W. Biederman
2007-03-08 9:55 ` Jeff Garzik
2007-03-08 10:23 ` SATA resume slowness, e1000 MSI warning Michael S. Tsirkin
0 siblings, 2 replies; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 6:58 UTC (permalink / raw)
To: Andrew Morton
Cc: Kok, Auke, Ingo Molnar, Jeff Garzik, Linus Torvalds,
Michael S. Tsirkin, Pavel Machek, Jens Axboe, Adrian Bunk,
Linux Kernel Mailing List, Thomas Gleixner, linux-pm,
Michal Piotrowski
Andrew Morton <akpm@linux-foundation.org> writes:
>
> That's:
>
> pci_restore_pcix_state(dev);
> pci_restore_msi_state(dev);
> WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> return 0;
Hmm. Either I am confused of I just found an unanticipated leak.
pci_restore_msi_state should be out of the picture as we don't yet
have ppc msi support and I don't think the g5 generation hardware
supported it either.
The only case I can see which might trigger this is if we saved
pci-X state and then didn't restore it because we could not find
the capability on restore.
Any chance you could walk that list and find the cap_nr of the remaining
element?
Something like:
{
struct pci_cap_saved_state *tmp;
struct hlist_node *pos;
hlist_for_each_entry(tmp, pos, &pci_dev->saved_cap_space, next)
printk(KERN_INFO "saved_cap: 0x%02x\n", tmp->cap_nr);
}
Until I get the best scenario I can come up with is a tg3 hardware bug
that doesn't renable the pci-X capability after a restore of power state.
Getting that cap_nr will at least allow me to be certain if I am dealing
with msi, pci-X or pci-e.
Unanticipated bugs aren't supposed to be this easy to find!
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-08 6:58 ` Eric W. Biederman
@ 2007-03-08 9:55 ` Jeff Garzik
2007-03-08 17:27 ` Eric W. Biederman
2007-03-08 10:23 ` SATA resume slowness, e1000 MSI warning Michael S. Tsirkin
1 sibling, 1 reply; 104+ messages in thread
From: Jeff Garzik @ 2007-03-08 9:55 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Michael S. Tsirkin, Thomas Gleixner, Linus Torvalds,
Andrew Morton
Eric W. Biederman wrote:
> Until I get the best scenario I can come up with is a tg3 hardware bug
> that doesn't renable the pci-X capability after a restore of power state.
Speaking of tg3, make sure you are aware that the number of calls to
save-state functions may not match the number of calls to the
restore-state functions. ISTR seeing some memleak bugs in PCI related
to this.
Jeff
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-08 6:58 ` Eric W. Biederman
2007-03-08 9:55 ` Jeff Garzik
@ 2007-03-08 10:23 ` Michael S. Tsirkin
2007-03-11 11:11 ` Eric W. Biederman
1 sibling, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-08 10:23 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
> The only case I can see which might trigger this is if we saved
> pci-X state and then didn't restore it because we could not find
> the capability on restore.
Hmm. pci_save_pcix_state/pci_restore_pcix_state seem to only handle
regular devices and seem to ignore the fact that for bridge PCI-X
capability has a different structure.
Is this intentional? If not, here's a patch to fix this.
Warning: completely untested.
PCI: restore bridge PCI-X capability registers after PM event
Restore PCI-X bridge up/downstream capability registers
after PM event. This includes maxumum split transaction
commitment limit which might be vital for PCI X.
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index df49530..4b788ef 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -597,14 +597,19 @@ static int pci_save_pcix_state(struct pci_dev *dev)
if (pos <= 0)
return 0;
- save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
+ save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 2, GFP_KERNEL);
if (!save_state) {
- dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
+ dev_err(&dev->dev, "Out of memory in pci_save_pcix_state\n");
return -ENOMEM;
}
cap = (u16 *)&save_state->data[0];
- pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
+ if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
+ pci_read_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, &cap[i++]);
+ pci_read_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, &cap[i++]);
+ } else
+ pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
+
pci_add_saved_cap(dev, save_state);
return 0;
}
@@ -621,7 +626,11 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
return;
cap = (u16 *)&save_state->data[0];
- pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
+ if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
+ pci_write_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, cap[i++]);
+ pci_write_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, cap[i++]);
+ } else
+ pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
pci_remove_saved_cap(save_state);
kfree(save_state);
}
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
index f09cce2..fb7eefd 100644
--- a/include/linux/pci_regs.h
+++ b/include/linux/pci_regs.h
@@ -332,6 +332,8 @@
#define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */
#define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
#define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
+#define PCI_X_BRIDGE_UP_SPL_CTL 10 /* PCI-X upstream split transaction limit */
+#define PCI_X_BRIDGE_DN_SPL_CTL 14 /* PCI-X downstream split transaction limit */
/* PCI Express capability registers */
--
MST
^ permalink raw reply related [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-08 9:55 ` Jeff Garzik
@ 2007-03-08 17:27 ` Eric W. Biederman
2007-03-08 19:58 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Eric W. Biederman
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 17:27 UTC (permalink / raw)
To: Jeff Garzik
Cc: Kok, Auke, Greg Kroah-Hartman, Michal Piotrowski, Ingo Molnar,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, linux-pci,
Pavel Machek, Jens Axboe, Michael S. Tsirkin, Thomas Gleixner,
Linus Torvalds, Andrew Morton
Jeff Garzik <jeff@garzik.org> writes:
> Eric W. Biederman wrote:
>> Until I get the best scenario I can come up with is a tg3 hardware bug
>> that doesn't renable the pci-X capability after a restore of power state.
>
>
> Speaking of tg3, make sure you are aware that the number of calls to save-state
> functions may not match the number of calls to the restore-state functions.
> ISTR seeing some memleak bugs in PCI related to this.
Thanks that looks like the problem, multiple calls to save before one
call to restore when you have a pci-x capability would easily trigger
this problem. I just surveyed a bunch of the pci_save_state and
pci_restore_state users and this appears to be a common idiom not just
a tg3 thing....
It looks like when code was added to save/restore the msi capability
was added to pci_save/restore_state that an assumption was added that
pci_save_state and pci_restore state were only used for suspend and
only used in pairs. There is even a partial bug fix that removed the
worst of the symptoms of that assumption from the msi code but failed
to recognize the core problem.
Now that we have code to work with pcie and pcix capabilities as well
as msi this problem is much easier to hit.
All of pci_save_state and pci_restore_state is going to have to be
restructured to fix this, and it is late in the game. Ugh.
Oh well, better to fix it now
At least I get my answer about if what pci_save_state is doing
is reasonable. It is not. pci_save_state no longer supports being
used in conjunction with hardware reset and has become a
suspend/resume specific function.
Now I'm off to wite some patches to fix this.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* [PATCH 0/2] Repair pci_restore_state when used with device resets
2007-03-08 17:27 ` Eric W. Biederman
@ 2007-03-08 19:58 ` Eric W. Biederman
2007-03-08 20:04 ` [PATCH 1/2] msi: Safer state caching Eric W. Biederman
2007-03-08 20:08 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Ingo Molnar
0 siblings, 2 replies; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 19:58 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Ingo Molnar
Well this is clearly a weird tangent from the topic of this thread but
it looks to have found some real bugs even if they aren't the ones we
are looking for.
In short pci_save_state and pci_restore_state are used to two primary
was: As a pair called from the suspend and restore routines. One save
to multiple restores usually present in hardware reset routines.
The additions to save/restore msi, pci-e and pci-x state failed to take
this second usage scenario into account.
The next two patches address this problem.
This should directly fix the issue observed with the tg3, with multiple
saves and a single restore.
It happens that to handle the reset case cleanly we also need to support
the odd usage model of the current e1000 driver.
I have never have figured out how to get suspend/resume actually
working on any of my machines so the code path is untested. But the
patches are trivial and pretty much obviously correct.
So if a couple people could do a quick suspend/resume test on these
patches to confirm I'm not blind that would be great.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* [PATCH 1/2] msi: Safer state caching.
2007-03-08 19:58 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Eric W. Biederman
@ 2007-03-08 20:04 ` Eric W. Biederman
2007-03-08 20:06 ` [PATCH 2/2] pci: Repair pci_save/restore_state so we can restore one save many times Eric W. Biederman
2007-03-08 20:08 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Ingo Molnar
1 sibling, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 20:04 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Ingo Molnar
There are two ways pci_save_state and pci_restore_state are used. As
helper functions during suspend/resume, and as helper functions around
a hardware reset event. When used as helper functions around a hardware
reset event there is no reason to believe the calls will be paired, nor
is there a good reason to believe that if we restore the msi state from
before the reset that it will match the current msi state. Since arch
code may change the msi message without going through the driver, drivers
currently do not have enough information to even know when to call
pci_save_state to ensure they will have msi state in sync with the other
kernel irq reception data structures.
It turns out the solution is straight forward, cache the state in the
existing msi data structures (not the magic pci saved things) and
have the msi code update the cached state each time we write to the hardware.
This means we never need to read the hardware to figure out what the hardware
state should be.
By modifying the caching in this manner we get to remove our save_state
routines and only need to provide restore_state routines.
The only fields that were at all tricky to regenerate were the msi and msi-x
control registers and the way we regenerate them currently is a bit dependent
upon assumptions on how we use the allow msi registers to be configured and used
making the code a little bit brittle. If we ever change what cases we allow
or how we configure the msi bits we can address the fragility then.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
drivers/pci/msi.c | 150 ++++++++--------------------------------------
drivers/pci/pci.c | 2 -
drivers/pci/pci.h | 2 -
include/linux/msi.h | 8 +--
include/linux/pci_regs.h | 1 +
5 files changed, 29 insertions(+), 134 deletions(-)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 01869b1..ad33e01 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -100,6 +100,7 @@ static void msi_set_mask_bit(unsigned int irq, int flag)
BUG();
break;
}
+ entry->msi_attrib.masked = !!flag;
}
void read_msi_msg(unsigned int irq, struct msi_msg *msg)
@@ -179,6 +180,7 @@ void write_msi_msg(unsigned int irq, struct msi_msg *msg)
default:
BUG();
}
+ entry->msg = *msg;
}
void mask_msi_irq(unsigned int irq)
@@ -225,164 +227,60 @@ static struct msi_desc* alloc_msi_entry(void)
}
#ifdef CONFIG_PM
-static int __pci_save_msi_state(struct pci_dev *dev)
-{
- int pos, i = 0;
- u16 control;
- struct pci_cap_saved_state *save_state;
- u32 *cap;
-
- if (!dev->msi_enabled)
- return 0;
-
- pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
- if (pos <= 0)
- return 0;
-
- save_state = kzalloc(sizeof(struct pci_cap_saved_state) + sizeof(u32) * 5,
- GFP_KERNEL);
- if (!save_state) {
- printk(KERN_ERR "Out of memory in pci_save_msi_state\n");
- return -ENOMEM;
- }
- cap = &save_state->data[0];
-
- pci_read_config_dword(dev, pos, &cap[i++]);
- control = cap[0] >> 16;
- pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO, &cap[i++]);
- if (control & PCI_MSI_FLAGS_64BIT) {
- pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI, &cap[i++]);
- pci_read_config_dword(dev, pos + PCI_MSI_DATA_64, &cap[i++]);
- } else
- pci_read_config_dword(dev, pos + PCI_MSI_DATA_32, &cap[i++]);
- if (control & PCI_MSI_FLAGS_MASKBIT)
- pci_read_config_dword(dev, pos + PCI_MSI_MASK_BIT, &cap[i++]);
- save_state->cap_nr = PCI_CAP_ID_MSI;
- pci_add_saved_cap(dev, save_state);
- return 0;
-}
-
static void __pci_restore_msi_state(struct pci_dev *dev)
{
- int i = 0, pos;
+ int pos;
u16 control;
- struct pci_cap_saved_state *save_state;
- u32 *cap;
+ struct msi_desc *entry;
if (!dev->msi_enabled)
return;
- save_state = pci_find_saved_cap(dev, PCI_CAP_ID_MSI);
- pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
- if (!save_state || pos <= 0)
- return;
- cap = &save_state->data[0];
+ entry = get_irq_msi(dev->irq);
+ pos = entry->msi_attrib.pos;
pci_intx(dev, 0); /* disable intx */
- control = cap[i++] >> 16;
msi_set_enable(dev, 0);
- pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO, cap[i++]);
- if (control & PCI_MSI_FLAGS_64BIT) {
- pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI, cap[i++]);
- pci_write_config_dword(dev, pos + PCI_MSI_DATA_64, cap[i++]);
- } else
- pci_write_config_dword(dev, pos + PCI_MSI_DATA_32, cap[i++]);
- if (control & PCI_MSI_FLAGS_MASKBIT)
- pci_write_config_dword(dev, pos + PCI_MSI_MASK_BIT, cap[i++]);
+ write_msi_msg(dev->irq, &entry->msg);
+ if (entry->msi_attrib.maskbit)
+ msi_set_mask_bit(dev->irq, entry->msi_attrib.masked);
+
+ pci_read_config_word(dev, pos + PCI_MSI_FLAGS, &control);
+ control &= ~(PCI_MSI_FLAGS_QSIZE | PCI_MSI_FLAGS_ENABLE);
+ if (entry->msi_attrib.maskbit || !entry->msi_attrib.masked)
+ control |= PCI_MSI_FLAGS_ENABLE;
pci_write_config_word(dev, pos + PCI_MSI_FLAGS, control);
- pci_remove_saved_cap(save_state);
- kfree(save_state);
-}
-
-static int __pci_save_msix_state(struct pci_dev *dev)
-{
- int pos;
- int irq, head, tail = 0;
- u16 control;
- struct pci_cap_saved_state *save_state;
-
- if (!dev->msix_enabled)
- return 0;
-
- pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
- if (pos <= 0)
- return 0;
-
- /* save the capability */
- pci_read_config_word(dev, msi_control_reg(pos), &control);
- save_state = kzalloc(sizeof(struct pci_cap_saved_state) + sizeof(u16),
- GFP_KERNEL);
- if (!save_state) {
- printk(KERN_ERR "Out of memory in pci_save_msix_state\n");
- return -ENOMEM;
- }
- *((u16 *)&save_state->data[0]) = control;
-
- /* save the table */
- irq = head = dev->first_msi_irq;
- while (head != tail) {
- struct msi_desc *entry;
-
- entry = get_irq_msi(irq);
- read_msi_msg(irq, &entry->msg_save);
-
- tail = entry->link.tail;
- irq = tail;
- }
-
- save_state->cap_nr = PCI_CAP_ID_MSIX;
- pci_add_saved_cap(dev, save_state);
- return 0;
-}
-
-int pci_save_msi_state(struct pci_dev *dev)
-{
- int rc;
-
- rc = __pci_save_msi_state(dev);
- if (rc)
- return rc;
-
- rc = __pci_save_msix_state(dev);
-
- return rc;
}
static void __pci_restore_msix_state(struct pci_dev *dev)
{
- u16 save;
int pos;
int irq, head, tail = 0;
struct msi_desc *entry;
- struct pci_cap_saved_state *save_state;
+ u16 control;
if (!dev->msix_enabled)
return;
- save_state = pci_find_saved_cap(dev, PCI_CAP_ID_MSIX);
- if (!save_state)
- return;
- save = *((u16 *)&save_state->data[0]);
- pci_remove_saved_cap(save_state);
- kfree(save_state);
-
- pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
- if (pos <= 0)
- return;
-
/* route the table */
pci_intx(dev, 0); /* disable intx */
msix_set_enable(dev, 0);
irq = head = dev->first_msi_irq;
+ entry = get_irq_msi(irq);
+ pos = entry->msi_attrib.pos;
while (head != tail) {
entry = get_irq_msi(irq);
- write_msi_msg(irq, &entry->msg_save);
+ write_msi_msg(irq, &entry->msg);
+ msi_set_mask_bit(irq, entry->msi_attrib.masked);
tail = entry->link.tail;
irq = tail;
}
- pci_write_config_word(dev, msi_control_reg(pos), save);
+ pci_read_config_word(dev, pos + PCI_MSIX_FLAGS, &control);
+ control &= ~PCI_MSIX_FLAGS_MASKALL;
+ control |= PCI_MSIX_FLAGS_ENABLE;
+ pci_write_config_word(dev, pos + PCI_MSIX_FLAGS, control);
}
void pci_restore_msi_state(struct pci_dev *dev)
@@ -420,6 +318,7 @@ static int msi_capability_init(struct pci_dev *dev)
entry->msi_attrib.is_64 = is_64bit_address(control);
entry->msi_attrib.entry_nr = 0;
entry->msi_attrib.maskbit = is_mask_bit_support(control);
+ entry->msi_attrib.masked = 1;
entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */
entry->msi_attrib.pos = pos;
if (is_mask_bit_support(control)) {
@@ -507,6 +406,7 @@ static int msix_capability_init(struct pci_dev *dev,
entry->msi_attrib.is_64 = 1;
entry->msi_attrib.entry_nr = j;
entry->msi_attrib.maskbit = 1;
+ entry->msi_attrib.masked = 1;
entry->msi_attrib.default_irq = dev->irq;
entry->msi_attrib.pos = pos;
entry->dev = dev;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index df49530..6fb78df 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -638,8 +638,6 @@ pci_save_state(struct pci_dev *dev)
/* XXX: 100% dword access ok here? */
for (i = 0; i < 16; i++)
pci_read_config_dword(dev, i * 4,&dev->saved_config_space[i]);
- if ((i = pci_save_msi_state(dev)) != 0)
- return i;
if ((i = pci_save_pcie_state(dev)) != 0)
return i;
if ((i = pci_save_pcix_state(dev)) != 0)
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index ae7a975..62ea04c 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -52,10 +52,8 @@ static inline void pci_no_msi(void) { }
#endif
#if defined(CONFIG_PCI_MSI) && defined(CONFIG_PM)
-int pci_save_msi_state(struct pci_dev *dev);
void pci_restore_msi_state(struct pci_dev *dev);
#else
-static inline int pci_save_msi_state(struct pci_dev *dev) { return 0; }
static inline void pci_restore_msi_state(struct pci_dev *dev) {}
#endif
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 74c8a2e..e38fe68 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -17,7 +17,7 @@ struct msi_desc {
struct {
__u8 type : 5; /* {0: unused, 5h:MSI, 11h:MSI-X} */
__u8 maskbit : 1; /* mask-pending bit supported ? */
- __u8 unused : 1;
+ __u8 masked : 1;
__u8 is_64 : 1; /* Address size: 0=32bit 1=64bit */
__u8 pos; /* Location of the msi capability */
__u16 entry_nr; /* specific enabled entry */
@@ -32,10 +32,8 @@ struct msi_desc {
void __iomem *mask_base;
struct pci_dev *dev;
-#ifdef CONFIG_PM
- /* PM save area for MSIX address/data */
- struct msi_msg msg_save;
-#endif
+ /* Last set MSI message */
+ struct msi_msg msg;
};
/*
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
index f09cce2..495d368 100644
--- a/include/linux/pci_regs.h
+++ b/include/linux/pci_regs.h
@@ -296,6 +296,7 @@
#define PCI_MSIX_FLAGS 2
#define PCI_MSIX_FLAGS_QSIZE 0x7FF
#define PCI_MSIX_FLAGS_ENABLE (1 << 15)
+#define PCI_MSIX_FLAGS_MASKALL (1 << 14)
#define PCI_MSIX_FLAGS_BIRMASK (7 << 0)
#define PCI_MSIX_FLAGS_BITMASK (1 << 0)
--
1.5.0.g53756
^ permalink raw reply related [flat|nested] 104+ messages in thread
* [PATCH 2/2] pci: Repair pci_save/restore_state so we can restore one save many times.
2007-03-08 20:04 ` [PATCH 1/2] msi: Safer state caching Eric W. Biederman
@ 2007-03-08 20:06 ` Eric W. Biederman
2007-03-12 22:46 ` Kok, Auke
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 20:06 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Ingo Molnar
Because we do not reserve space for the pci-x and pci-e state in struct
pci dev we need to dynamically allocate it. However because we need
to support restore being called multiple times after a single save
it is never safe to free the buffers we have allocated to hold the
state.
So this patch modifies the save routines to first check to see
if we have already allocated a state buffer before allocating
a new one. Then the restore routines are modified to not free
the state after restoring it. Simple and it fixes some subtle
error path handling bugs, that are hard to test for.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
drivers/pci/pci.c | 12 ++++++------
include/linux/pci.h | 5 -----
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 6fb78df..b292c9a 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -551,7 +551,9 @@ static int pci_save_pcie_state(struct pci_dev *dev)
if (pos <= 0)
return 0;
- save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 4, GFP_KERNEL);
+ save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
+ if (!save_state)
+ save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 4, GFP_KERNEL);
if (!save_state) {
dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
return -ENOMEM;
@@ -582,8 +584,6 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]);
pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
- pci_remove_saved_cap(save_state);
- kfree(save_state);
}
@@ -597,7 +597,9 @@ static int pci_save_pcix_state(struct pci_dev *dev)
if (pos <= 0)
return 0;
- save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
+ save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
+ if (!save_state)
+ save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
if (!save_state) {
dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
return -ENOMEM;
@@ -622,8 +624,6 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
cap = (u16 *)&save_state->data[0];
pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
- pci_remove_saved_cap(save_state);
- kfree(save_state);
}
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 78417e4..481ea06 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -209,11 +209,6 @@ static inline void pci_add_saved_cap(struct pci_dev *pci_dev,
hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space);
}
-static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap)
-{
- hlist_del(&cap->next);
-}
-
/*
* For PCI devices, the region numbers are assigned this way:
*
--
1.5.0.g53756
^ permalink raw reply related [flat|nested] 104+ messages in thread
* Re: [PATCH 0/2] Repair pci_restore_state when used with device resets
2007-03-08 19:58 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Eric W. Biederman
2007-03-08 20:04 ` [PATCH 1/2] msi: Safer state caching Eric W. Biederman
@ 2007-03-08 20:08 ` Ingo Molnar
2007-03-08 20:26 ` Eric W. Biederman
1 sibling, 1 reply; 104+ messages in thread
From: Ingo Molnar @ 2007-03-08 20:08 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Andrew Morton
* Eric W. Biederman <ebiederm@xmission.com> wrote:
> I have never have figured out how to get suspend/resume actually
> working on any of my machines [...]
ouch! Are you interested in getting it work?
Ingo
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [PATCH 0/2] Repair pci_restore_state when used with device resets
2007-03-08 20:08 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Ingo Molnar
@ 2007-03-08 20:26 ` Eric W. Biederman
0 siblings, 0 replies; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-08 20:26 UTC (permalink / raw)
To: Ingo Molnar
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Andrew Morton
Ingo Molnar <mingo@elte.hu> writes:
> * Eric W. Biederman <ebiederm@xmission.com> wrote:
>
>> I have never have figured out how to get suspend/resume actually
>> working on any of my machines [...]
>
> ouch! Are you interested in getting it work?
I haven't even seriously tried. I don't yet have a laptop and I like
staying logged. The first time I rolled the jiffie counter it was a
happened after I had realized that if I kept my machine up for another
couple of months my jiffie counter would roll and I said why not So
basically suspend hasn't been a feature I'm been interested in using.
I get more annoyed at my UPS failing..
I will probably get around to figuring out the whole suspend/resume
thing one of these days and it will probably take me a day or two.
But that doesn't result in bug fixes being delivered in a timely manner.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (part 2)
2007-03-05 8:42 ` Michael S. Tsirkin
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
@ 2007-03-09 6:44 ` Pavel Machek
1 sibling, 0 replies; 104+ messages in thread
From: Pavel Machek @ 2007-03-09 6:44 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel Walker, Michal Piotrowski, Jens Axboe, Adrian Bunk,
Linus Torvalds, Thomas Gleixner, Ingo Molnar, linux-pm,
Andrew Morton, Linux Kernel Mailing List
Hi!
> Pavel, I tried with your .config, and indeed the system came back to life after
> 2-3 minutes after I press Fn/F4, indeed the issue seems to be with the disk.
> It could be that the same takes place with my original .config - maybe
> I just wasn't patient enough. I'll need to re-test that.
>
> However, I noticed that, after resume, when the system is presumably functional,
> if I try to suspend to ram again, this second suspend hangs, displaying
> the following on screen:
>
> [ 17.170000] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 20
> [ 17.170000] PCI: Setting latency timer of device 0000:02:00.0 to 64
> [ 17.250000] e1000: 0000:02:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1) 00:16:41:5
> 4:6c:47
> [ 17.330000] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
>
> the crescent LED starts blinking and does not seem to stop for at lest 10 min,
> I've run out of patience after that. It could be that it's just very slow again.
>
> Pavel, did you try suspend to RAM after a successfull resume from
> RAM?
Seems to work ok in -rc3... as long as I do not mix s2ram with s2disk.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-07 19:28 ` Eric W. Biederman
2007-03-08 2:53 ` Andrew Morton
@ 2007-03-09 23:06 ` Kok, Auke
2007-03-10 3:41 ` Eric W. Biederman
1 sibling, 1 reply; 104+ messages in thread
From: Kok, Auke @ 2007-03-09 23:06 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Andrew Morton, Jeff Garzik, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, Michal Piotrowski
Eric W. Biederman wrote:
[CHOP]
> Below is an additional set of warnings that should help debug this.
> The old code just got lucky that it triggered a warning when this happens.
I'm trying this patch together with the other 2 that you sent out a few days
ago. I'm seeing some minor issues with this and lots of bogus warnings as far as
I can see.
If I suspend/resume and unload e1000, then reinsert e1000.ko, I immediately hit
the WARN_ON at `msi.c:516: WARN_ON(!hlist_empty(&dev->saved_cap_space));`
I'm not sure that's useful debugging information. even though saved state exists
the module has been removed, so you might want to purge the state table when the
driver gets removed?
anyway, back to testing.
Auke
>
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 01869b1..5113913 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -613,6 +613,7 @@ int pci_enable_msi(struct pci_dev* dev)
> return -EINVAL;
>
> WARN_ON(!!dev->msi_enabled);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> /* Check whether driver already requested for MSI-X irqs */
> if (dev->msix_enabled) {
> @@ -638,6 +639,8 @@ void pci_disable_msi(struct pci_dev* dev)
> if (!dev->msi_enabled)
> return;
>
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
> +
> msi_set_enable(dev, 0);
> pci_intx(dev, 1); /* enable intx */
> dev->msi_enabled = 0;
> @@ -739,6 +742,7 @@ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec)
> }
> }
> WARN_ON(!!dev->msix_enabled);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> /* Check whether driver already requested for MSI irq */
> if (dev->msi_enabled) {
> @@ -763,6 +767,8 @@ void pci_disable_msix(struct pci_dev* dev)
> if (!dev->msix_enabled)
> return;
>
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
> +
> msix_set_enable(dev, 0);
> pci_intx(dev, 1); /* enable intx */
> dev->msix_enabled = 0;
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index bd44a48..4418839 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -677,6 +677,7 @@ pci_restore_state(struct pci_dev *dev)
> }
> pci_restore_pcix_state(dev);
> pci_restore_msi_state(dev);
> + WARN_ON(!hlist_empty(&dev->saved_cap_space));
>
> return 0;
> }
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-09 23:06 ` Kok, Auke
@ 2007-03-10 3:41 ` Eric W. Biederman
0 siblings, 0 replies; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-10 3:41 UTC (permalink / raw)
To: Kok, Auke
Cc: Andrew Morton, Jeff Garzik, linux-pm, Linux Kernel Mailing List,
Adrian Bunk, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Linus Torvalds, Ingo Molnar, Michal Piotrowski
"Kok, Auke" <auke-jan.h.kok@intel.com> writes:
> Eric W. Biederman wrote:
>
> [CHOP]
>
>> Below is an additional set of warnings that should help debug this.
>> The old code just got lucky that it triggered a warning when this happens.
>
>
> I'm trying this patch together with the other 2 that you sent out a few days
> ago. I'm seeing some minor issues with this and lots of bogus warnings as far as
> I can see.
>
> If I suspend/resume and unload e1000, then reinsert e1000.ko, I immediately hit
> the WARN_ON at `msi.c:516: WARN_ON(!hlist_empty(&dev->saved_cap_space));`
>
> I'm not sure that's useful debugging information. even though saved state exists
> the module has been removed, so you might want to purge the state table when the
> driver gets removed?
>
>
> anyway, back to testing.
Sorry I should have been clear.
With the last two patches I sent out:
pci: Repair pci_save/restore_state so we can restore one save many times.
msi: Safer state caching.
Those WARN_ON's are now totally bogus.
In essence the WARN_ON's were testing to ensure pci_save_state and
pci_restore_state were paired.
The assumptions was that pci_restore_state would remove everything
from the list that pci_save_state placed on it.
When I reworked the code and removed the bogus pairing requirement it meant
that if we ever save state and have a pci-e or pci-x capability we will have
a state structure on the list until the kernel reboots.
In summary:
pci_save_state and pci_restore_state were making a wrong assumption
about the world. The WARN_ON patch tested to ensure the world matched
those functions. When I fixed those functions to match the world the
WARN_ON's became completely bogus.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-08 10:23 ` SATA resume slowness, e1000 MSI warning Michael S. Tsirkin
@ 2007-03-11 11:11 ` Eric W. Biederman
2007-03-11 11:24 ` Michael S. Tsirkin
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-11 11:11 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
"Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>> The only case I can see which might trigger this is if we saved
>> pci-X state and then didn't restore it because we could not find
>> the capability on restore.
>
> Hmm. pci_save_pcix_state/pci_restore_pcix_state seem to only handle
> regular devices and seem to ignore the fact that for bridge PCI-X
> capability has a different structure.
>
> Is this intentional?
Probably not a such. I don't think we have any drivers for bridge
devices so I don't think it matters. It likely wouldn't hurt to fix
it just in case though.
Do any of the mellanox cards do anything with the bridge on the card?
> If not, here's a patch to fix this. Warning: completely untested.
If you fix the offsets and diff this against my last fix (to never
free the buffer) I think your patch makes sense.
> PCI: restore bridge PCI-X capability registers after PM event
>
> Restore PCI-X bridge up/downstream capability registers
> after PM event. This includes maxumum split transaction
> commitment limit which might be vital for PCI X.
>
> Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index df49530..4b788ef 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -597,14 +597,19 @@ static int pci_save_pcix_state(struct pci_dev *dev)
> if (pos <= 0)
> return 0;
>
> - save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
> + save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 2, GFP_KERNEL);
> if (!save_state) {
> - dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
> + dev_err(&dev->dev, "Out of memory in pci_save_pcix_state\n");
> return -ENOMEM;
> }
> cap = (u16 *)&save_state->data[0];
>
> - pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
This appears to be the proper test.
> + pci_read_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, &cap[i++]);
> + pci_read_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, &cap[i++]);
> + } else
> + pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> +
> pci_add_saved_cap(dev, save_state);
> return 0;
> }
> @@ -621,7 +626,11 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
> return;
> cap = (u16 *)&save_state->data[0];
>
> - pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
> + pci_write_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, cap[i++]);
> + pci_write_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, cap[i++]);
These look like the proper two registers to save.
> + } else
> + pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> pci_remove_saved_cap(save_state);
> kfree(save_state);
> }
> diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
> index f09cce2..fb7eefd 100644
> --- a/include/linux/pci_regs.h
> +++ b/include/linux/pci_regs.h
> @@ -332,6 +332,8 @@
> #define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */
> #define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
> #define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
> +#define PCI_X_BRIDGE_UP_SPL_CTL 10 /* PCI-X upstream split transaction limit */
> +#define PCI_X_BRIDGE_DN_SPL_CTL 14 /* PCI-X downstream split transaction limit */
Unless I am completely misreading the spec. While you have picked the
right register to save the offsets should be 0x08 and 0x0c or 8 and 12....
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 11:11 ` Eric W. Biederman
@ 2007-03-11 11:24 ` Michael S. Tsirkin
2007-03-11 17:37 ` Eric W. Biederman
2007-04-16 19:56 ` Michael S. Tsirkin
0 siblings, 2 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-11 11:24 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
> Quoting Eric W. Biederman <ebiederm@xmission.com>:
> Subject: Re: SATA resume slowness, e1000 MSI warning
>
> "Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>
> >> The only case I can see which might trigger this is if we saved
> >> pci-X state and then didn't restore it because we could not find
> >> the capability on restore.
> >
> > Hmm. pci_save_pcix_state/pci_restore_pcix_state seem to only handle
> > regular devices and seem to ignore the fact that for bridge PCI-X
> > capability has a different structure.
> >
> > Is this intentional?
>
> Probably not a such. I don't think we have any drivers for bridge
> devices so I don't think it matters. It likely wouldn't hurt to fix
> it just in case though.
>
> Do any of the mellanox cards do anything with the bridge on the card?
Yes but they do their own thing wrt saving/restoring registers.
Look at drivers/infiniband/hw/mthca/mthca_reset.c
> > If not, here's a patch to fix this. Warning: completely untested.
>
> If you fix the offsets and diff this against my last fix (to never
> free the buffer) I think your patch makes sense.
Let's agree what the correct offsets are.
> > PCI: restore bridge PCI-X capability registers after PM event
> >
> > Restore PCI-X bridge up/downstream capability registers
> > after PM event. This includes maxumum split transaction
> > commitment limit which might be vital for PCI X.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> >
> > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> > index df49530..4b788ef 100644
> > --- a/drivers/pci/pci.c
> > +++ b/drivers/pci/pci.c
> > @@ -597,14 +597,19 @@ static int pci_save_pcix_state(struct pci_dev *dev)
> > if (pos <= 0)
> > return 0;
> >
> > - save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
> > + save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 2, GFP_KERNEL);
> > if (!save_state) {
> > - dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
> > + dev_err(&dev->dev, "Out of memory in pci_save_pcix_state\n");
> > return -ENOMEM;
> > }
> > cap = (u16 *)&save_state->data[0];
> >
> > - pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
>
> This appears to be the proper test.
>
> > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, &cap[i++]);
> > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, &cap[i++]);
> > + } else
> > + pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> > +
> > pci_add_saved_cap(dev, save_state);
> > return 0;
> > }
> > @@ -621,7 +626,11 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
> > return;
> > cap = (u16 *)&save_state->data[0];
> >
> > - pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
> > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, cap[i++]);
> > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, cap[i++]);
>
> These look like the proper two registers to save.
>
> > + } else
> > + pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> > pci_remove_saved_cap(save_state);
> > kfree(save_state);
> > }
> > diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
> > index f09cce2..fb7eefd 100644
> > --- a/include/linux/pci_regs.h
> > +++ b/include/linux/pci_regs.h
> > @@ -332,6 +332,8 @@
> > #define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */
> > #define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
> > #define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
> > +#define PCI_X_BRIDGE_UP_SPL_CTL 10 /* PCI-X upstream split transaction limit */
> > +#define PCI_X_BRIDGE_DN_SPL_CTL 14 /* PCI-X downstream split transaction limit */
>
> Unless I am completely misreading the spec. While you have picked the
> right register to save the offsets should be 0x08 and 0x0c or 8 and 12....
No, the spec is written in terms of dwords (32 bit), we are storing words (16 bits).
The data at offsets 8 and 12 is read-only split transaction capacity.
Split transaction limit starts at bit 16 so you need to add 2 to byte offset.
Right?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 11:24 ` Michael S. Tsirkin
@ 2007-03-11 17:37 ` Eric W. Biederman
2007-03-11 18:03 ` Michael S. Tsirkin
2007-04-16 19:56 ` Michael S. Tsirkin
1 sibling, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-11 17:37 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
"Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>> Quoting Eric W. Biederman <ebiederm@xmission.com>:
>> Subject: Re: SATA resume slowness, e1000 MSI warning
>>
>> "Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>>
>> >> The only case I can see which might trigger this is if we saved
>> >> pci-X state and then didn't restore it because we could not find
>> >> the capability on restore.
>> >
>> > Hmm. pci_save_pcix_state/pci_restore_pcix_state seem to only handle
>> > regular devices and seem to ignore the fact that for bridge PCI-X
>> > capability has a different structure.
>> >
>> > Is this intentional?
>>
>> Probably not a such. I don't think we have any drivers for bridge
>> devices so I don't think it matters. It likely wouldn't hurt to fix
>> it just in case though.
>>
>> Do any of the mellanox cards do anything with the bridge on the card?
>
> Yes but they do their own thing wrt saving/restoring registers.
> Look at drivers/infiniband/hw/mthca/mthca_reset.c
>
>> > If not, here's a patch to fix this. Warning: completely untested.
>>
>> If you fix the offsets and diff this against my last fix (to never
>> free the buffer) I think your patch makes sense.
>
> Let's agree what the correct offsets are.
>
>> > PCI: restore bridge PCI-X capability registers after PM event
>> >
>> > Restore PCI-X bridge up/downstream capability registers
>> > after PM event. This includes maxumum split transaction
>> > commitment limit which might be vital for PCI X.
>> >
>> > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
>> >
>> > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
>> > index df49530..4b788ef 100644
>> > --- a/drivers/pci/pci.c
>> > +++ b/drivers/pci/pci.c
>> > @@ -597,14 +597,19 @@ static int pci_save_pcix_state(struct pci_dev *dev)
>> > if (pos <= 0)
>> > return 0;
>> >
>> > - save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
>> > + save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 2, GFP_KERNEL);
>> > if (!save_state) {
>> > - dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
>> > + dev_err(&dev->dev, "Out of memory in pci_save_pcix_state\n");
>> > return -ENOMEM;
>> > }
>> > cap = (u16 *)&save_state->data[0];
>> >
>> > - pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
>> > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
>>
>> This appears to be the proper test.
>>
>> > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, &cap[i++]);
>> > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, &cap[i++]);
>> > + } else
>> > + pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
>> > +
>> > pci_add_saved_cap(dev, save_state);
>> > return 0;
>> > }
>> > @@ -621,7 +626,11 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
>> > return;
>> > cap = (u16 *)&save_state->data[0];
>> >
>> > - pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
>> > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
>> > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, cap[i++]);
>> > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, cap[i++]);
>>
>> These look like the proper two registers to save.
>>
>> > + } else
>> > + pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
>> > pci_remove_saved_cap(save_state);
>> > kfree(save_state);
>> > }
>> > diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
>> > index f09cce2..fb7eefd 100644
>> > --- a/include/linux/pci_regs.h
>> > +++ b/include/linux/pci_regs.h
>> > @@ -332,6 +332,8 @@
>> > #define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg
> */
>> > #define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
>> > #define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
>> > +#define PCI_X_BRIDGE_UP_SPL_CTL 10 /* PCI-X upstream split transaction
> limit */
>> > +#define PCI_X_BRIDGE_DN_SPL_CTL 14 /* PCI-X downstream split transaction
> limit */
>>
>> Unless I am completely misreading the spec. While you have picked the
>> right register to save the offsets should be 0x08 and 0x0c or 8 and 12....
>
> No, the spec is written in terms of dwords (32 bit), we are storing words (16
> bits).
> The data at offsets 8 and 12 is read-only split transaction capacity.
> Split transaction limit starts at bit 16 so you need to add 2 to byte offset.
>
> Right?
>From that perspective it makes sense. So I will agree with the way you are
thinking the code works.
The read-only and the read-write part are all defined as part of the
same register so I didn't expect them to be separate. And I hadn't
paid attention enough to see that the code was only saving 16bit
values.
Rumor has it that some pci devices can't tolerate < 32bit accesses.
Although I have never met one. The two factors together suggest that
for generic code it probably makes sense to operate on 32bit
quantities, and just to ignore the read-only portion.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 17:37 ` Eric W. Biederman
@ 2007-03-11 18:03 ` Michael S. Tsirkin
2007-03-11 18:27 ` Eric W. Biederman
0 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-11 18:03 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
> Rumor has it that some pci devices can't tolerate < 32bit accesses.
> Although I have never met one.
hopefully not bridge devices?
> The two factors together suggest that
> for generic code it probably makes sense to operate on 32bit
> quantities, and just to ignore the read-only portion.
The code for regular devices seems to use 16-bit accesses, so
I think it's best to stay consistent. Or do you want to change this too?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 18:03 ` Michael S. Tsirkin
@ 2007-03-11 18:27 ` Eric W. Biederman
2007-03-11 18:37 ` Michael S. Tsirkin
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-11 18:27 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
"Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>> Rumor has it that some pci devices can't tolerate < 32bit accesses.
>> Although I have never met one.
>
> hopefully not bridge devices?
>
>> The two factors together suggest that
>> for generic code it probably makes sense to operate on 32bit
>> quantities, and just to ignore the read-only portion.
>
> The code for regular devices seems to use 16-bit accesses, so
> I think it's best to stay consistent. Or do you want to change this too?
If we are stomping rare probabilities we might as well change that too.
The code to save pci-x state is relatively recent. So it probably just
hasn't met a problem device yet (assuming they exist).
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 18:27 ` Eric W. Biederman
@ 2007-03-11 18:37 ` Michael S. Tsirkin
2007-03-11 19:50 ` Eric W. Biederman
0 siblings, 1 reply; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-11 18:37 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
> Quoting Eric W. Biederman <ebiederm@xmission.com>:
> Subject: Re: SATA resume slowness, e1000 MSI warning
>
> "Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>
> >> Rumor has it that some pci devices can't tolerate < 32bit accesses.
> >> Although I have never met one.
> >
> > hopefully not bridge devices?
> >
> >> The two factors together suggest that
> >> for generic code it probably makes sense to operate on 32bit
> >> quantities, and just to ignore the read-only portion.
> >
> > The code for regular devices seems to use 16-bit accesses, so
> > I think it's best to stay consistent. Or do you want to change this too?
>
> If we are stomping rare probabilities we might as well change that too.
> The code to save pci-x state is relatively recent. So it probably just
> hasn't met a problem device yet (assuming they exist).
OK I guess. I gather we assume writing read-only registers has no side effects?
Are there rumors circulating wrt to these?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 18:37 ` Michael S. Tsirkin
@ 2007-03-11 19:50 ` Eric W. Biederman
2007-03-12 4:35 ` Michael S. Tsirkin
0 siblings, 1 reply; 104+ messages in thread
From: Eric W. Biederman @ 2007-03-11 19:50 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
"Michael S. Tsirkin" <mst@mellanox.co.il> writes:
> OK I guess. I gather we assume writing read-only registers has no side effects?
> Are there rumors circulating wrt to these?
I haven't heard anything about that, and if we are writing the same value back
it should be pretty safe.
I have heard it asserted that at least one version of the pci spec
only required 32bit accesses to be supported by the hardware. One of
these days I will have to look that and see if it is true. I do know
it can be weird for hardware developers to support multiple kinds of
decode. As I recall for pci and pci-x at the hardware level the only
difference in between 32bit transactions and smaller ones is the state
of the byte-enable lines.
Eric
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 19:50 ` Eric W. Biederman
@ 2007-03-12 4:35 ` Michael S. Tsirkin
0 siblings, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-03-12 4:35 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Ingo Molnar, linux-pm,
Linux Kernel Mailing List, Adrian Bunk, Pavel Machek, Jens Axboe,
Thomas Gleixner, Linus Torvalds, Andrew Morton
> Quoting Eric W. Biederman <ebiederm@xmission.com>:
> Subject: Re: SATA resume slowness, e1000 MSI warning
>
> "Michael S. Tsirkin" <mst@mellanox.co.il> writes:
>
> > OK I guess. I gather we assume writing read-only registers has no side effects?
> > Are there rumors circulating wrt to these?
>
> I haven't heard anything about that, and if we are writing the same value back
> it should be pretty safe.
>
> I have heard it asserted that at least one version of the pci spec
> only required 32bit accesses to be supported by the hardware. One of
> these days I will have to look that and see if it is true.
Maybe. But surely before the PCI-X days.
> I do know
> it can be weird for hardware developers to support multiple kinds of
> decode.
Is this the only place where Linux uses pci_read_config_word/pci_read_config_dword?
I think such hardware will be pretty much DOA on all OS-es. Why don't we wait
and see whether someone reports a broken config?
> As I recall for pci and pci-x at the hardware level the only
> difference in between 32bit transactions and smaller ones is the state
> of the byte-enable lines.
True, and same holds for PCI-Express.
So let's assume hardware implements RO correctly but ignores the BE bits -
nothing bad happens then, right?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: [PATCH 2/2] pci: Repair pci_save/restore_state so we can restore one save many times.
2007-03-08 20:06 ` [PATCH 2/2] pci: Repair pci_save/restore_state so we can restore one save many times Eric W. Biederman
@ 2007-03-12 22:46 ` Kok, Auke
0 siblings, 0 replies; 104+ messages in thread
From: Kok, Auke @ 2007-03-12 22:46 UTC (permalink / raw)
To: Eric W. Biederman, Andrew Morton, Linus Torvalds
Cc: Kok, Auke, Michal Piotrowski, Jeff Garzik, Greg Kroah-Hartman,
linux-pm, Linux Kernel Mailing List, Adrian Bunk, michael,
linux-pci, Pavel Machek, Jens Axboe, Michael S. Tsirkin,
Thomas Gleixner, Ingo Molnar
Eric W. Biederman wrote:
> Because we do not reserve space for the pci-x and pci-e state in struct
> pci dev we need to dynamically allocate it. However because we need
> to support restore being called multiple times after a single save
> it is never safe to free the buffers we have allocated to hold the
> state.
>
> So this patch modifies the save routines to first check to see
> if we have already allocated a state buffer before allocating
> a new one. Then the restore routines are modified to not free
> the state after restoring it. Simple and it fixes some subtle
> error path handling bugs, that are hard to test for.
>
> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
I tested this patch and the other 2 in this series:
[PATCH 0/2] Repair pci_restore_state when used with device resets
[PATCH 1/2] msi: Safer state caching.
against e1000 with suspend/resume functionality. Apart from a minor symmetry
violation in e1000 for which I will send a patch later, these patches appear to
work fine on my ich8 with 5 msi capable e1000 ports.
Feel free to add my Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Cheers,
Auke
> ---
> drivers/pci/pci.c | 12 ++++++------
> include/linux/pci.h | 5 -----
> 2 files changed, 6 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 6fb78df..b292c9a 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -551,7 +551,9 @@ static int pci_save_pcie_state(struct pci_dev *dev)
> if (pos <= 0)
> return 0;
>
> - save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 4, GFP_KERNEL);
> + save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
> + if (!save_state)
> + save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 4, GFP_KERNEL);
> if (!save_state) {
> dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
> return -ENOMEM;
> @@ -582,8 +584,6 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
> pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]);
> pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
> pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
> - pci_remove_saved_cap(save_state);
> - kfree(save_state);
> }
>
>
> @@ -597,7 +597,9 @@ static int pci_save_pcix_state(struct pci_dev *dev)
> if (pos <= 0)
> return 0;
>
> - save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
> + save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
> + if (!save_state)
> + save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
> if (!save_state) {
> dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
> return -ENOMEM;
> @@ -622,8 +624,6 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
> cap = (u16 *)&save_state->data[0];
>
> pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> - pci_remove_saved_cap(save_state);
> - kfree(save_state);
> }
>
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 78417e4..481ea06 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -209,11 +209,6 @@ static inline void pci_add_saved_cap(struct pci_dev *pci_dev,
> hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space);
> }
>
> -static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap)
> -{
> - hlist_del(&cap->next);
> -}
> -
> /*
> * For PCI devices, the region numbers are assigned this way:
> *
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-06 12:12 ` Jeff Chua
@ 2007-03-19 15:32 ` Pavel Machek
2007-03-19 21:23 ` Rafael J. Wysocki
0 siblings, 1 reply; 104+ messages in thread
From: Pavel Machek @ 2007-03-19 15:32 UTC (permalink / raw)
To: Jeff Chua
Cc: Michael S. Tsirkin, Adrian Bunk, Linux Kernel Mailing List,
linux-pm, Ingo Molnar, lenb, linux-acpi
> >> > > > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> >> > > > from RAM, can't suspend to disk. It is possible to revert all the
> >> > > > changes to ACPI and test it?
> >> > >
> >> > > This is with CONFIG_KVM=n?
> >> >
> >> > Yes.
> >>
> >> I've tried with CONFIG_KVM=n and CONFIG_KVM=y and both does not suspend.
> >
> >Do you mean that they "do not resume after suspend"?
>
> I can't even suspend to disk/ram. It just hangs and the lights just
> blink and everything else hangs. With 2.6.20, it works fine.
Turn up console loglevel, and see where it hangs...
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: 2.6.21-rc1: known regressions (v2) (part 1)
2007-03-19 15:32 ` Pavel Machek
@ 2007-03-19 21:23 ` Rafael J. Wysocki
0 siblings, 0 replies; 104+ messages in thread
From: Rafael J. Wysocki @ 2007-03-19 21:23 UTC (permalink / raw)
To: Pavel Machek
Cc: Jeff Chua, Michael S. Tsirkin, Adrian Bunk,
Linux Kernel Mailing List, linux-pm, Ingo Molnar, lenb,
linux-acpi
On Monday, 19 March 2007 16:32, Pavel Machek wrote:
>
> > >> > > > I have the same problem on my IBM X60s on rc1 and rc2. Can't resume
> > >> > > > from RAM, can't suspend to disk. It is possible to revert all the
> > >> > > > changes to ACPI and test it?
> > >> > >
> > >> > > This is with CONFIG_KVM=n?
> > >> >
> > >> > Yes.
> > >>
> > >> I've tried with CONFIG_KVM=n and CONFIG_KVM=y and both does not suspend.
> > >
> > >Do you mean that they "do not resume after suspend"?
> >
> > I can't even suspend to disk/ram. It just hangs and the lights just
> > blink and everything else hangs. With 2.6.20, it works fine.
>
> Turn up console loglevel, and see where it hangs...
I think CONFIG_DISABLE_CONSOLE_SUSPEND would have to be set for this purpose
too.
Greetings,
Rafael
^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: SATA resume slowness, e1000 MSI warning
2007-03-11 11:24 ` Michael S. Tsirkin
2007-03-11 17:37 ` Eric W. Biederman
@ 2007-04-16 19:56 ` Michael S. Tsirkin
1 sibling, 0 replies; 104+ messages in thread
From: Michael S. Tsirkin @ 2007-04-16 19:56 UTC (permalink / raw)
To: Eric W. Biederman
Cc: Andrew Morton, Kok, Auke, Ingo Molnar, Jeff Garzik,
Linus Torvalds, Pavel Machek, Jens Axboe, Adrian Bunk,
Linux Kernel Mailing List, Thomas Gleixner, linux-pm,
Michal Piotrowski
> > > Hmm. pci_save_pcix_state/pci_restore_pcix_state seem to only handle
> > > regular devices and seem to ignore the fact that for bridge PCI-X
> > > capability has a different structure.
> > >
> > > Is this intentional?
> >
> > Probably not a such. I don't think we have any drivers for bridge
> > devices so I don't think it matters. It likely wouldn't hurt to fix
> > it just in case though.
> >
> > Do any of the mellanox cards do anything with the bridge on the card?
>
> Yes but they do their own thing wrt saving/restoring registers.
> Look at drivers/infiniband/hw/mthca/mthca_reset.c
>
> > > If not, here's a patch to fix this. Warning: completely untested.
> >
> > If you fix the offsets and diff this against my last fix (to never
> > free the buffer) I think your patch makes sense.
>
> Let's agree what the correct offsets are.
>
> > > PCI: restore bridge PCI-X capability registers after PM event
> > >
> > > Restore PCI-X bridge up/downstream capability registers
> > > after PM event. This includes maxumum split transaction
> > > commitment limit which might be vital for PCI X.
> > >
> > > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> > >
> > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> > > index df49530..4b788ef 100644
> > > --- a/drivers/pci/pci.c
> > > +++ b/drivers/pci/pci.c
> > > @@ -597,14 +597,19 @@ static int pci_save_pcix_state(struct pci_dev *dev)
> > > if (pos <= 0)
> > > return 0;
> > >
> > > - save_state = kzalloc(sizeof(*save_state) + sizeof(u16), GFP_KERNEL);
> > > + save_state = kzalloc(sizeof(*save_state) + sizeof(u16) * 2, GFP_KERNEL);
> > > if (!save_state) {
> > > - dev_err(&dev->dev, "Out of memory in pci_save_pcie_state\n");
> > > + dev_err(&dev->dev, "Out of memory in pci_save_pcix_state\n");
> > > return -ENOMEM;
> > > }
> > > cap = (u16 *)&save_state->data[0];
> > >
> > > - pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> > > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
> >
> > This appears to be the proper test.
> >
> > > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, &cap[i++]);
> > > + pci_read_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, &cap[i++]);
> > > + } else
> > > + pci_read_config_word(dev, pos + PCI_X_CMD, &cap[i++]);
> > > +
> > > pci_add_saved_cap(dev, save_state);
> > > return 0;
> > > }
> > > @@ -621,7 +626,11 @@ static void pci_restore_pcix_state(struct pci_dev *dev)
> > > return;
> > > cap = (u16 *)&save_state->data[0];
> > >
> > > - pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> > > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) {
> > > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_UP_SPL_CTL, cap[i++]);
> > > + pci_write_config_word(dev, pos + PCI_X_BRIDGE_DN_SPL_CTL, cap[i++]);
> >
> > These look like the proper two registers to save.
> >
> > > + } else
> > > + pci_write_config_word(dev, pos + PCI_X_CMD, cap[i++]);
> > > pci_remove_saved_cap(save_state);
> > > kfree(save_state);
> > > }
> > > diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
> > > index f09cce2..fb7eefd 100644
> > > --- a/include/linux/pci_regs.h
> > > +++ b/include/linux/pci_regs.h
> > > @@ -332,6 +332,8 @@
> > > #define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */
> > > #define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
> > > #define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
> > > +#define PCI_X_BRIDGE_UP_SPL_CTL 10 /* PCI-X upstream split transaction limit */
> > > +#define PCI_X_BRIDGE_DN_SPL_CTL 14 /* PCI-X downstream split transaction limit */
> >
> > Unless I am completely misreading the spec. While you have picked the
> > right register to save the offsets should be 0x08 and 0x0c or 8 and 12....
>
> No, the spec is written in terms of dwords (32 bit), we are storing words (16 bits).
> The data at offsets 8 and 12 is read-only split transaction capacity.
> Split transaction limit starts at bit 16 so you need to add 2 to byte offset.
So, Eric, what are your thoughts on this patch (probably wrt 2.6.22)?
Since the rest of the save/restore code uses 16 bit transactions,
it should be safe here too?
--
MST
^ permalink raw reply [flat|nested] 104+ messages in thread
end of thread, other threads:[~2007-04-16 19:56 UTC | newest]
Thread overview: 104+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Pine.LNX.4.64.0702202043280.4043@woody.linux-foundation.org>
2007-02-25 17:52 ` 2.6.21-rc1: known regressions (part 1) Adrian Bunk
2007-02-28 18:16 ` Karasyov, Konstantin A
2007-02-25 17:55 ` 2.6.21-rc1: known regressions (part 2) Adrian Bunk
2007-02-27 10:02 ` Jens Axboe
2007-02-27 10:21 ` Pavel Machek
2007-02-27 10:30 ` Jens Axboe
2007-02-27 10:34 ` Ingo Molnar
2007-02-27 10:59 ` Jens Axboe
2007-02-27 11:15 ` Jens Axboe
2007-02-27 13:09 ` Jens Axboe
2007-03-01 9:34 ` Ingo Molnar
2007-03-01 10:41 ` Ingo Molnar
2007-03-01 14:52 ` Ingo Molnar
2007-03-01 16:12 ` Rafael J. Wysocki
2007-03-02 0:26 ` Linus Torvalds
2007-03-02 0:41 ` Linus Torvalds
2007-03-02 7:14 ` Ingo Molnar
2007-03-02 7:21 ` Ingo Molnar
2007-03-02 8:04 ` Ingo Molnar
2007-03-02 10:20 ` Ingo Molnar
2007-03-02 10:22 ` [patch] KVM: T60 resume fix Ingo Molnar
2007-03-02 11:39 ` Michael S. Tsirkin
2007-03-03 8:22 ` Avi Kivity
2007-03-03 8:21 ` Avi Kivity
2007-03-03 11:57 ` Andrew Morton
2007-03-03 12:07 ` Junio C Hamano
2007-03-05 8:22 ` Ingo Molnar
2007-03-05 8:50 ` Avi Kivity
2007-03-05 8:44 ` Ingo Molnar
2007-03-05 8:57 ` Ingo Molnar
2007-03-05 9:27 ` Avi Kivity
2007-03-05 10:05 ` Ingo Molnar
2007-03-05 10:33 ` Avi Kivity
2007-03-05 10:33 ` Ingo Molnar
2007-03-05 10:40 ` Michael S. Tsirkin
2007-03-05 12:54 ` Michael S. Tsirkin
2007-03-05 12:50 ` Ingo Molnar
2007-03-05 13:26 ` Michael S. Tsirkin
2007-03-05 13:32 ` Ingo Molnar
2007-03-05 10:23 ` Michael S. Tsirkin
2007-03-05 10:29 ` Ingo Molnar
2007-03-05 15:44 ` 2.6.21-rc1: known regressions (part 2) Michael S. Tsirkin
2007-03-05 16:14 ` Michael S. Tsirkin
2007-03-05 16:41 ` Ingo Molnar
2007-03-05 18:16 ` Jens Axboe
2007-03-01 23:36 ` Linus Torvalds
2007-03-02 10:07 ` Pavel Machek
2007-03-05 8:42 ` Michael S. Tsirkin
2007-03-05 10:11 ` SATA resume slowness, e1000 MSI warning Ingo Molnar
2007-03-06 5:30 ` Jeff Garzik
2007-03-06 6:35 ` Kok, Auke
2007-03-06 9:04 ` Ingo Molnar
2007-03-06 15:34 ` Kok, Auke
2007-03-07 4:15 ` Eric W. Biederman
2007-03-07 16:31 ` Kok, Auke
2007-03-07 16:45 ` Kok, Auke
2007-03-07 19:28 ` Eric W. Biederman
2007-03-08 2:53 ` Andrew Morton
2007-03-08 6:58 ` Eric W. Biederman
2007-03-08 9:55 ` Jeff Garzik
2007-03-08 17:27 ` Eric W. Biederman
2007-03-08 19:58 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Eric W. Biederman
2007-03-08 20:04 ` [PATCH 1/2] msi: Safer state caching Eric W. Biederman
2007-03-08 20:06 ` [PATCH 2/2] pci: Repair pci_save/restore_state so we can restore one save many times Eric W. Biederman
2007-03-12 22:46 ` Kok, Auke
2007-03-08 20:08 ` [PATCH 0/2] Repair pci_restore_state when used with device resets Ingo Molnar
2007-03-08 20:26 ` Eric W. Biederman
2007-03-08 10:23 ` SATA resume slowness, e1000 MSI warning Michael S. Tsirkin
2007-03-11 11:11 ` Eric W. Biederman
2007-03-11 11:24 ` Michael S. Tsirkin
2007-03-11 17:37 ` Eric W. Biederman
2007-03-11 18:03 ` Michael S. Tsirkin
2007-03-11 18:27 ` Eric W. Biederman
2007-03-11 18:37 ` Michael S. Tsirkin
2007-03-11 19:50 ` Eric W. Biederman
2007-03-12 4:35 ` Michael S. Tsirkin
2007-04-16 19:56 ` Michael S. Tsirkin
2007-03-09 23:06 ` Kok, Auke
2007-03-10 3:41 ` Eric W. Biederman
2007-03-06 9:06 ` Ingo Molnar
2007-03-06 16:26 ` Thomas Gleixner
2007-03-06 16:52 ` Linus Torvalds
2007-03-06 17:09 ` Kok, Auke
2007-03-09 6:44 ` 2.6.21-rc1: known regressions (part 2) Pavel Machek
2007-03-05 15:34 ` Michael S. Tsirkin
2007-02-27 22:09 ` Adrian Bunk
2007-02-28 7:41 ` Jens Axboe
2007-02-26 22:01 ` 2.6.21-rc1: known regressions (v2) (part 1) Adrian Bunk
2007-02-27 4:09 ` Sergio Monteiro Basto
2007-02-27 12:50 ` S.Çağlar Onur
2007-02-27 13:25 ` Ismail Dönmez
2007-02-28 21:13 ` Michael S. Tsirkin
2007-02-28 21:27 ` Thomas Gleixner
2007-02-28 21:40 ` Michael S. Tsirkin
2007-03-01 3:45 ` Jeff Chua
2007-03-02 12:26 ` [linux-pm] " Pavel Machek
2007-03-03 11:17 ` Jens Axboe
2007-03-05 0:04 ` Adrian Bunk
2007-03-06 1:32 ` Jeff Chua
2007-03-06 12:03 ` Jeff Chua
2007-03-06 12:08 ` Michael S. Tsirkin
2007-03-06 12:12 ` Jeff Chua
2007-03-19 15:32 ` Pavel Machek
2007-03-19 21:23 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox