mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jon Smirl" <jonsmirl@gmail.com>
To: "Alan Cox" <alan@lxorguk.ukuu.org.uk>
Cc: "Theodore Tso" <tytso@mit.edu>, lkml <linux-kernel@vger.kernel.org>
Subject: Re: tty's use of file_list_lock and file_move
Date: Tue, 11 Jul 2006 19:50:51 -0400	[thread overview]
Message-ID: <9e4733910607111650m16630157ya8c27949ae639ffc@mail.gmail.com> (raw)
In-Reply-To: <1152657465.18028.72.camel@localhost.localdomain>

On 7/11/06, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> Ar Maw, 2006-07-11 am 18:08 -0400, ysgrifennodd Jon Smirl:
> > What about adjusting things so the BKL isn't required? I tried
> > completely removing it and died in release_dev. tty_mutex is already
> > locks a lot of stuff, maybe it can be adjusted to allow removal of the
> > BKL.
>
> Thats what is happening currently. However it is being done piece by
> piece, slowly and carefully.
>
> > I see why no one works on this code, it is very intertwined with the
> > rest of the kernel and a lot of the reasons for locking are
> > non-obvious.
>
> You should follow l/k more closely. Since 2.6.15 Paul Fulghum and I have
> completely rewritten the entire buffering logic. In 2.6.14 or so I
> rewrote the line discipline locking and support code.

I had noticed that code looked new and quite clean, I have not seen
any problems with it.

> One hint by the way - stop looking at locks and code, look at locks and
> data structures. There is an old saying "lock data not code" and it
> really is true if you want to follow the locking and get it right.
>
> The open/close/hangup logic is last on the list to fix, because as
> you've noticed its the most horrible. Once the other locking is sane
> that bit should become more managable even with the strict and bizarre
> rules POSIX and SuS enforce on us in this area.

My original goal was to do some work on the VT layer but I got sucked
into the TTY code because of VT/TTY interactions. I think I understand
enough now that I can make changes in the VT code without breaking
everything. I also see now that the VT code wasn't as closely
intertwined into the TTY code as much as I initially thought it was.

So getting back to my VT problem, I want to fully decouple the VT code
from the TTY code. By decoupling I mean make the VT code use APIs and
not have #ifdef CONFIG_VT sprinkled all over the place. There are
fifteen #ifdef CONFIG_VT's is general kernel code and about twenty
more in arch specific code.

One #ifdef CONFIG_VT is in tty_init().  The tty layer is being
initialized via module_init(tty_init) which is the same as
device_initcall(fn).  Link order is pci, video, acpi, char, serial,
base. This doesn't look right to me since the video console drivers
need the tty code to function.

This may also explain why the init functions are all chained together.
tty_init() -> vty_init() -> vcs_init(), kbd_init(), prom_con_init(),
etc... Since the link order is wrong the chained init functions are
compensating.

The fix for this is to get things linking in the right order, add
module_init() where needed then all of the chained init()'s can be
removed.

-- 
Jon Smirl
jonsmirl@gmail.com

  parent reply	other threads:[~2006-07-11 23:50 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-10 15:10 Jon Smirl
2006-07-10 17:33 ` Alan Cox
2006-07-10 17:27   ` Jon Smirl
2006-07-10 18:05     ` Alan Cox
2006-07-10 18:09       ` Jon Smirl
2006-07-10 23:18         ` Alan Cox
2006-07-10 22:35       ` Jon Smirl
2006-07-10 23:15         ` Alan Cox
2006-07-10 23:04           ` Jon Smirl
2006-07-10 23:49             ` Jon Smirl
2006-07-11  1:29               ` Theodore Tso
2006-07-11  2:16                 ` Jon Smirl
2006-07-11 10:12                   ` Alan Cox
2006-07-11 12:28                     ` Jon Smirl
2006-07-11 13:15                       ` Paulo Marques
2006-07-11 13:42                         ` Jon Smirl
2006-07-11  3:33                 ` Jon Smirl
2006-07-11 19:52                   ` Russell King
2006-07-11 19:44                 ` Russell King
2006-07-11 22:08                   ` Jon Smirl
2006-07-11 22:37                     ` Alan Cox
2006-07-11 23:28                       ` Paul Fulghum
2006-07-12  0:00                         ` Jon Smirl
2006-07-11 23:50                       ` Jon Smirl [this message]
2006-07-12  3:55                         ` Jon Smirl
2006-07-12 11:37                         ` Alan Cox
2006-07-10 23:39         ` Theodore Tso
2006-07-11  0:25           ` Jon Smirl
2006-07-12  6:27           ` Pekka Enberg
2006-07-12 11:19             ` Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9e4733910607111650m16630157ya8c27949ae639ffc@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome