Race conditions

John Baldwin jhb at freebsd.org
Fri Sep 4 20:38:03 UTC 2015


On Friday, September 04, 2015 10:32:07 PM Konstantin Belousov wrote:
> On Fri, Sep 04, 2015 at 11:42:38AM -0700, John Baldwin wrote:
> > Hmm, looking at /dev/ptmx, it handles this by not doing a clone on open,
> > but instead using a d_fdopen routine and explicitly setting up the new
> > file descriptor as if it had opened the equivalent named device.  Perhaps
> > that is what I should do instead in my tap change.  If I go that route,
> > then I think that fdevname/devname would already DTRT without needing a
> > new cdevsw method.
> 
> There is probably some fine difference between pts, which are typically
> fully managed and configured by master using the file descriptor, and
> cloned network interfaces, where you usually allow external processes to
> do the work.  But if it works for tap, great.

In some cases though the external management is not that much to arrange.
For my particular use case (multiple VMs) devd can autoconfigure new tap
devices as they are created (add them to a global bridge interface) and
bhyve just does operations on the fd it has opened.

> Also, you should have noted D3557 (csw d_devname), just in case ?

I did see the e-mail but have not (yet) looked in detail.

-- 
John Baldwin


More information about the freebsd-drivers mailing list