Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Aug 2008 13:33:38 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        src-committers@freebsd.org, John Baldwin <jhb@freebsd.org>, Peter Jeremy <peterjeremy@optushome.com.au>, Ed Schouten <ed@freebsd.org>, cvs-all@freebsd.org, cvs-src@freebsd.org
Subject:   Re: cvs commit: src/sys/dev/io iodev.c
Message-ID:  <20080809103338.GN97161@deviant.kiev.zoral.com.ua>
In-Reply-To: <alpine.BSF.1.10.0808091127170.36489@fledge.watson.org>
References:  <200808081343.m78DhwYE068477@repoman.freebsd.org> <200808081226.32089.jhb@freebsd.org> <20080809001256.GL64458@server.vk2pj.dyndns.org> <alpine.BSF.1.10.0808091127170.36489@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--02C+GlUcNvfRYA2K
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Aug 09, 2008 at 11:27:58AM +0100, Robert Watson wrote:
>=20
> On Sat, 9 Aug 2008, Peter Jeremy wrote:
>=20
> >On 2008-Aug-08 12:26:31 -0400, John Baldwin <jhb@freebsd.org> wrote:
> >>It should be setting D_TRACKCLOSE though so that close() reliably clear=
s=20
> >>the flag even in single-threaded processes.  You can still get odd=20
> >>behavior if you explicitly open it twice in an app and then close one o=
f=20
> >>the two fd's. You will no longer have IO permission even though you sti=
ll=20
> >>have one fd open. However, if you do that I think you deserve what you=
=20
> >>asked for. :)
> >
> >That behaviour may be legitimate:  Your code links with libraries foo an=
d=20
> >bar that each independently open /dev/io so they can frob different thin=
gs=20
> >in IO space.  libfoo needs ongoing access to device foo and so keeps its=
=20
> >descriptor open.  libbar only needs once-off access to device bar and so=
=20
> >closes /dev/io once it's finished its initialisation.  Libraries foo and=
=20
> >bar are completely independent and shouldn't need to know anything about=
=20
> >each other and your app shouldn't need to know that libraries it's using=
=20
> >frob around in IO space.
>=20
> If that's the view, there should probably be a per-process counter,=20
> although this is all a bit tricky anyway since file descriptors and=20
> processes have a tenuous relationship.

Another interesting issue is the close on exec, esp. for /dev/io.

It seems that Linux recently grown full new API to handle FD_CLOEXEC races,
see http://udrepper.livejournal.com/20407.html

--02C+GlUcNvfRYA2K
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAkidcoEACgkQC3+MBN1Mb4iHpwCgmHo9VoMHSNUazRS/18mmkgTs
g3gAoIcIXqc8YmW5mqfW/j8aAY6A//Q3
=PpBH
-----END PGP SIGNATURE-----

--02C+GlUcNvfRYA2K--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080809103338.GN97161>