Davide Libenzi wrote: > On Tue, 15 May 2007, Christoph Hellwig wrote: > > >> On Tue, May 15, 2007 at 12:18:17PM -0400, Gregory Haskins wrote: >> >>>>>> On Tue, May 15, 2007 at 11:40 AM, in message >>>>>> >>> <[EMAIL PROTECTED]>, Davide Libenzi >>> <[EMAIL PROTECTED]> wrote: >>> >>>> I don't know how critical is the path where you will be doing check. The >>>> eventfd_fget() is pretty fast, so if you're not looking at a performance >>>> critical path, I'd suggest that. Otherwise you can do an early >>>> eventfd_get, and keep the file*. If you have no the ways to know if the >>>> userspace disconnected, an atomic_read(&file- >f_count)==1 will tell you >>>> that you're the only owner of the file* (that is, userspace closed the >>>> eventfd descriptor). I'd give preference to the former option though. >>>> >>> Thanks for the insight, Davide. It sounds like we can probably stay with >>> the way I have it for now, and keep the file->f_count idea in our back >>> pocket should a performance problem arise. >>> >> accessing file->f_count is not allowed for drivers. It took us quite a >> bit of effort to clean up all users a while ago, and it turned out most >> of them were rather buggy. >> > > Right, you could use the file_count() macro :) > Seriuosly, if this (doing an eventfd_fget+fput) becomes a problem, I can > have the check done in eventfd_signal() and return a proper error code. > >
IMO doing eventfd_fget() asap is best. I much prefer refcounted pointers to handles in the kernel: it's easier to see what things point to, and there is to context needed for dereferencing. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel