All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: David Herrmann <dh.herrmann@gmail.com>
Cc: Hannes Reinecke <hare@suse.de>,
	systemd Mailing List <systemd-devel@lists.freedesktop.org>,
	Kay Sievers <kay@vrfy.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.cz>
Subject: Re: [systemd-devel] [PATCH] tty: Set correct tty name in 'active' sysfs attribute
Date: Wed, 05 Feb 2014 09:19:04 -0500	[thread overview]
Message-ID: <52F24858.4020208@hurleysoftware.com> (raw)
In-Reply-To: <CANq1E4Q6A1p4HXvx=ynRhAs+mmedz4tn+dQ9et_jb6SdPAgdsA@mail.gmail.com>

This patch won't get very far if not addressed to the actual maintainers

[ +cc Greg Kroah-Hartman, Jiri Slaby]

On 02/05/2014 09:05 AM, David Herrmann wrote:
> Hi
>
> On Wed, Feb 5, 2014 at 2:53 PM, Peter Hurley <peter@hurleysoftware.com> wrote:
>> On 02/05/2014 07:53 AM, David Herrmann wrote:
>>>
>>> Hi
>>>
>>> On Wed, Feb 5, 2014 at 11:11 AM, Hannes Reinecke <hare@suse.de> wrote:
>>>>
>>>> The 'active' sysfs attribute should refer to the currently
>>>> active tty devices the console is running on, not the currently
>>>> active console.
>>>> The console structure doesn't refer to any device in sysfs,
>>>> only the tty the console is running on has.
>>>> So we need to print out the tty names in 'active', not
>>>> the console names.
>>>>
>>>> Cc: Lennart Poettering <lennart@poettering.net>
>>>> Cc: Kay Sievers <kay@vrfy.org>
>>>> Signed-off-by: Werner Fink <werner@suse.de>
>>>> Signed-off-by: Hannes Reinecke <hare@suse.de>
>>>> ---
>>>>    drivers/tty/tty_io.c | 14 ++++++++++++--
>>>>    1 file changed, 12 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
>>>> index c74a00a..17db8ca 100644
>>>> --- a/drivers/tty/tty_io.c
>>>> +++ b/drivers/tty/tty_io.c
>>>> @@ -3545,9 +3545,19 @@ static ssize_t show_cons_active(struct device
>>>> *dev,
>>>>                   if (i >= ARRAY_SIZE(cs))
>>>>                           break;
>>>>           }
>>>> -       while (i--)
>>>> +       while (i--) {
>>>> +               const struct tty_driver *driver;
>>>> +               const char *name = cs[i]->name;
>>>> +               int index = cs[i]->index;
>>>> +
>>>> +               driver = cs[i]->device(cs[i], &index);
>>>> +               if (driver) {
>>>> +                       index += driver->name_base;
>>>> +                       name = driver->name;
>>>> +               }
>>>>                   count += sprintf(buf + count, "%s%d%c",
>>>> -                                cs[i]->name, cs[i]->index, i ? '
>>>> ':'\n');
>>>> +                                name, index, i ? ' ':'\n');
>>>> +       }
>>>
>>>
>>> Nice catch and indeed, systemd already relies on these names to be
>>> identical to their char-dev name. Fortunately, VTs and most serial
>>> devices register the console with the same name as the TTY, so we're
>>> fine.
>>
>>
>> What device did this trip over?
>
> I haven't seen one so far, but to me it's a coincident, not something
> we should rely on.
>
>> Also, this file is not private to systemd. Maybe these changes should
>> be forked into a different sysfs attribute, "active_devices"?
>
> What's the use-case to return the name of the console-driver? There is
> no way for user-space to read active console-drivers anywhere so I
> think returning the TTY makes more sense. We already have working
> user-space that can spawn gettys on active consoles via this file. I
> am open to change this to "active_devices" as the existing interface
> was clearly not designed to return the device-names.
>
> However, given the fact that both matched so far, I think changing the
> existing interface to the only user I am aware of is better than
> adding a new interface just to keep this unused attribute. But
> obviously it's the maintainer's/your decision and you might know
> user-space which requires the console-names instead of the tty-names.
> So please let us know which way to go as we would like to see a
> reliable way to match active consoles to TTY devices for automated
> getty-startup.

Sure, I get it. Just wanted to point out the obvious right up front
so that if it turns out there is another userspace dependency and
this gets rewound, possibly across future -stable kernels, the
fallout could get ugly.

Regards,
Peter Hurley

PS - The "active" attribute won't be unused; old systemd's will
still depend on it, yes?


  reply	other threads:[~2014-02-05 14:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-05 10:11 [PATCH] tty: Set correct tty name in 'active' sysfs attribute Hannes Reinecke
2014-02-05 12:53 ` [systemd-devel] " David Herrmann
2014-02-05 13:53   ` Peter Hurley
2014-02-05 14:05     ` David Herrmann
2014-02-05 14:19       ` Peter Hurley [this message]
2014-02-06 15:46   ` Hannes Reinecke
2014-02-05 16:38 ` Greg KH

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=52F24858.4020208@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=dh.herrmann@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hare@suse.de \
    --cc=jslaby@suse.cz \
    --cc=kay@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=systemd-devel@lists.freedesktop.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.