Re: [systemd-devel] [PATCHv2] tty: Set correct tty name in 'active' sysfs attribute

2014-02-07 Thread Kay Sievers
On Thu, Feb 6, 2014 at 5:29 PM, Greg Kroah-Hartman
gre...@linuxfoundation.org wrote:
 On Thu, Feb 06, 2014 at 04:44:20PM +0100, Hannes Reinecke wrote:
 On 02/06/2014 04:29 PM, Greg Kroah-Hartman wrote:
  On Thu, Feb 06, 2014 at 03:27:43PM +0100, Hannes Reinecke wrote:
  The 'active' sysfs attribute should refer to the currently
  active tty devices the console is running on, not the currently
  active console.
 
  That's not what Documentation/ABI/sysfs-tty says:
   Shows the list of currently configured
   console devices, like 'tty1 ttyS0'.
   The last entry in the file is the active
   device connected to /dev/console.
   The file supports poll() to detect virtual
   console switches.
 
 The problem is indeed with 'console devices'. There is no such
 thing; you only have tty devices where the console is running on.

  The console structure doesn't refer to any device in sysfs,
  only the tty the console is running on has.
 
  That sentance doesn't make sense.
 
  So we need to print out the tty names in 'active', not
  the console names.
 
  But that doesn't match the documentation.
 
  What exactly are you trying to fix here?  What is the problem that the
  current file has that is broken?  And as you are changing what this file
  means, what will break if the information in the file changes?
 
 systemd is using the 'active' sysfs attribute to figure out on which
 _tty_ device to start a getty on.
 As soon as the console name and the tty name are different
 you have no means of figuring out which _device_ to open.
 AFAICS the console 'device' (ie the current entry in 'active')
 doesn't have _any_ equivalent in sysfs; it just so happens that for
 most console drivers the tty driver name is identical.
 But this is not a requirement, and fails for drivers which have a
 different device for the console and the tty.

 EG on S/390 the 3270 tty has the devices

 /dev/3270/tty1

 but the console driver announces the name 'tty3270'.
 So as per current rules the 'active' attribute contains

 tty32700

 which correct as per documentation, but doesn't have _any_
 equivalent in sysfs.

 Martin has the grubby details here.

 But of course, the documentation should be updated to match the new
 behavior.

 Ok, care to send an updated version, that fixes the Documentation as
 well?  If Kay agrees that this is the correct solution, I'll be glad to
 take it.

Sounds good to me. The intention clearly was to point to the device in use,
which we can find then.

I would not expect problems with this change. For common uses it is the
same name already and nothing visibly should change, and for the ones
where it isn't the same, I expect it is not too useful to find the driver
name.

Thanks,
Kay
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCHv2] tty: Set correct tty name in 'active' sysfs attribute

2014-02-06 Thread Hannes Reinecke
On 02/06/2014 04:29 PM, Greg Kroah-Hartman wrote:
 On Thu, Feb 06, 2014 at 03:27:43PM +0100, Hannes Reinecke wrote:
 The 'active' sysfs attribute should refer to the currently
 active tty devices the console is running on, not the currently
 active console.
 
 That's not what Documentation/ABI/sysfs-tty says:
  Shows the list of currently configured   
   
  console devices, like 'tty1 ttyS0'.  
   
  The last entry in the file is the active 
   
  device connected to /dev/console.
   
  The file supports poll() to detect virtual   
   
  console switches. 
 
The problem is indeed with 'console devices'. There is no such
thing; you only have tty devices where the console is running on.

 The console structure doesn't refer to any device in sysfs,
 only the tty the console is running on has.
 
 That sentance doesn't make sense.
 
 So we need to print out the tty names in 'active', not
 the console names.
 
 But that doesn't match the documentation.
 
 What exactly are you trying to fix here?  What is the problem that the
 current file has that is broken?  And as you are changing what this file
 means, what will break if the information in the file changes?
 
systemd is using the 'active' sysfs attribute to figure out on which
_tty_ device to start a getty on.
As soon as the console name and the tty name are different
you have no means of figuring out which _device_ to open.
AFAICS the console 'device' (ie the current entry in 'active')
doesn't have _any_ equivalent in sysfs; it just so happens that for
most console drivers the tty driver name is identical.
But this is not a requirement, and fails for drivers which have a
different device for the console and the tty.

EG on S/390 the 3270 tty has the devices

/dev/3270/tty1

but the console driver announces the name 'tty3270'.
So as per current rules the 'active' attribute contains

tty32700

which correct as per documentation, but doesn't have _any_
equivalent in sysfs.

Martin has the grubby details here.

But of course, the documentation should be updated to match the new
behavior.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke   zSeries  Storage
h...@suse.de  +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCHv2] tty: Set correct tty name in 'active' sysfs attribute

2014-02-06 Thread Greg Kroah-Hartman
On Thu, Feb 06, 2014 at 04:44:20PM +0100, Hannes Reinecke wrote:
 On 02/06/2014 04:29 PM, Greg Kroah-Hartman wrote:
  On Thu, Feb 06, 2014 at 03:27:43PM +0100, Hannes Reinecke wrote:
  The 'active' sysfs attribute should refer to the currently
  active tty devices the console is running on, not the currently
  active console.
  
  That's not what Documentation/ABI/sysfs-tty says:
   Shows the list of currently configured 
  
   console devices, like 'tty1 ttyS0'.
  
   The last entry in the file is the active   
  
   device connected to /dev/console.  
  
   The file supports poll() to detect virtual 
  
   console switches. 
  
 The problem is indeed with 'console devices'. There is no such
 thing; you only have tty devices where the console is running on.
 
  The console structure doesn't refer to any device in sysfs,
  only the tty the console is running on has.
  
  That sentance doesn't make sense.
  
  So we need to print out the tty names in 'active', not
  the console names.
  
  But that doesn't match the documentation.
  
  What exactly are you trying to fix here?  What is the problem that the
  current file has that is broken?  And as you are changing what this file
  means, what will break if the information in the file changes?
  
 systemd is using the 'active' sysfs attribute to figure out on which
 _tty_ device to start a getty on.
 As soon as the console name and the tty name are different
 you have no means of figuring out which _device_ to open.
 AFAICS the console 'device' (ie the current entry in 'active')
 doesn't have _any_ equivalent in sysfs; it just so happens that for
 most console drivers the tty driver name is identical.
 But this is not a requirement, and fails for drivers which have a
 different device for the console and the tty.
 
 EG on S/390 the 3270 tty has the devices
 
 /dev/3270/tty1
 
 but the console driver announces the name 'tty3270'.
 So as per current rules the 'active' attribute contains
 
 tty32700
 
 which correct as per documentation, but doesn't have _any_
 equivalent in sysfs.
 
 Martin has the grubby details here.
 
 But of course, the documentation should be updated to match the new
 behavior.

Ok, care to send an updated version, that fixes the Documentation as
well?  If Kay agrees that this is the correct solution, I'll be glad to
take it.

thanks,

greg k-h
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel