2009-07-06 13:43:29

by Mikael Pettersson

[permalink] [raw]
Subject: 2.6.31-rc tty layer instabilities

I'm seeing semi-frequent warnings and oopses from the
tty layer in 2.6.31-rc1/rc2 at shutdown time. 2.6.30
and earlier did not have this issue.

With 2.6.31-rc1 I saw warnings like the following:

Jul 5 09:24:20 brewer shutdown[3496]: shutting down for system reboot
Jul 5 09:24:20 brewer init: Switching to runlevel: 6
Jul 5 09:24:22 brewer kernel: ------------[ cut here ]------------
Jul 5 09:24:22 brewer kernel: WARNING: at drivers/char/tty_ldisc.c:465 tty_ldisc_close+0x54/0x60()
Jul 5 09:24:22 brewer kernel: Hardware name: System Product Name
Jul 5 09:24:22 brewer kernel: Modules linked in: radeon drm i2c_core sunrpc af_packet sg snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq sr_mod cdrom snd_seq_device 8139too snd_pcm_oss mii snd_mixer_oss bitrev crc32 snd_pcm floppy snd_timer snd soundcore snd_page_alloc ehci_hcd uhci_hcd usbcore
Jul 5 09:24:22 brewer kernel: Pid: 2640, comm: su Not tainted 2.6.31-rc1 #1
Jul 5 09:24:22 brewer kernel: Call Trace:
Jul 5 09:24:22 brewer kernel: [<c0232484>] ? tty_ldisc_close+0x54/0x60
Jul 5 09:24:22 brewer kernel: [<c0232484>] ? tty_ldisc_close+0x54/0x60
Jul 5 09:24:22 brewer kernel: [<c012a3ff>] ? warn_slowpath_common+0x6f/0xd0
Jul 5 09:24:22 brewer kernel: [<c0232484>] ? tty_ldisc_close+0x54/0x60
Jul 5 09:24:22 brewer kernel: [<c012a473>] ? warn_slowpath_null+0x13/0x20
Jul 5 09:24:22 brewer kernel: [<c0232484>] ? tty_ldisc_close+0x54/0x60
Jul 5 09:24:22 brewer kernel: [<c02326ab>] ? tty_ldisc_reinit+0xb/0x40
Jul 5 09:24:22 brewer kernel: [<c0232d94>] ? tty_ldisc_hangup+0xe4/0x1c0
Jul 5 09:24:22 brewer kernel: [<c022bd05>] ? do_tty_hangup+0xc5/0x340
Jul 5 09:24:22 brewer kernel: [<c022c2ef>] ? disassociate_ctty+0x3f/0x1d0
Jul 5 09:24:22 brewer kernel: [<c012d77a>] ? do_exit+0x60a/0x660
Jul 5 09:24:22 brewer kernel: [<c022c730>] ? tty_write+0x0/0x1f0
Jul 5 09:24:22 brewer kernel: [<c012d7fe>] ? do_group_exit+0x2e/0x90
Jul 5 09:24:22 brewer kernel: [<c012d871>] ? sys_exit_group+0x11/0x20
Jul 5 09:24:22 brewer kernel: [<c0102e48>] ? sysenter_do_call+0x12/0x26
Jul 5 09:24:22 brewer kernel: ---[ end trace fa9cd0bb772bb982 ]---

With 2.6.31-rc2 I instead see oopses:

