[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.1.10.0906250922530.9517@makko.or.mcafeemobile.com>
Date: Thu, 25 Jun 2009 09:34:31 -0700 (PDT)
From: Davide Libenzi <davidel@...ilserver.org>
To: Rusty Russell <rusty@...tcorp.com.au>
cc: Gregory Haskins <ghaskins@...ell.com>, mst@...hat.com,
kvm@...r.kernel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
avi@...hat.com, paulmck@...ux.vnet.ibm.com,
Ingo Molnar <mingo@...e.hu>
Subject: Re: [PATCH 3/3] eventfd: add internal reference counting to fix
notifier race conditions
On Thu, 25 Jun 2009, Rusty Russell wrote:
> On Thu, 25 Jun 2009 08:15:11 am Davide Libenzi wrote:
> >
> > Some components would like to know if userspace dropped the fd, and take
> > proper action accordingly (release resources, drop module instances,
> > etc...).
>
> Like to know? Possibly. Need to know? Not anything I've seen so far.
>
> If userspace creates the fd, component grab a ref and if userspace wants that
> fd completely freed must close the fd *and* tell component. Simple, race free
> and explicit. All wins.
>
> As this discussion shows, doing some kind of implies non-reference is hard,
> complex and racy.
Easier, we agree. Not doing anything is always easier, provided the
userspace interface allows for it.
Cleaner, I'm not sure. Again, it depends from the userspace interface, but
usually when you close(2) something, you expect the kernel to react
accordingly, and not on relying on userspace issuing extra calls in order
to proper cleanup the kernel context.
This is even more true when the eventfd is the sole handle to the visisble
userspace interface.
In such cases, not taking proper action on close(2) and requiring extra
calls, would lead to designing interface with the close-no-really-i-mean-it
patterns.
- Davide
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists