Re: Warning/Oops report of the week of September 16th, 2008

Previous thread: Re: [PATCH] VFS: make file->f_pos access atomic on 32bit arch by Michael Trimarchi on Tuesday, September 16, 2008 - 9:01 am. (1 message)

Next thread: [PATCH 0/5] loglevel=pci:7,acpi:6 support by Yinghai Lu on Tuesday, September 16, 2008 - 11:01 am. (11 messages)
From: Arjan van de Ven
Date: Tuesday, September 16, 2008 - 9:22 am

This is the first report where I've dropped oopses that happened to 2.6.25 or earlier kernels.
I've also changed the format of the report to split it in "fixed" and "not yet fixed" sections;
I hope that makes the report more useful for developers.



This week, a total of 1730 oopses and warnings have been reported,
compared to 626 reports in the previous week.


Per file statistics
266	net/sched/sch_generic.c
260	kernel/timer/tglx.c
167	drivers/ata/libata-sff.c
154	external/utrace
80	net/core/dev.c
62	drivers/parport/procfs.c
54	external/fireglx/binary (P)
45	fs/jbd/journal.c
38	kernel/timer.c
34	drivers/base/power/main.c
27	lib/scatterlist.c
25	kernel/sched.c
23	include/asm-x86/irqflags.h


Not yet fixed issues
====================

Rank 1: dev_watchdog (warning)
	Reported 263 times (495 total reports)
	Network card timeout; this error is currently not specific enough, a patch
	is pending to get this reported per driver, with some luck this gets merged soon.
	This warning was last seen in version 2.6.27-rc6, and first seen in 2.6.26-rc3.
	More info: http://www.kerneloops.org/searchweek.php?search=dev_watchdog

Rank 4: utrace_control (oops)
	Reported 149 times (152 total reports)
	[fedora] Fedora merged a broken utrace patch
	This oops was last seen in version 2.6.26.3, and first seen in 2.6.26.1.
	More info: http://www.kerneloops.org/searchweek.php?search=utrace_control

Rank 6: parport_device_proc_register (warning)
	Reported 62 times (3942 total reports)
	Duplicate /proc registration in the parport driver
	This warning was last seen in version 2.6.26.3, and first seen in 2.6.24-rc5.
	More info: http://www.kerneloops.org/searchweek.php?search=parport_device_proc_register

Rank 7: firegl_ioctl (warning)
	Reported 50 times (2479 total reports)
	[external] Bug in the proprietary fireglx driver
	warning only shows up in tainted kernels
	This warning was last seen in version 2.6.26.5, and first seen in 2.6.25.
	More info: ...
From: Jay Cliburn
Date: Tuesday, September 16, 2008 - 5:40 pm

On Tue, 16 Sep 2008 09:22:06 -0700

Some of these are undoubtedly from the atl1 driver, and many of those
from that driver are probably from me personally as I've poked around
trying to isolate the cause.  I sent a patch yesterday to Alexey
Dobriyan (who's also been experiencing it) that seems to quash the
warnings, so hopefully we're near resolution.  On my own development
system I recently turned off kerneloops, so at least *my* contribution
to the list will diminish.  :)

Jay
--

From: Frans Pop
Date: Wednesday, September 24, 2008 - 3:36 pm

Note that I'm still seeing this in 2.6.27-rc7. This is now one of the 
oldest entries in the list and as it happens for *every* print job, it's 
quite an annoying one.

Unfortunately I still cannot get kerneloops to work for me.
--

From: Linus Torvalds
Date: Wednesday, September 24, 2008 - 3:45 pm

Al and Arjan looked at this one at the KS, and quite frankly, the warning 
is just bogus.

Or rather, it's a warnign about the parport /proc interface. The fact is, 
the parport code can generate multiple "instances" of things that 
time-slice on the port, but they have all ended up always just registering 
under the same name. IOW, it's a bug in the _user_ interface, not the 
kernel.

I'd like to remove the file entirely (probably nobody uses it), but Al 
said he could perhaps send patches to extend it (yet leave the old name to 
point to the first instance, the way it always has). 

In the meantime, that warning is just best ignored entirely. It's not a 
kernel bug per se, or even anything that is fixable without changing 
exported user interfaces that in my opinion aren't necessarily even 
_worth_ changing (the only reasonable change is extending on the insane 
interface that nobody cares about).

I think Arjan agreed to just remove it from his statistics, but maybe he's 
just ignoring _new_ entries ;)

			Linus
--

From: Arjan van de Ven
Date: Wednesday, September 24, 2008 - 3:57 pm

On Wed, 24 Sep 2008 15:45:30 -0700 (PDT)

yeah I blacklisted it on submission; I haven't removed it from the
database


-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org
--

From: Linus Torvalds
Date: Wednesday, September 24, 2008 - 4:00 pm

Side note: the reason nobody cares is that the files exported there are 
likely never used anyway. But we don't _know_ that. Maybe somebody depends 
on the totally broken things that get registered in /proc. I doubt it, 
but..

		Linus
--

From: Frans Pop
Date: Wednesday, September 24, 2008 - 4:12 pm

