Messages in this thread | | | Date | Sat, 1 May 2004 16:44:44 -0700 | From | Chris Wedgwood <> | Subject | Re: strange delays on console logouts (tty != 1) |
| |
On Sun, May 02, 2004 at 01:24:48AM +0200, Petr Vandrovec wrote:
> I do not think that it is init...
No, it's not.
> (1) agetty (at least from util-linux 2.12 from current debian > unstable) opens /dev/console and calls VT_OPENQRY to find first > unopened VT.
yes, this i discovered too
> I have no idea why it does this, especially as it causes problems > when more than one agetty is started simultaneously. I cannot > believe that there is no better way how to detect whether tty is in > use or not (as comment in the agetty suggests).
read below
> (2) tty hangup is scheduled for work_queue.
> (3) when you have bad luck then scheduled hangup work runs AFTER > newly created agetty calls VT_OPENQRY, and you get an error that > ttyX is already in use...
Unless I misunderstand you, I'm not conviced... it get tty's 'stuck', they never come right even after hours or days.
> I think that we should concentrate on how is it possible that init > can spawn agetty and agetty can parse whole /var/run/utmp, open > /dev/console and issue VT_OPENQRY before work scheduled before init > was even notified is done. It looks to me like that someone > schedules some job on the workqueue although that job apparently > deserves its own kernel thread due to time it takes.
Yes, as far as the kernel is concerned this needs checking.
By comments (from before I got this email) and a pointer to the fix I use...
I see unused tty's (such as tty4) and ioctl(..., VT_OPENQRY, ...) returning numbers like 8 --- which agetty barfs on.
The solution I hacked up was to have agetty use vhangup on the tty and not even use the ioctl which seems fragile at the best of time. The present patch is at:
http://stupidest.org/patches/util-linux-2.12-agetty-vhangup.001.patch
(ugly URL, sorry about that).
I've cc'd Andries Brouwer his his comments as he is the util-linux maintainer.
Thanks,
--cw - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |