All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: fuse-devel@lists.sourceforge.net, greg@kroah.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCHSET] FUSE: extend FUSE to support more operations
Date: Thu, 13 Nov 2008 20:54:48 +0900	[thread overview]
Message-ID: <491C1588.2060907@kernel.org> (raw)
In-Reply-To: <E1L0afo-0006gr-UM@pomaz-ex.szeredi.hu>

Hello,

Miklos Szeredi wrote:
>> Why do you think using separate poll handle would be better?  And do you
>> still think the overhead is justifiable?
> 
> Because it would be a change in the semantics of the file handle.
> Previously it was just an opaque cookie that the kernel stored for the
> filesystem, not making any assumptions about it (like uniqueness).
> 
> OK, we can say that if the filesystems wants to implement poll, it has
> to make the file handle unique.  Also now the filesystem (or
> something) has to deal with races between poll notification and
> reuse of the file handle (release/open).
> 
> With a new poll handle we'd have more room to properly deal with these
> without overloading the file handle with extra requirements.
> 
> How about this: the poll handle is allocated by the kernel, not by the
> filesystem.  This guarantees uniqueness, so the filesystem cannot get
> this wrong.  Releasing the poll handle is still tricky, there could be
> various races... only the userspace filesystem knows if it has no
> outstanding notificiatons on a poll handle, so the release has to come
> after all outstanding notifications have been ack'ed.  Something like
> this:
> 
> (userspace <- kernel)
> 
> <- POLL-request(pollhandle) (alloc handle)
> -> POLL-reply
> ...
> -> POLL-notification(pollhandle)
> <- POLL-ack
> ...
> <- POLL_RELEASE(pollhandle)
> -> POLL_RELEASE-reply (free handle)

Hmm... yeah, allocating handle from kernel should work fine, but I
wouldn't worry about race here.  We can just use 64 bit and guarantee
that any handle won't be reused ever.

Thanks.

-- 
tejun

  reply	other threads:[~2008-11-13 11:55 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-28 17:40 [PATCHSET] FUSE: extend FUSE to support more operations Tejun Heo
2008-08-28 17:40 ` [PATCH 1/7] FUSE: add include protectors Tejun Heo
2008-08-28 17:40 ` [PATCH 2/7] FUSE: pass nonblock flag to client Tejun Heo
2008-08-28 17:40 ` [PATCH 3/7] FUSE: implement nonseekable open Tejun Heo
2008-08-28 17:41 ` [PATCH 4/7] FUSE: implement direct lseek support Tejun Heo
2008-08-28 17:41 ` [PATCH 5/7] FUSE: implement ioctl support Tejun Heo
2008-08-28 17:51   ` Greg KH
2008-08-28 17:59     ` Tejun Heo
2008-08-28 18:01       ` Tejun Heo
2008-08-28 18:13         ` Miklos Szeredi
2008-08-28 18:17           ` Tejun Heo
2008-08-28 18:23             ` Miklos Szeredi
2008-08-28 18:34               ` Tejun Heo
2008-08-28 19:25                 ` Miklos Szeredi
2008-08-28 19:42                   ` Tejun Heo
2008-08-28 20:02                     ` Miklos Szeredi
2008-08-29  2:19                       ` Tejun Heo
2008-08-29  7:59                         ` Miklos Szeredi
2008-08-29  8:12                           ` Tejun Heo
2008-08-29  8:29                             ` Miklos Szeredi
2008-08-29  9:03                               ` Tejun Heo
2008-08-29 19:17                                 ` Eric W. Biederman
2008-08-29 19:47                                   ` Arnd Bergmann
2008-08-30 11:40                                   ` Tejun Heo
2008-09-01 11:57                                   ` Miklos Szeredi
2008-09-01 12:03                                     ` Tejun Heo
2008-09-03 14:32                                       ` Eric W. Biederman
2008-09-03 14:40                                         ` Tejun Heo
2008-09-03 21:51                                           ` Eric W. Biederman
2008-09-04  0:09                                             ` Tejun Heo
2008-08-29 11:31                         ` [fuse-devel] " Roger Willcocks
2008-08-29 11:54                           ` Tejun Heo
2008-08-28 20:48                 ` Alan Cox
2008-08-28 18:02       ` Tejun Heo
2008-08-28 18:14         ` Greg KH
2008-08-28 18:25           ` Tejun Heo
2008-08-28 18:20   ` H. Peter Anvin
2008-08-28 18:28     ` Tejun Heo
2008-08-28 19:08       ` H. Peter Anvin
2008-08-28 19:18         ` Miklos Szeredi
2008-08-28 20:21           ` H. Peter Anvin
2008-08-28 20:55             ` Miklos Szeredi
2008-08-28 21:27               ` H. Peter Anvin
2008-08-29  7:32                 ` Miklos Szeredi
2008-08-28 17:41 ` [PATCH 6/7] FUSE: implement unsolicited notification Tejun Heo
2008-08-28 17:41 ` [PATCH 7/7] FUSE: implement poll support Tejun Heo
2008-08-28 18:20 ` [PATCHSET] FUSE: extend FUSE to support more operations Miklos Szeredi
2008-08-28 18:23   ` Tejun Heo
2008-10-14  8:21 ` Tejun Heo
2008-10-14  9:37   ` Miklos Szeredi
2008-10-14 12:16     ` [fuse-devel] " Szabolcs Szakacsits
2008-10-14 12:43       ` Miklos Szeredi
     [not found]     ` <2cff7cb50810141032m5793a405h7425dfa122fb67ba@mail.gmail.com>
2008-10-14 21:04       ` Miklos Szeredi
2008-11-12  8:41     ` Tejun Heo
2008-11-12  9:14       ` Christoph Hellwig
2008-11-12  9:30         ` Tejun Heo
2008-11-12  9:36           ` Miklos Szeredi
2008-11-12  9:43             ` [fuse-devel] " Mike Hommey
2008-11-12 10:00       ` Miklos Szeredi
2008-11-13  5:54         ` Tejun Heo
2008-11-13  6:06       ` Tejun Heo
2008-11-13 11:19         ` Miklos Szeredi
2008-11-13 11:29           ` Tejun Heo
2008-11-13 11:57             ` Miklos Szeredi
2008-11-13 12:14               ` Tejun Heo
2008-11-13  6:26     ` Tejun Heo
2008-11-13 11:47       ` Miklos Szeredi
2008-11-13 11:54         ` Tejun Heo [this message]
2008-11-13 11:58           ` Miklos Szeredi
2008-11-13 12:34             ` Miklos Szeredi
2008-11-13 13:23               ` Tejun Heo
2008-11-13 13:42                 ` Miklos Szeredi
2008-11-13 14:29                   ` Tejun Heo
2008-11-13 14:48                     ` Miklos Szeredi
2008-11-13 15:10                       ` Tejun Heo
2008-11-13 15:52                         ` Miklos Szeredi
2008-11-13 16:00                           ` Tejun Heo
2008-11-17  9:17                           ` Tejun Heo
2008-11-17 10:16                             ` [fuse-devel] " Miklos Szeredi
2008-11-18  3:32                               ` Tejun Heo
2008-11-18  9:33                                 ` Miklos Szeredi
2008-11-18 10:30                                   ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=491C1588.2060907@kernel.org \
    --to=tj@kernel.org \
    --cc=fuse-devel@lists.sourceforge.net \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.