Yep, I agree it's basically harmless and I have been ignoring it. But that 
does not make it less annoying as, because of the call trace, it will 
continue to show up in logcheck mails every time.

If no other solution is found soon, would a patch to just skip the sysctl 
table check for this particular case be acceptable?
--

From: Linus Torvalds
Date: Wednesday, September 24, 2008 - 4:18 pm

Well, it would be even _more_ acceptable to have a new Kconfig option that 
just disables the insane parport registrations.

Them you could turn off the /proc files, and if it turns out you don't 
have anything that uses it, you can avoid the warning by actually having a 
smaller kernel with less crap, rather than adding more crap to hide the 
crap. Wouldn't that be nicer?

It would have to be a Kconfig option since we don't _know_ that it's not 
used by anything..

		Linus
--

From: Alan Cox
Date: Friday, September 26, 2008 - 3:28 am

How about a quickfix for the moment. This ought to do the job. BTW I
disagree that the link should be to first, it would be best a link to the
active driver IMHO.

Has been Torvalds-tested only (ie it compiled)

--

parport: quickfix the proc registration bug

From: Alan Cox <alan@redhat.com>

Ideally we should have a directory of drivers and a link to the 'active'
driver. For now just show the first device which is effectively the existing
semantics without a warning.

Signed-off-by: Alan Cox <alan@redhat.com>
---

 drivers/parport/share.c   |   13 ++++++++++---
 drivers/serial/8250_pci.c |    4 ++--
 include/linux/parport.h   |    4 ++++
 3 files changed, 16 insertions(+), 5 deletions(-)


diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index a8a62bb..0750dcb 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -614,7 +614,10 @@ parport_register_device(struct parport *port, const char *name,
 	 * pardevice fields. -arca
 	 */
 	port->ops->init_state(tmp, tmp->state);
-	parport_device_proc_register(tmp);
+	if (test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) {
+		port->proc_device = tmp;
+		parport_device_proc_register(tmp);
+	}
 	return tmp;
 
  out_free_all:
@@ -646,10 +649,14 @@ void parport_unregister_device(struct pardevice *dev)
 	}
 #endif
 
-	parport_device_proc_unregister(dev);
-
 	port = dev->port->physport;
 
+	if (port->proc_device == dev) {
+		port->proc_device = NULL;
+		clear_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags);
+		parport_device_proc_unregister(dev);
+	}
+
 	if (port->cad == dev) {
 		printk(KERN_DEBUG "%s: %s forgot to release port\n",
 		       port->name, dev->name);
diff --git a/include/linux/parport.h b/include/linux/parport.h
index 6a0d7cd..986252e 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -326,6 +326,10 @@ struct parport {
 	int spintime;
 	atomic_t ref_count;
 
+	unsigned long devflags;
+#define ...
From: Frans Pop
Date: Saturday, September 27, 2008 - 8:21 am

Thanks Greg, but I'm afraid that still gives me the error:

ppdev0: registered pardevice
sysctl table check failed: /dev/parport/parport0/devices/ppdev0/timeslice  
Sysctl already exists
Pid: 7104, comm: hpijs Not tainted 2.6.27-rc7 #21

Call Trace:
 [<ffffffff8024d2ac>] set_fail+0x48/0x53
 [<ffffffff8024d7a1>] sysctl_check_table+0x4ea/0x531
 [<ffffffff8024d7ba>] sysctl_check_table+0x503/0x531
 [<ffffffff8024d7ba>] sysctl_check_table+0x503/0x531
 [<ffffffff8024d7ba>] sysctl_check_table+0x503/0x531
 [<ffffffff8024d7ba>] sysctl_check_table+0x503/0x531
 [<ffffffff8024d7ba>] sysctl_check_table+0x503/0x531
 [<ffffffff8023b378>] ? sysctl_set_parent+0x24/0x39
 [<ffffffff8023c66e>] __register_sysctl_paths+0xee/0x29e
 [<ffffffff80314f05>] ? sprintf+0x68/0x6a
 [<ffffffff8023c847>] register_sysctl_paths+0x29/0x2b
 [<ffffffff8023c85c>] register_sysctl_table+0x13/0x15
 [<ffffffffa00f79d4>] parport_device_proc_register+0xcc/0xf0 [parport]
 [<ffffffffa00f5a07>] parport_register_device+0x25c/0x296 [parport]
 [<ffffffffa03c9a3b>] ? pp_irq+0x0/0x4b [ppdev]
 [<ffffffffa03c93e2>] pp_ioctl+0x16f/0x7c8 [ppdev]
 [<ffffffff80282894>] ? free_pages_and_swap_cache+0x57/0x72
 [<ffffffff8029abbe>] vfs_ioctl+0x2a/0x78
 [<ffffffff8029ae63>] do_vfs_ioctl+0x257/0x274
 [<ffffffff8029aed5>] sys_ioctl+0x55/0x78
 [<ffffffff8020c1eb>] system_call_fastpath+0x16/0x1b

ppdev0: registered pardevice
ppdev0: unregistered pardevice
ppdev0: unregistered pardevice

Cheers,
FJP
--