From: Gerhard Heift <gerhard@heift.name>
To: Anand Jain <Anand.Jain@oracle.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH RFCv2] new ioctl TREE_SEARCH_V2
Date: Tue, 28 Jan 2014 13:51:42 +0100 [thread overview]
Message-ID: <CACeaM8_x392hkWq0OxHWspBYfqron3Kq-6KSwp4D+1L_CPX_rQ@mail.gmail.com> (raw)
In-Reply-To: <52E77879.1080000@oracle.com>
2014-01-28 Anand Jain <Anand.Jain@oracle.com>:
> You may have covered this but its not explicit.
> Could you write few lines on whats wrong with the current
> TREE SEARCH and how V2 is helping.
I wrote a program, which basically calculates a checksum over a files
content checksums. First I got the fiemap of the file and then
searched for the csum items with
objectid: BTRFS_EXTENT_CSUM_OBJECTID;
type: BTRFS_EXTENT_CSUM_KEY;
offset: [physical pages]
This worked good but sometimes resulted in a empty items, because they
did not fit in the given buffer of 3992 bytes, specially for large
files. As David worte in [1], EXTENT_CSUM items seem to cap at 16k. A
simple solution would have been to just expand the static buffer size,
but with this solution, the user can decide how much buffer is needed.
Either way, directly copying the data to userspace with
read_extent_buffer_to_user (as suggested in [2]) will eliminate the
double-copy of data and needs less memory in the kernel.
[1] http://article.gmane.org/gmane.comp.file-systems.btrfs/31765
[2] http://article.gmane.org/gmane.comp.file-systems.btrfs/32064
> Thanks, Anand
>
>
>
>
> On 01/27/2014 09:28 PM, Gerhard Heift wrote:
>>
>> This patch series adds a new ioctl TREE_SEARCH_V2 with which we could
>> store the
>> results in a varying buffer. Now even items larger than 3992 bytes or a
>> large
>> amount of items can be returned.
>>
>> I have a few questions:
>> Which value should I assign to TREE_SEARCH_V2?
>> Should we limit the buffer size?
>> What about documentation?
>>
>> Changelog
>>
>> RFCv2
>> * fixed a build bug caused by using a wrong patch
>> * added a patch to expand buffer lifetime
>>
>> Gerhard
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2014-01-28 12:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-27 13:28 [PATCH RFCv2] new ioctl TREE_SEARCH_V2 Gerhard Heift
2014-01-27 13:28 ` [PATCH RFCv2 1/6] btrfs: search_ioctl accepts varying buffer Gerhard Heift
2014-01-27 17:19 ` David Sterba
2014-01-27 13:28 ` [PATCH RFCv2 2/6] btrfs: search_ioctl rejects unused setted values Gerhard Heift
2014-01-27 17:28 ` David Sterba
2014-01-28 0:32 ` Gerhard Heift
2014-01-29 17:12 ` David Sterba
2014-01-27 19:06 ` Martin Steigerwald
2014-01-27 13:28 ` [PATCH RFCv2 3/6] btrfs: copy_to_sk returns EOVERFLOW for too small buffer Gerhard Heift
2014-01-27 13:28 ` [PATCH RFCv2 4/6] btrfs: new ioctl TREE_SEARCH_V2 Gerhard Heift
2014-01-27 17:41 ` David Sterba
2014-01-28 0:33 ` Gerhard Heift
2014-01-27 13:28 ` [PATCH RFCv2 5/6] btrfs: search_ioctl: direct copy to userspace Gerhard Heift
2014-01-27 18:11 ` David Sterba
2014-01-28 0:35 ` Gerhard Heift
2014-01-27 13:28 ` [PATCH RFCv2 6/6] btrfs: in tree_search extent buffer lifetime Gerhard Heift
2014-01-27 17:15 ` [PATCH RFCv2] new ioctl TREE_SEARCH_V2 David Sterba
2014-01-27 19:10 ` Goffredo Baroncelli
2014-01-27 19:31 ` Hugo Mills
2014-01-27 21:33 ` Goffredo Baroncelli
2014-01-28 9:29 ` Anand Jain
2014-01-28 12:51 ` Gerhard Heift [this message]
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=CACeaM8_x392hkWq0OxHWspBYfqron3Kq-6KSwp4D+1L_CPX_rQ@mail.gmail.com \
--to=gerhard@heift.name \
--cc=Anand.Jain@oracle.com \
--cc=linux-btrfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).