Ok, it's finally there.
2.6.14 was delayed twice due to some last-minute bug-reports, some of
which ended up being false alarms (hey, I should be happy, but it was a
bit frustrating)
But hey, the delays - even when perhaps unnecessary - got us to look at
the code and fix some other bugs instead. So it's all good.
So special thanks go to Oleg Nesterov and Roland McGrath for doing some
code inspection and fixing and just making the otherwise frustrating wait
for bug resolution more productive ;^p.
Let's try the 2-week merge window thing again, I think it worked pretty
well despite the delays, and hopefully it will work even better this time
around.
The actual changes from 2.6.14-rc5 are a number of mostly one-liners, with
the ShortLog appended (full log from 2.6.13 on the normal sites together
with the release itself). The only slightly bigger ones (ie more than a
handful of lines) is a kernel parameter doc update, and the PIIX4 PCI
quirk printouts, and the cleanups/fixes for the posix cpu timers.
(In fact, according to diffstat, about half the diff is that one
documentation update, and most of that is whitespace cleanups)
Linus
----
Alan Stern:
[SCSI] Fix leak of Scsi_Cmnds
Andrew Morton:
inotify/idr leak fix
alpha: atomic dependency fix
qlogic lockup fix
export cpu_online_map
svcsock timestamp fix
Ben Dooks:
[ARM] 3026/1: S3C2410 - avoid possible overflow in pll calculations
[ARM] 3027/1: BAST - reduce NAND timings slightly
[ARM] 3028/1: S3C2410 - add DCLK mask definitions
Benjamin Herrenschmidt:
ppc64: Fix pages marked dirty abusively
ppc64: Fix wrong register mapping in mpic driver
Bjorn Helgaas:
[SERIAL] support the Exsys EX-4055 4S four-port card
Chris Wright:
typo fix in last cpufreq powernow patch
Christoph Hellwig:
[SCSI] mptsas: fix phy identifiers
Dave Airlie:
drm: another mga bug
Dave Jones:
cpufreq: fix pending powernow timer stuck condition
cpufreq: SMP fix for conservative governor
Davi Arnaut:
SELinux: handle sel_make_bools() failure in selinuxfs
David Gibson:
ppc64: Fix typo bug in iSeries hash code
Eric Moore:
mptsas: fix phy identifiers
Herbert Xu:
[DCCP]: Use skb_set_owner_w in dccp_transmit_skb when skb->sk is NULL
[DCCP]: Make dccp_write_xmit always free the packet
[DCCP]: Clear the IPCB area
[TCP] Allow len == skb->len in tcp_fragment
[NEIGH] Print stack trace in neigh_add_timer
[NEIGH] Fix add_timer race in neigh_add_timer
[NEIGH] Fix timer leak in neigh_changeaddr
[TCP]: Clear stale pred_flags when snd_wnd changes
Hugh Dickins:
Fix handling spurious page fault for hugetlb region
Ian Campbell:
[ARM] 3032/1: sparse: complains about generic_fls() prototype in asm-arm/bitops.h
Ivan Kokshaysky:
alpha: additional smp barriers
fix radeon_cp_init_ring_buffer()
James Simmons:
Return the line length via sysfs for fbdev
[email protected]:
[SCSI] FW: for Deadlock in transport_fc
Jeff Garzik:
kill massive wireless-related log spam
Jochen Friedrich:
[TR]: Preserve RIF flag even for 2 byte RIF fields.
[LLC]: Strip RIF flag from source MAC address
Julian Anastasov:
[SK_BUFF]: ipvs_property field must be copied
Justin Chen:
[SERIAL] new hp diva console port
Karl Magnus Kolstoe:
[SCSI] 2.6.13.3; add Pioneer DRM-624x to drivers/scsi/scsi_devinfo.c
Kostik Belousov:
aio syscalls are not checked by lsm
Linus Torvalds:
Revert "Fix cpu timers exit deadlock and races"
Posix timers: limit number of timers firing at once
cardbus: limit IO windows to 256 bytes
PCI: be more verbose about resource quirks
posix cpu timers: fix timer ordering
Revert "remove false BUG_ON() from run_posix_cpu_timers()"
Revert "x86-64: Avoid unnecessary double bouncing for swiotlb"
Linux v2.6.14
Magnus Damm:
NUMA: broken per cpu pageset counters
Matt Reimer:
[ARM] 3025/1: Add I2S platform device for PXA
Mike Krufky:
Kconfig: saa7134-dvb should not select cx22702
Miklos Szeredi:
uml: fix compile failure for TT mode
NeilBrown:
md: make sure mdthreads will always respond to kthread_stop
Oleg Nesterov:
posix-timers: fix cleanup_timers() and run_posix_cpu_timers() races
posix-timers: remove false BUG_ON() from run_posix_cpu_timers()
posix-timers: exit path cleanup
posix-timers: fix posix_cpu_timer_set() vs run_posix_cpu_timers() race
Fix cpu timers expiration time
Paul Mackerras:
ppc64: Fix typo in time calculations
Pavel Machek:
[ARM] fix sharp zaurus c-3000 compile failure without CONFIG_FB_PXA
Peter Wainwright:
Fix HFS+ to free up the space when a file is deleted.
Ralf Baechle:
[AX.25]: Fix signed char bug
Randy Dunlap:
[SCSI] NCR5380: fix undefined preprocessor identifier
kernel-parameters cleanup
Roland Dreier:
ib: mthca: Always re-arm EQs in mthca_tavor_interrupt()
Roland McGrath:
Call exit_itimers from do_exit, not __exit_signal
Yet more posix-cpu-timer fixes
Russell King:
[ARM] Fix Integrator IM/PD-1 support
Salyzyn, Mark:
[SCSI] Fix aacraid regression
Stephen Smalley:
selinux: Fix NULL deref in policydb_destroy
Steven Rostedt:
[SCSI] scsi_error thread exits in TASK_INTERRUPTIBLE state.
Takashi Iwai:
ALSA: Fix Oops of suspend/resume with generic drivers
Yan Zheng:
[IPV6]: Fix refcnt of struct ip6_flowlabel
On Fri, 28 Oct 2005, Nigel Cunningham wrote:
>
> Could you please push the tag to kernel.org too? Thanks!
Sorry, forgot. Done,
Linus
Sorry for not spotting this one earlier...
Fix the following warning when ext3 fs is compiled without quota
support:
fs/ext3/super.c: In function `ext3_show_options':
fs/ext3/super.c:516: warning: unused variable `sbi'
Signed-off-by: Jean Delvare <[email protected]>
---
fs/ext3/super.c | 2 ++
1 file changed, 2 insertions(+)
--- linux-2.6.14.orig/fs/ext3/super.c 2005-10-28 18:25:56.000000000 +0200
+++ linux-2.6.14/fs/ext3/super.c 2005-10-28 18:38:36.000000000 +0200
@@ -513,7 +513,9 @@
static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs)
{
struct super_block *sb = vfs->mnt_sb;
+#ifdef CONFIG_QUOTA
struct ext3_sb_info *sbi = EXT3_SB(sb);
+#endif
if (test_opt(sb, DATA_FLAGS) == EXT3_MOUNT_JOURNAL_DATA)
seq_puts(seq, ",data=journal");
--
Jean Delvare
On Thu, Oct 27, 2005 at 05:28:50PM -0700, Linus Torvalds wrote:
>
> Revert "x86-64: Avoid unnecessary double bouncing for swiotlb"
(http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=79b95a454bb5c1d9b7287d1016a70885ba3f346c)
Well, Andi's patch here wasn't just a small optimization as the changelog
suggests. It helped EM64T boxes a great deal. Just to make sure, I
reran 2.6.14 with the attached patch and got about 45% better performance
with iozone Initial write. This was on a 2 cpu 4 thread SMP Xeon with 8G ram,
with 2 processes performing io to 4G files on a IDE drive.
Maybe it wouldn't have caused breakage on some AMD boxes if the following
additional check for swiotlb was added. Can this go into 2.6.15 please?
Thanks,
Kiran
Originally by Andi Kleen. Patch prevents the block layer from bouncing if
a hard or soft iommu is present.
Signed-off-by: Ravikiran Thirumalai <[email protected]>
Index: linux-2.6.14/include/asm-x86_64/pci.h
===================================================================
--- linux-2.6.14.orig/include/asm-x86_64/pci.h 2005-10-27 17:02:08.000000000 -0700
+++ linux-2.6.14/include/asm-x86_64/pci.h 2005-10-27 21:42:41.000000000 -0700
@@ -51,9 +51,9 @@
* this boolean for bounce buffer decisions
*
* On AMD64 it mostly equals, but we set it to zero to tell some subsystems
- * that an IOMMU is available.
+ * that a hard or soft IOMMU is available.
*/
-#define PCI_DMA_BUS_IS_PHYS (no_iommu ? 1 : 0)
+#define PCI_DMA_BUS_IS_PHYS ((no_iommu && !swiotlb) ? 1 : 0)
/*
* x86-64 always supports DAC, but sometimes it is useful to force
On Saturday 29 October 2005 00:58, Ravikiran G Thirumalai wrote:
> On Thu, Oct 27, 2005 at 05:28:50PM -0700, Linus Torvalds wrote:
> > Revert "x86-64: Avoid unnecessary double bouncing for swiotlb"
>
> (http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=com
>mitdiff;h=79b95a454bb5c1d9b7287d1016a70885ba3f346c)
>
> Well, Andi's patch here wasn't just a small optimization as the changelog
> suggests. It helped EM64T boxes a great deal. \
First to be honest swiotlb performance is not very high on the priority list.
It will always be bad. If you care about performance you should use devices
that can address all your memory.
EM64T server boxes shouldn't have big problems with that because they usually
support AHCI for IDE, and firewire/usb2/sound is not that critical. And the
EM64T boxes with other chipsets typically don't support >4G phys because they
only support the lowerend Intel CPUs. Summit might be an exception, but those
normally only use IDE for CDROMs, which are also not a big issue.
> Just to make sure, I
> reran 2.6.14 with the attached patch and got about 45% better performance
> with iozone Initial write. This was on a 2 cpu 4 thread SMP Xeon with 8G
> ram, with 2 processes performing io to 4G files on a IDE drive.
> Maybe it wouldn't have caused breakage on some AMD boxes if the following
> additional check for swiotlb was added. Can this go into 2.6.15 please?
Not in this form no. Problem first needs to be understood fully and
then no_iommu should be set properly.
> * On AMD64 it mostly equals, but we set it to zero to tell some
> subsystems - * that an IOMMU is available.
> + * that a hard or soft IOMMU is available.
> */
> -#define PCI_DMA_BUS_IS_PHYS (no_iommu ? 1 : 0)
> +#define PCI_DMA_BUS_IS_PHYS ((no_iommu && !swiotlb) ? 1 : 0)
That is ugly and I don't like it. Need to track down the real problem
-Andi
On Thu, Oct 27, 2005 at 05:28:50PM -0700, Linus Torvalds wrote:
>
> Ok, it's finally there.
... and it still won't boot on my machine. It hangs while initializing
the ehci usb host controller saying:
<snip>
...
[4294691.834000] usb usb3: Product: UHCI Host Controller
[4294691.840000] usb usb3: Manufacturer: Linux 2.6.14 uhci_hcd
[4294691.847000] usb usb3: SerialNumber: 0000:00:1d.2
[4294691.880000] hub 3-0:1.0: USB hub found
[4294691.885000] hub 3-0:1.0: 2 ports detected
[4294694.855000] ACPI: PCI Interrupt 0000:00:1d.7[D] -> GSI 23 (level,
low) -> IRQ 20
[4294694.864000] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[4294694.870000] ehci_hcd 0000:00:1d.7: debug port 1
</snip>
and dies. This bug is actually in there since 2.6.14-rc4 (see:
http://bugzilla.kernel.org/show_bug.cgi?id=5428) and David Brownell
supplied a patch which turned out to be useless eventually since _rebooting_
the kernel with the 'usb-handoff' (and without the patch) solved the problem.
As it turns out, it actually solves the problem only for the reboot case.
My machine still hangs on an initial boot with and without 'usb-handoff'.
.config attached.
Regards,
Boris.
On Sat, Oct 29, 2005 at 12:14:34PM +0200, Andi Kleen wrote:
> On Saturday 29 October 2005 00:58, Ravikiran G Thirumalai wrote:
> > On Thu, Oct 27, 2005 at 05:28:50PM -0700, Linus Torvalds wrote:
> > > Revert "x86-64: Avoid unnecessary double bouncing for swiotlb"
> >
> > (http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=com
> >mitdiff;h=79b95a454bb5c1d9b7287d1016a70885ba3f346c)
> >
> > Well, Andi's patch here wasn't just a small optimization as the changelog
> > suggests. It helped EM64T boxes a great deal. \
>
> First to be honest swiotlb performance is not very high on the priority list.
> It will always be bad. If you care about performance you should use devices
> that can address all your memory.
I realise swiotlb will have bad performance. But with the revert, swiotlb
is not going to be used at all!!. PCI_DMA_BUS_IS_PHYS is used by the block
subsystem to check if any kind of iommu (soft or hard) is available. If none
is present, block layer uses the ISA pool for bounce buffering bringing down
performance.
>
> EM64T server boxes shouldn't have big problems with that because they usually
> support AHCI for IDE, and firewire/usb2/sound is not that critical.
But you have to use SATA disks to use AHCI right?. IDE disks will work with
32bit dma addresses only (please correct me if I am wrong). And I belive
there are 1U racks/blades out there with IDE disks on these server boards with
more than 4G memory (I am told it saves them $$ to use IDE disks over SATA
when you deploy large numbers).
Whatever the reasons might be, IMHO, it is not correct to assume no one is
going to use 32 bit capable only devices on 64bit boxes. swiotlb code need
not have been in the kernel otherwise. This one line revert is just force
turning off swiotlb on x86_64 boxes with no option whatsover :(
> EM64T boxes with other chipsets typically don't support >4G phys because they
> only support the lowerend Intel CPUs. Summit might be an exception, but those
> normally only use IDE for CDROMs, which are also not a big issue.
>
> > Just to make sure, I
> > reran 2.6.14 with the attached patch and got about 45% better performance
> > with iozone Initial write. This was on a 2 cpu 4 thread SMP Xeon with 8G
> > ram, with 2 processes performing io to 4G files on a IDE drive.
> > Maybe it wouldn't have caused breakage on some AMD boxes if the following
> > additional check for swiotlb was added. Can this go into 2.6.15 please?
>
> Not in this form no. Problem first needs to be understood fully and
> then no_iommu should be set properly.
>
> > * On AMD64 it mostly equals, but we set it to zero to tell some
> > subsystems - * that an IOMMU is available.
> > + * that a hard or soft IOMMU is available.
> > */
> > -#define PCI_DMA_BUS_IS_PHYS (no_iommu ? 1 : 0)
> > +#define PCI_DMA_BUS_IS_PHYS ((no_iommu && !swiotlb) ? 1 : 0)
>
> That is ugly and I don't like it. Need to track down the real problem
I agree it is ugly. But it atleast shows and does what the comment says.
Is reverting a bug-fix to mask another bug (probably due to a broken bios or
user not setting the IOMMU in the bios) any cleaner? Yes it doesn't show
though ;)
Seriously, are there plans to fix the broken AMD boxes for 2.6.15? Will
swiotlb be forced off even for 2.6.15? Linus, Andrew?
Thanks,
Kiran
On Monday 31 October 2005 22:48, Ravikiran G Thirumalai wrote:
> I agree it is ugly. But it atleast shows and does what the comment says.
> Is reverting a bug-fix to mask another bug (probably due to a broken bios
> or user not setting the IOMMU in the bios) any cleaner? Yes it doesn't
> show though ;)
I don't believe the problem is the AMD boxes here.
Anyways, with the dma_ops patch we can probably separate it cleanly
and avoid the problem.
-Andi
On Thu, Nov 03, 2005 at 07:35:55PM +0100, Andi Kleen wrote:
> Anyways, with the dma_ops patch we can probably separate it cleanly
> and avoid the problem.
Hi Andi, Kiran, would something like:
#define PCI_DMA_BUS_IS_PHYS (mapping_ops->bus_is_phys)
do the job, where mapping_ops->bus_is_phys is set to 0 for gart and
swiotlb, and 1 for nommu?
Cheers,
Muli
--
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
Subsystem: IBM: Unknown device 0575
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
Latency: 0
Capabilities: <available only to root>
0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 00003000-00003fff
Memory behind bridge: a8100000-a81fffff
Prefetchable memory behind bridge: c0000000-c7ffffff
BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
Capabilities: <available only to root>
0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
Memory behind bridge: a8200000-a82fffff
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: <available only to root>
0000:00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: a8300000-a83fffff
Prefetchable memory behind bridge: 00000000c8000000-00000000c8000000
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: <available only to root>
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03) (prog-if 00 [UHCI])
Subsystem: IBM: Unknown device 0565
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 169
Region 4: I/O ports at 1800 [size=32]
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03) (prog-if 00 [UHCI])
Subsystem: IBM: Unknown device 0565
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 50
Region 4: I/O ports at 1820 [size=32]
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
Subsystem: IBM: Unknown device 0565
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 58
Region 4: I/O ports at 1840 [size=32]
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03) (prog-if 00 [UHCI])
Subsystem: IBM: Unknown device 0565
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 233
Region 4: I/O ports at 1860 [size=32]
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03) (prog-if 20 [EHCI])
Subsystem: IBM: Unknown device 0566
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 233
Region 0: Memory at a8000000 (32-bit, non-prefetchable) [size=1K]
Capabilities: <available only to root>
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3) (prog-if 01 [Subtractive decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Bus: primary=00, secondary=04, subordinate=07, sec-latency=64
I/O behind bridge: 00005000-00008fff
Memory behind bridge: a8400000-b7ffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000d7f00000
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: <available only to root>
0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
Subsystem: IBM: Unknown device 0567
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 185
Region 0: I/O ports at 1c00 [size=256]
Region 1: I/O ports at 1880 [size=64]
Region 2: Memory at a8000800 (32-bit, non-prefetchable) [size=512]
Region 3: Memory at a8000400 (32-bit, non-prefetchable) [size=256]
Capabilities: <available only to root>
0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03) (prog-if 00 [Generic])
Subsystem: IBM: Unknown device 0576
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 225
Region 0: I/O ports at 2400 [size=256]
Region 1: I/O ports at 2000 [size=128]
Capabilities: <available only to root>
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
Subsystem: IBM: Unknown device 0568
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03) (prog-if 80 [Master])
Subsystem: IBM: Unknown device 056a
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Region 0: I/O ports at <unassigned>
Region 1: I/O ports at <unassigned>
Region 2: I/O ports at <unassigned>
Region 3: I/O ports at <unassigned>
Region 4: I/O ports at 18c0 [size=16]
Capabilities: <available only to root>
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
Subsystem: IBM: Unknown device 056b
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 11
Region 4: I/O ports at 18e0 [size=32]
0000:01:00.0 VGA compatible controller: ATI Technologies Inc M22 [Radeon Mobility M300] (prog-if 00 [VGA])
Subsystem: IBM: Unknown device 056e
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 169
Region 0: Memory at c0000000 (32-bit, prefetchable) [size=128M]
Region 1: I/O ports at 3000 [size=256]
Region 2: Memory at a8100000 (32-bit, non-prefetchable) [size=64K]
Expansion ROM at a8120000 [disabled] [size=128K]
Capabilities: <available only to root>
0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)
Subsystem: IBM: Unknown device 0577
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 169
Region 0: Memory at a8200000 (64-bit, non-prefetchable) [size=64K]
Capabilities: <available only to root>
0000:04:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
Subsystem: IBM: Unknown device 0532
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 168
Interrupt: pin A routed to IRQ 169
Region 0: Memory at a8400000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=04, secondary=05, subordinate=08, sec-latency=176
Memory window 0: d0000000-d1fff000 (prefetchable)
Memory window 1: aa000000-abfff000
I/O window 0: 00005000-000050ff
I/O window 1: 00005400-000054ff
BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
16-bit legacy interface ports at 0001
0000:04:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08) (prog-if 10 [OHCI])
Subsystem: IBM: Unknown device 01cf
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (500ns min, 1000ns max)
Interrupt: pin B routed to IRQ 50
Region 0: Memory at b1000000 (32-bit, non-prefetchable) [size=2K]
Capabilities: <available only to root>
0000:04:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
Subsystem: Intel Corporation: Unknown device 2712
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (750ns min, 6000ns max), Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 66
Region 0: Memory at a8401000 (32-bit, non-prefetchable) [size=4K]
Capabilities: <available only to root>
> Sorry for not spotting this one earlier...
>
> Fix the following warning when ext3 fs is compiled without quota
> support:
>
> fs/ext3/super.c: In function `ext3_show_options':
> fs/ext3/super.c:516: warning: unused variable `sbi'
I have added this small fix to my 2.6.14.2 build. A quick question.
What does GCC do here - does it just drop and ignore the unused variable?
Nick
--
http://sourceforge.net/projects/quake2plus
"Person who say it cannot be done should not interrupt person doing it."
-Chinese Proverb
Hi Nick,
> > Fix the following warning when ext3 fs is compiled without quota
> > support:
> >
> > fs/ext3/super.c: In function `ext3_show_options':
> > fs/ext3/super.c:516: warning: unused variable `sbi'
>
> I have added this small fix to my 2.6.14.2 build. A quick question.
Let is be noted that this warning was fixed in a completely different
way in Linus' tree already. My patch is not meant for -stable either,
as it doesn't fix any real problem.
> What does GCC do here - does it just drop and ignore the unused variable?
Without optimizations, gcc 3.3.6 keeps the variable although it won't
ever be used. With -O1 and above (including -Os) it drops the unused
variable.
--
Jean Delvare
Hi Jean,
On Saturday 12 November 2005 15:31, Jean Delvare wrote:
> Hi Nick,
>
> > I have added this small fix to my 2.6.14.2 build. A quick question.
>
> Let is be noted that this warning was fixed in a completely different
> way in Linus' tree already. My patch is not meant for -stable either,
> as it doesn't fix any real problem.
I see (or didn't). Isn't it hard to keep up with all this. Kernel developers
are unstoppable... how Linus/Andrew/Alan/all_the_rest keep on top of it all I
don't know - wonderful stuff.
> > What does GCC do here - does it just drop and ignore the unused variable?
>
> Without optimizations, gcc 3.3.6 keeps the variable although it won't
> ever be used. With -O1 and above (including -Os) it drops the unused
> variable.
Thanks! I didn't know that at all.
Nick
--
http://sourceforge.net/projects/quake2plus
"Person who say it cannot be done should not interrupt person doing it."
-Chinese Proverb
On Thu, Nov 10 2005, Brice Goglin wrote:
> Hi Jens,
>
> I just hit a badness (actually, tons of badness like this) in as-iosched
> while ripping
> an audio CD with ripperX (with cdparanoia as a backend).
> I was using 2.6.14 on an IBM Thinkpad R52. The kernel has been compiled with
> gcc-4.0.2-2 (Debian testing).
>
> The first badness in dmesg is:
>
> cdrom: dropping to single frame dma
> arq->state: 4
> Badness in as_insert_request at drivers/block/as-iosched.c:1519
> [<c0237410>] as_insert_request+0x70/0x1d0
> [<c022dc25>] __elv_add_request+0xa5/0xe0
> [<c022dc8b>] elv_add_request+0x2b/0x40
> [<c0230fe6>] blk_execute_rq_nowait+0x46/0x60
> [<c023107a>] blk_execute_rq+0x7a/0xe0
> [<c0231310>] blk_end_sync_rq+0x0/0x30
> [<c0160b77>] bio_phys_segments+0x27/0x30
> [<c0232610>] blk_rq_bio_prep+0x40/0xb0
> [<c0230dc7>] blk_rq_map_user+0xb7/0xf0
> [<c026bc32>] cdrom_read_cdda_bpc+0x182/0x210
> [<c026bd1b>] cdrom_read_cdda+0x5b/0xc0
Similar case was posted yesterday (I realize yours is older, just missed
it the first time around), see my explanation here:
http://lkml.org/lkml/2005/11/20/119
And work-around below.
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 1539603..7540d27 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -2089,7 +2089,7 @@ static int cdrom_read_cdda_bpc(struct cd
int lba, int nframes)
{
request_queue_t *q = cdi->disk->queue;
- struct request *rq;
+ struct request *rq = NULL;
struct bio *bio;
unsigned int len;
int nr, ret = 0;
@@ -2097,13 +2097,13 @@ static int cdrom_read_cdda_bpc(struct cd
if (!q)
return -ENXIO;
- rq = blk_get_request(q, READ, GFP_KERNEL);
- if (!rq)
- return -ENOMEM;
-
cdi->last_sense = 0;
while (nframes) {
+ rq = blk_get_request(q, READ, GFP_KERNEL);
+ if (!rq)
+ return -ENOMEM;
+
nr = nframes;
if (cdi->cdda_method == CDDA_BPC_SINGLE)
nr = 1;
@@ -2151,9 +2151,13 @@ static int cdrom_read_cdda_bpc(struct cd
nframes -= nr;
lba += nr;
ubuf += len;
+ blk_put_request(rq);
+ rq = NULL;
}
- blk_put_request(rq);
+ if (rq)
+ blk_put_request(rq);
+
return ret;
}
--
Jens Axboe
Jens Axboe wrote:
>On Thu, Nov 10 2005, Brice Goglin wrote:
>
>
>>Hi Jens,
>>
>>I just hit a badness (actually, tons of badness like this) in as-iosched
>>while ripping
>>an audio CD with ripperX (with cdparanoia as a backend).
>>I was using 2.6.14 on an IBM Thinkpad R52. The kernel has been compiled with
>>gcc-4.0.2-2 (Debian testing).
>>
>>The first badness in dmesg is:
>>
>>cdrom: dropping to single frame dma
>>arq->state: 4
>>Badness in as_insert_request at drivers/block/as-iosched.c:1519
>> [<c0237410>] as_insert_request+0x70/0x1d0
>> [<c022dc25>] __elv_add_request+0xa5/0xe0
>> [<c022dc8b>] elv_add_request+0x2b/0x40
>> [<c0230fe6>] blk_execute_rq_nowait+0x46/0x60
>> [<c023107a>] blk_execute_rq+0x7a/0xe0
>> [<c0231310>] blk_end_sync_rq+0x0/0x30
>> [<c0160b77>] bio_phys_segments+0x27/0x30
>> [<c0232610>] blk_rq_bio_prep+0x40/0xb0
>> [<c0230dc7>] blk_rq_map_user+0xb7/0xf0
>> [<c026bc32>] cdrom_read_cdda_bpc+0x182/0x210
>> [<c026bd1b>] cdrom_read_cdda+0x5b/0xc0
>>
>>
>
>Similar case was posted yesterday (I realize yours is older, just missed
>it the first time around), see my explanation here:
>
>http://lkml.org/lkml/2005/11/20/119
>
>And work-around below.
>
>
Thank you very much, Jens.
Is this patch going to -stable ?
Brice Goglin
On Mon, Nov 21 2005, Brice Goglin wrote:
> Jens Axboe wrote:
>
> >On Thu, Nov 10 2005, Brice Goglin wrote:
> >
> >
> >>Hi Jens,
> >>
> >>I just hit a badness (actually, tons of badness like this) in as-iosched
> >>while ripping
> >>an audio CD with ripperX (with cdparanoia as a backend).
> >>I was using 2.6.14 on an IBM Thinkpad R52. The kernel has been compiled with
> >>gcc-4.0.2-2 (Debian testing).
> >>
> >>The first badness in dmesg is:
> >>
> >>cdrom: dropping to single frame dma
> >>arq->state: 4
> >>Badness in as_insert_request at drivers/block/as-iosched.c:1519
> >> [<c0237410>] as_insert_request+0x70/0x1d0
> >> [<c022dc25>] __elv_add_request+0xa5/0xe0
> >> [<c022dc8b>] elv_add_request+0x2b/0x40
> >> [<c0230fe6>] blk_execute_rq_nowait+0x46/0x60
> >> [<c023107a>] blk_execute_rq+0x7a/0xe0
> >> [<c0231310>] blk_end_sync_rq+0x0/0x30
> >> [<c0160b77>] bio_phys_segments+0x27/0x30
> >> [<c0232610>] blk_rq_bio_prep+0x40/0xb0
> >> [<c0230dc7>] blk_rq_map_user+0xb7/0xf0
> >> [<c026bc32>] cdrom_read_cdda_bpc+0x182/0x210
> >> [<c026bd1b>] cdrom_read_cdda+0x5b/0xc0
> >>
> >>
> >
> >Similar case was posted yesterday (I realize yours is older, just missed
> >it the first time around), see my explanation here:
> >
> >http://lkml.org/lkml/2005/11/20/119
> >
> >And work-around below.
> >
> >
> Thank you very much, Jens.
> Is this patch going to -stable ?
Probably just killing the 'as' printk is a lot better for -stable.
Signed-off-by: Jens Axboe <[email protected]>
--- linux-2.6.14/drivers/block/as-iosched.c~ 2005-11-21 16:38:36.000000000 +0100
+++ linux-2.6.14/drivers/block/as-iosched.c 2005-11-21 16:39:07.000000000 +0100
@@ -1513,13 +1513,8 @@
struct as_data *ad = q->elevator->elevator_data;
struct as_rq *arq = RQ_DATA(rq);
- if (arq) {
- if (arq->state != AS_RQ_PRESCHED) {
- printk("arq->state: %d\n", arq->state);
- WARN_ON(1);
- }
+ if (arq)
arq->state = AS_RQ_NEW;
- }
/* barriers must flush the reorder queue */
if (unlikely(rq->flags & (REQ_SOFTBARRIER | REQ_HARDBARRIER)
--
Jens Axboe