[Devel] [RFC rh7 v6] ve/tty: vt -- Implement per VE support for console and terminals

Cyrill Gorcunov gorcunov at virtuozzo.com
Mon Aug 31 12:51:02 PDT 2015


On Mon, Aug 31, 2015 at 10:36:25PM +0300, Vladimir Davydov wrote:
> 
> Yeah, you're right. But then we diverge from pty ref counting design,
> which isn't good IMO. To fix that, let's increment slave's count twice
> on vtty_install, once for file and once for master reference. Then we

If we increment it twice we have to carry extra-ref bit (which I've
dropped off) otherwise if noone has opened master peer the tty engine
will complain that the number of fd != count. What's worse is that
if noone ever has opened master we have to decrement it back together
with extra ref to be able to close the peer. I mean

1) Create pair inside container via slave

	slave:2 (1 - read fd + extra ref) 	master:0

noone opens master and we're calling tty_release, then in
vtty_close we've tp drop the extra ref together with count--,
but if we do so there is still a race window after tty_unlock.

> will only have to decrement slave's count right after tty_init_dev,
> which is safe, because we're holding tty_lock there. Sounds OK?



More information about the Devel mailing list