[Devel] [RFC rh7 v6] ve/tty: vt -- Implement per VE support for console and terminals
Vladimir Davydov
vdavydov at parallels.com
Mon Aug 31 12:36:25 PDT 2015
On Mon, Aug 31, 2015 at 09:07:07PM +0300, Cyrill Gorcunov wrote:
> On Mon, Aug 31, 2015 at 08:19:50PM +0300, Vladimir Davydov wrote:
>
> OK, to all prev comments, thank you!
>
> > > + tty = tty_init_dev(vttys_driver, idx);
> > > + if (IS_ERR(tty))
> > > + goto err_install;
> >
> > So we have master:0 slave:1 here, right?
>
> yes
>
> >
> > > + tty->count--;
> >
> > master:0 slave:0
>
> yes
>
> >
> > > + tty_unlock(tty);
> > > + tty = tty->link;
> > > + }
> > > +
> > > + /* One master at a time */
> > > + if (tty->count >= 1) {
> > > + ret = -EBUSY;
> > > + goto err_install;
> > > + }
> > > +
> > > + vtty_drop_context();
> > > +
> > > + WARN_ON(!test_bit(TTY_LDISC, &tty->flags));
> > > +
> > > + /*
> > > + * We're the master peer so increment
> > > + * slave counter as well.
> > > + */
> > > + tty_add_file(tty, file);
> > > + tty->count++;
> >
> > If we just created the pair:
> > master:1 slave:0
> > otherwise:
> > master:1 slave:1+nusers
>
> master:1 slave:nusers, there is no additional +1 on it yet
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
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