Jul 6 15:23:47 brewer shutdown[29409]: shutting down for system reboot
Jul 6 15:23:47 brewer init: Switching to runlevel: 6
Jul 6 15:23:49 brewer kernel: BUG: unable to handle kernel NULL pointer dereference at 00000004
Jul 6 15:23:49 brewer kernel: IP: [<c0232494>] tty_ldisc_wait_idle+0x84/0x100
Jul 6 15:23:49 brewer kernel: *pdpt = 00000000003da001 *pde = 0000000000000000
Jul 6 15:23:49 brewer kernel: Oops: 0000 [#1] SMP
Jul 6 15:23:49 brewer kernel: last sysfs file: /sys/block/sda/sda8/dev
Jul 6 15:23:49 brewer kernel: Modules linked in: radeon drm i2c_core sunrpc af_packet sg snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq sr_mod cdrom snd_seq_device 8139too mii snd_pcm_oss snd_mixer_oss bitrev snd_pcm crc32 snd_timer snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Jul 6 15:23:49 brewer kernel:
Jul 6 15:23:49 brewer kernel: Pid: 28553, comm: su Not tainted (2.6.31-rc2 #1) System Product Name
Jul 6 15:23:49 brewer kernel: EIP: 0060:[<c0232494>] EFLAGS: 00010246 CPU: 0
Jul 6 15:23:49 brewer kernel: EIP is at tty_ldisc_wait_idle+0x84/0x100
Jul 6 15:23:49 brewer kernel: EAX: 00000000 EBX: 000001f4 ECX: 00000000 EDX: 00000246
Jul 6 15:23:49 brewer kernel: ESI: f6e2b400 EDI: 00000001 EBP: f596bef8 ESP: f596beec
Jul 6 15:23:49 brewer kernel: DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Jul 6 15:23:49 brewer kernel: Process su (pid: 28553, ti=f596a000 task=f6c72e40 task.ti=f596a000)
Jul 6 15:23:49 brewer kernel: Stack:
Jul 6 15:23:49 brewer kernel: 00000000 f6c72e40 c013d400 c0371d50 c0371d50 f6e2b414 f6e2b528 f6e2b400
Jul 6 15:23:49 brewer kernel: <0> f596a000 c0232c1c 00000001 f6e2b528 f6e2b528 f6e2b400 c022bbb5 00000000
Jul 6 15:23:49 brewer kernel: <0> 00000000 00000001 f741e428 f741e3c0 f7446f40 f6e2b400 00000001 f596a000
Jul 6 15:23:49 brewer kernel: Call Trace:
Jul 6 15:23:49 brewer kernel: [<c013d400>] ? autoremove_wake_function+0x0/0x50
Jul 6 15:23:49 brewer kernel: [<c0232c1c>] ? tty_ldisc_hangup+0xdc/0x1d0
Jul 6 15:23:49 brewer kernel: [<c022bbb5>] ? do_tty_hangup+0xc5/0x340
Jul 6 15:23:49 brewer kernel: [<c022c19f>] ? disassociate_ctty+0x3f/0x1d0
Jul 6 15:23:49 brewer kernel: [<c012d73a>] ? do_exit+0x60a/0x660
Jul 6 15:23:49 brewer kernel: [<c022c5e0>] ? tty_write+0x0/0x1f0
Jul 6 15:23:49 brewer kernel: [<c012d7be>] ? do_group_exit+0x2e/0x90
Jul 6 15:23:49 brewer kernel: [<c012d831>] ? sys_exit_group+0x11/0x20
Jul 6 15:23:49 brewer kernel: [<c0102e48>] ? sysenter_do_call+0x12/0x26
Jul 6 15:23:49 brewer kernel: Code: c7 44 24 08 00 d4 13 c0 89 6c 24 0c 89 6c 24 10 bb f4 01 00 00 66 90 b8 4c 1d 37 c0 b9 02 00 00 00 89 e2 e8 9f b1 f0 ff 8b 46 28 <8b> 78 04 85 ff 74 2d 89 d8 e8 0e b7 0a 00 89 c3 85 c0 75 d8 89
Jul 6 15:23:49 brewer kernel: EIP: [<c0232494>] tty_ldisc_wait_idle+0x84/0x100 SS:ESP 0068:f596beec
Jul 6 15:23:49 brewer kernel: CR2: 0000000000000004
Jul 6 15:23:49 brewer kernel: ---[ end trace f80c72640210fa7c ]---
Jul 6 15:23:49 brewer kernel: Fixing recursive fault but reboot is needed!
Jul 6 15:23:51 brewer init: open(/dev/console): Input/output error

This happens perhaps once every 5 or so reboots. I haven't yet seen
any specific usage pattern that might be the trigger.

/Mikael


2009-07-06 14:39:59

by Alan

[permalink] [raw]
Subject: Re: 2.6.31-rc tty layer instabilities

> With 2.6.31-rc1 I saw warnings like the following:

Somehow you got a closed ldisc being closed again which means the hangup
raced some other event.

> With 2.6.31-rc2 I instead see oopses:

I put in a NULL assignment to force any offenders to explode.

We've executed tty_ldisc_release on the port meaning we already took the
path through tty_release_dev() which is called when the final close() of
the tty occurs.

After this we've come via disassociate_ctty into a hangup (caused by us
being the controlling tty owner who exits).

> Jul 6 15:23:49 brewer kernel: [<c0232c1c>] ? tty_ldisc_hangup+0xdc/0x1d0
> Jul 6 15:23:49 brewer kernel: [<c022bbb5>] ? do_tty_hangup+0xc5/0x340
> Jul 6 15:23:49 brewer kernel: [<c022c19f>] ? disassociate_ctty+0x3f/0x1d0

At this point we hold a kref to the tty still but the tty->ldisc is dead

In the normal case we would be fine as we kill off any pending hangup
processing in the close down. In this case we are not because the hangup
process was initiated after the last close

> This happens perhaps once every 5 or so reboots. I haven't yet seen
> any specific usage pattern that might be the trigger.

I suspect its simply a matter of timing randomness.

Does this help:

tty: defer ldisc kill

From: Alan Cox <[email protected]>

A hangup event can commence after the tty close path completes. In that
situation we will crash as we freed the ldisc object. Instead free the ldisc
when the last kref is dropped.

Signed-off-by: Alan Cox <[email protected]>
---

drivers/char/tty_ldisc.c | 37 +++++++++++++++++++++++++++----------
1 files changed, 27 insertions(+), 10 deletions(-)


diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c
index 913aa8d..97b3365 100644
--- a/drivers/char/tty_ldisc.c
+++ b/drivers/char/tty_ldisc.c
@@ -768,8 +768,16 @@ void tty_ldisc_hangup(struct tty_struct *tty)
* removed the irqlock.
*/
ld = tty_ldisc_ref(tty);
+ /* We may have no line discipline at this point. If we have no
+ ldisc then either the ldisc is changing in which case the set_ldisc
+ will continue after our hangup, see the HUPPED flag and exit, or
+ we have a hangup on a device that is not open - eg a console going
+ away on exit. In that case ld will be NULL and we mut leave it
+ alone. In the case where we hold the ld handle we know the tty
+ cannot progress to closed state until we call tty_ldisc_deref,
+ and that protects us from closure under the hangup */
+
if (ld != NULL) {
- /* We may have no line discipline at this point */
if (ld->ops->flush_buffer)
ld->ops->flush_buffer(tty);
tty_driver_flush_buffer(tty);
@@ -778,7 +786,6 @@ void tty_ldisc_hangup(struct tty_struct *tty)
ld->ops->write_wakeup(tty);
if (ld->ops->hangup)
ld->ops->hangup(tty);
- tty_ldisc_deref(ld);
}
/*
* FIXME: Once we trust the LDISC code better we can wait here for
@@ -794,17 +801,27 @@ void tty_ldisc_hangup(struct tty_struct *tty)
/* Avoid racing set_ldisc */
mutex_lock(&tty->ldisc_mutex);
/* Switch back to N_TTY */
- tty_ldisc_halt(tty);
- tty_ldisc_wait_idle(tty);
- tty_ldisc_reinit(tty);
- /* At this point we have a closed ldisc and we want to
- reopen it. We could defer this to the next open but
- it means auditing a lot of other paths so this is a FIXME */
- WARN_ON(tty_ldisc_open(tty, tty->ldisc));
- tty_ldisc_enable(tty);
+ if (ld) {
+ /* Only rework the ldisc if we have one enabled */
+ tty_ldisc_halt(tty);
+ tty_ldisc_wait_idle(tty);
+ tty_ldisc_reinit(tty);
+ /* At this point we have a closed ldisc and we want to
+ reopen it. We could defer this to the next open but
+ it means auditing a lot of other paths so this is a
+ FIXME */
+ WARN_ON(tty_ldisc_open(tty, tty->ldisc));
+ tty_ldisc_enable(tty);
+ }
mutex_unlock(&tty->ldisc_mutex);
+ /* Our ldisc ref protects this if live. Need to review
+ the case of hangup v open further */
tty_reset_termios(tty);
}
+ if (ld)
+ tty_ldisc_deref(ld);
+ /* At this point any pending close/open that is blocked in
+ tty_ldisc_wait_idle will be able to continue */
}

