From: Tvrtko Ursulin <tvrtko.ursulin@onelan.co.uk>
To: Pavel Emelyanov <xemul@parallels.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>,
David Rientjes <rientjes@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
Al Viro <viro@zeniv.linux.org.uk>,
Alexey Dobriyan <adobriyan@gmail.com>,
James Bottomley <jbottomley@parallels.com>,
Matthew Helsley <matt.helsley@gmail.com>,
aneesh.kumar@linux.vnet.ibm.com, bfields@fieldses.org
Subject: Re: [patch 3/7] fs, notify: Add file handle entry into inotify_inode_mark
Date: Wed, 14 Nov 2012 11:12:59 +0000 [thread overview]
Message-ID: <5758501.NTghZx9OdD@deuteros> (raw)
In-Reply-To: <50A378C0.70406@parallels.com>
On Wednesday 14 November 2012 14:56:00 Pavel Emelyanov wrote:
> >>> How much space does a typical file system need to encode a handle? Am I
> >>> right that for must it is just a few bytes? (I just glanced at the code
> >>> so I might be wrong.) In which case, could the handle buffer be
> >>> allocated
> >>> dynamically depending on the underlying filesystem? Perhaps adding a
> >>> facility to query a filesystem about its maximum handle buffer needs? Do
> >>> you think the saving would justify this extra work?
> >>
> >> Well, the MAX_HANDLE_SZ is taken from NFSv4 and is 128 bytes which is
> >> quite
> >> big for inotify extension indeed. The good news is that this amount of
> >> bytes seem to be required for the most descriptive fhandle -- with info
> >> about parent, etc. We don't need such, we can live with shorter handle,
> >> people said that 40 bytes was enough for that.
> >>
> >> However, your idea about determining the handle size dynamically seems
> >> promising. As far as I can see from the code we can call for encode_fh
> >> with
> >> size equals zero and filesystem would report back the amount of bytes it
> >> requires for a handle.
> >>
> >> We can try going this route, what do you think?
> >
> > Sounds much better since that would only add one pointer to the watch
> > structure in the normal case.
> >
> > Also at checkpoint time it will use only a few bytes (compared to 64) for
> > the encode buffer for most filesystems. This part is probably not that
> > important but still a win.
>
> No, the thing is -- we need to know the handle _before_ we start checkpoint.
> More exactly -- at the time the inotify_add_watch is called. So the memory
> save would be not that big.
Ah yes, I forgot about that. But the saving is quite solid as Cyrill already
wrote.
It is still a bit unfortunate you have to have handles allocated all the time
just because C&R is compiled in. There is no way you could ask the filesystem
to create you one on demand. What would you need? Just the superblock and
inode, or more?
Regards,
Tvrtko
next prev parent reply other threads:[~2012-11-14 11:12 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-12 10:14 [patch 0/7] Providing additional information in fdinfo sufficient for c/r Cyrill Gorcunov
2012-11-12 10:14 ` [patch 1/7] procfs: Add ability to plug in auxiliary fdinfo providers Cyrill Gorcunov
2012-11-13 0:40 ` Andrew Morton
2012-11-13 7:03 ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 2/7] fs, exportfs: Escape nil dereference if no s_export_op present Cyrill Gorcunov
2012-11-12 10:14 ` [patch 3/7] fs, notify: Add file handle entry into inotify_inode_mark Cyrill Gorcunov
2012-11-13 0:55 ` Andrew Morton
2012-11-13 7:20 ` Cyrill Gorcunov
2012-11-13 7:40 ` Andrew Morton
2012-11-13 8:00 ` Cyrill Gorcunov
2012-11-13 8:19 ` David Rientjes
2012-11-13 8:29 ` Cyrill Gorcunov
[not found] ` <2910785.4Vm74eFJyi@deuteros>
2012-11-13 14:40 ` Cyrill Gorcunov
2012-11-13 15:02 ` Tvrtko Ursulin
2012-11-13 15:28 ` Cyrill Gorcunov
2012-11-14 9:20 ` Tvrtko Ursulin
2012-11-14 9:38 ` Cyrill Gorcunov
2012-11-14 9:50 ` Tvrtko Ursulin
2012-11-14 9:58 ` Cyrill Gorcunov
2012-11-14 10:08 ` Tvrtko Ursulin
2012-11-14 10:13 ` Pavel Emelyanov
2012-11-14 10:38 ` Tvrtko Ursulin
2012-11-14 10:46 ` Pavel Emelyanov
2012-11-14 10:54 ` Tvrtko Ursulin
2012-11-14 10:56 ` Pavel Emelyanov
2012-11-14 11:03 ` Cyrill Gorcunov
2012-11-14 11:12 ` Tvrtko Ursulin [this message]
2012-11-14 12:45 ` J. Bruce Fields
2012-11-14 13:03 ` Cyrill Gorcunov
2012-11-14 13:26 ` J. Bruce Fields
2012-11-14 13:32 ` Cyrill Gorcunov
2012-11-13 22:38 ` Andrew Morton
2012-11-14 6:46 ` Cyrill Gorcunov
2012-11-14 10:10 ` Pavel Emelyanov
2012-11-14 10:13 ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 4/7] fs, notify: Add procfs fdinfo helper v4 Cyrill Gorcunov
2012-11-13 1:00 ` Andrew Morton
2012-11-13 7:22 ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 5/7] fs, eventfd: Add procfs fdinfo helper Cyrill Gorcunov
2012-11-12 10:14 ` [patch 6/7] fs, epoll: Add procfs fdinfo helper v2 Cyrill Gorcunov
2012-11-12 10:14 ` [patch 7/7] fdinfo: Show sigmask for signalfd fd v2 Cyrill Gorcunov
2012-11-13 1:05 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2012-09-12 21:29 [patch 0/7] auxiliary fdinfo, new round Cyrill Gorcunov
2012-09-12 21:29 ` [patch 3/7] fs, notify: Add file handle entry into inotify_inode_mark Cyrill Gorcunov
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=5758501.NTghZx9OdD@deuteros \
--to=tvrtko.ursulin@onelan.co.uk \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=bfields@fieldses.org \
--cc=gorcunov@openvz.org \
--cc=jbottomley@parallels.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matt.helsley@gmail.com \
--cc=rientjes@google.com \
--cc=viro@zeniv.linux.org.uk \
--cc=xemul@parallels.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox