Deadlock between GEOM and devfs device destroy and process exit.

Ed Schouten ed at
Sat Jan 30 20:07:42 UTC 2010

Hi all,

* Kostik Belousov <kostikbel at> wrote:
> My exemplary case has been snp(4) before tty got rewritten, see r. 1.107
> of sys/dev/snp/snp.c. No calls to destroy_dev_sched() that I placed in
> the src/ a kept around, that is good because corresponding subsystems
> got serious rewrite.

The current TTY code still uses destroy_dev_sched_cb(). In a very old
version of the new TTY code, close() on a pseudo-terminal master device
would also end up calling destroy_dev(), which meant it blocked until
the TTY was closed as well, which is obviously not what it should do.

I changed the TTY code to destroy_dev_sched_cb(), which means tty_gone()
doesn't block. The TTY layer later calls a callback function, so the pts
driver can deallocate the softc and reclaim the unit number (pts/%d).

 Ed Schouten <ed at>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url :

More information about the freebsd-geom mailing list