/**

2009-07-06 16:23:20

by Mikael Pettersson

[permalink] [raw]
Subject: Re: 2.6.31-rc tty layer instabilities

Alan Cox writes:
> > With 2.6.31-rc1 I saw warnings like the following:
>
> Somehow you got a closed ldisc being closed again which means the hangup
> raced some other event.
>
> > With 2.6.31-rc2 I instead see oopses:
>
> I put in a NULL assignment to force any offenders to explode.
>
> We've executed tty_ldisc_release on the port meaning we already took the
> path through tty_release_dev() which is called when the final close() of
> the tty occurs.
>
> After this we've come via disassociate_ctty into a hangup (caused by us
> being the controlling tty owner who exits).
>
> > Jul 6 15:23:49 brewer kernel: [<c0232c1c>] ? tty_ldisc_hangup+0xdc/0x1d0
> > Jul 6 15:23:49 brewer kernel: [<c022bbb5>] ? do_tty_hangup+0xc5/0x340
> > Jul 6 15:23:49 brewer kernel: [<c022c19f>] ? disassociate_ctty+0x3f/0x1d0
>
> At this point we hold a kref to the tty still but the tty->ldisc is dead
>
> In the normal case we would be fine as we kill off any pending hangup
> processing in the close down. In this case we are not because the hangup
> process was initiated after the last close
>
> > This happens perhaps once every 5 or so reboots. I haven't yet seen
> > any specific usage pattern that might be the trigger.
>
> I suspect its simply a matter of timing randomness.
>
> Does this help:
>
> tty: defer ldisc kill

Unfortunately this made things worse. Now I get loads of warnings during
bootup before the login prompt is shown:

Adding 2008116k swap on /dev/sda2. Priority:-1 extents:1 across:2008116k
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1387, comm: init Not tainted 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff81090afa>] ? filp_close+0x4a/0x80
[<ffffffff8115d87b>] ? disassociate_ctty+0x4b/0x230
[<ffffffff8103b80a>] ? do_exit+0x69a/0x6f0
[<ffffffff8103b899>] ? do_group_exit+0x39/0xa0
[<ffffffff8103b912>] ? sys_exit_group+0x12/0x20
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eafa ]---
tty_ldisc_deref: no references.
NET: Registered protocol family 17
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
warning: `dbus-daemon' uses 32-bit capabilities (legacy support in use)
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1996, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eafb ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1993, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eafc ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1994, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eafd ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1992, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eafe ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1995, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eaff ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1997, comm: mingetty Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eb00 ]---
tty_ldisc_deref: no references.
------------[ cut here ]------------
WARNING: at drivers/char/tty_ldisc.c:210 tty_ldisc_put+0x81/0x90()
Hardware name: System Product Name
Modules linked in: sunrpc af_packet snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss sg snd_pcm sr_mod cdrom 8139too snd_timer mii bitrev crc32 snd soundcore snd_page_alloc floppy ehci_hcd uhci_hcd usbcore
Pid: 1992, comm: login Tainted: G W 2.6.31-rc2 #1
Call Trace:
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81037e74>] ? warn_slowpath_common+0x74/0xd0
[<ffffffff811642f1>] ? tty_ldisc_put+0x81/0x90
[<ffffffff81164e20>] ? tty_ldisc_hangup+0x130/0x210
[<ffffffff8115d1ee>] ? do_tty_hangup+0xde/0x3d0
[<ffffffff8115d50a>] ? tty_vhangup_self+0x1a/0x30
[<ffffffff810909be>] ? sys_vhangup+0x1e/0x30
[<ffffffff8100b3ab>] ? system_call_fastpath+0x16/0x1b
---[ end trace 2068c4982373eb01 ]---
tty_ldisc_deref: no references.
[drm] Initialized drm 1.1.0 20060810
pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
pci 0000:01:00.0: setting latency timer to 64
[drm] Initialized radeon 1.30.0 20080528 for 0000:01:00.0 on minor 0
mtrr: type mismatch for c0000000,10000000 old: write-back new: write-combining
mtrr: type mismatch for c0000000,10000000 old: write-back new: write-combining
mtrr: type mismatch for c0000000,10000000 old: write-back new: write-combining
mtrr: type mismatch for c0000000,10000000 old: write-back new: write-combining
mtrr: type mismatch for c0000000,10000000 old: write-back new: write-combining
[drm] Setting GART location based on new memory map
[drm] Loading R300 Microcode
[drm] Num pipes: 1
[drm] writeback test succeeded in 1 usecs

/Mikael

2009-07-06 16:36:57

by Alan

[permalink] [raw]
Subject: Re: 2.6.31-rc tty layer instabilities

> > This happens perhaps once every 5 or so reboots. I haven't yet seen
> > any specific usage pattern that might be the trigger.
>
> I suspect its simply a matter of timing randomness.
>
> Does this help:

On second thought don't bother - this won't work so isn't worth testing