From: xerofoify@gmail.com (Nick)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Curious about corner case in btrfs code
Date: Tue, 26 Aug 2014 20:41:24 -0400 [thread overview]
Message-ID: <53FD2934.3050108@gmail.com> (raw)
In-Reply-To: <20140827003733.GM790@aurora>
On 08/26/2014 08:37 PM, Tobias Boege wrote:
> On Tue, 26 Aug 2014, Nick wrote:
>> On 08/26/2014 08:05 PM, Tobias Boege wrote:
>>> On Tue, 26 Aug 2014, Nick wrote:
>>>> On 08/26/2014 06:58 PM, Mandeep Sandhu wrote:
>>>>> If it's a corner case, it won't be hit often enough right? And if it
>>>>> was hit often enough, it wouldn't be corner case!? :)
>>>>>
>>>>> These 2 are mutually exclusive!
>>>>>
>>>>>
>>>>> On Tue, Aug 26, 2014 at 3:47 PM, Nick <xerofoify@gmail.com> wrote:
>>>>>> After reading through the code in inode.c today , I am curious about the comment and the following code I will paste
>>>>>> below. I am curious if this corner case is hit often enough for me to write a patch to improve the speed of this
>>>>>> corner case. Furthermore , compress_file_range is the function name, in case you can't guess by the pasted code.
>>>>>> Regards Nick
>>>>>> 411 /*
>>>>>> 412 * we don't want to send crud past the end of i_size through
>>>>>> 413 * compression, that's just a waste of CPU time. So, if the
>>>>>> 414 * end of the file is before the start of our current
>>>>>> 415 * requested range of bytes, we bail out to the uncompressed
>>>>>> 416 * cleanup code that can deal with all of this.
>>>>>> 417 *
>>>>>> 418 * It isn't really the fastest way to fix things, but this is a
>>>>>> 419 * very uncommon corner.
>>>>>> 420 */
>>>>>> 421 if (actual_end <= start)
>>>>>> 422 goto cleanup_and_bail_uncompressed;
>>>>>>
>>>>>> _______________________________________________
>>>>>> Kernelnewbies mailing list
>>>>>> Kernelnewbies at kernelnewbies.org
>>>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>> I get that my question is if this corner case is hit, enough for me to write a patch to optimize it.
>>>> In addition the comment states it isn't but want to known for standard compression workloads in btrfs
>>>> if it's hit enough for me to work on this and how much speed degradation are me we doing my not writing
>>>> it better.
>>>> Nick
>>>>
>>>
>>> Here's how I would go about it:
>>>
>>> 1. Understand when the case is met (in theory).
>>> 2. Try to trigger it on a real system multiple times.
>>> 3. Try to explore systematically under what circumstances the case is met
>>> and rank them by plausibility (if the notion of plausibility makes any
>>> sense in a real world scenario -- I don't know).
>>> 4. Estimate cost vs. benefit.
>>>
>>> I don't know if this is a good way but notice how you can do all this on
>>> yourself which I think is a plus for everyone. And if you decide in step 4
>>> to write a patch:
>>>
>>> 5. Use your results from step 3 to create an environment that benefits
>>> from your patch (notice how 4 guarantees that there exists such a
>>> system with reasonable connection to real needs). Note the numbers.
>>> 6. Test your patch on as many regular configurations as possible. Note
>>> the numbers. If it degrades performance on any of those, abort.
>>> 7. Do *NOT* send the patch out.
>>>
>>> Regards,
>>> Tobi
>>>
>>
>> Thanks Tobi,
>> >From reading the code off the bat, seems to not need to be written as this case is rarely meet for large files
>> or files that are huge and take a lot of time to write.
>>
>
> Thanks for letting me compose my mail before you take a closer look at your
> matter and decide it's not worth it.
>
>> Was more curious about how to test things like this if
>> I need to :).
>
> Then you need to phrase that -- in the *first* mail of a thread. There is no
> need to hide your real questions behind different ones.
>
> I think the steps 1 and 2 above can still be used to answer your question.
> Basically, to test something you set up and run your system and then you do
> things. What your "system" is constituted of and what "things" are depends
> upon the subject and 1 and 2 might help you clear that up.
>
> Regards,
> Tobi
>
Sorry , thought it was a stupid question. Will note for next time.
Regards Nick
next prev parent reply other threads:[~2014-08-27 0:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-26 22:47 Curious about corner case in btrfs code Nick
2014-08-26 22:58 ` Mandeep Sandhu
2014-08-26 23:14 ` Nick
2014-08-26 23:36 ` Mandeep Sandhu
2014-08-27 0:05 ` Tobias Boege
2014-08-27 0:13 ` Nick
2014-08-27 0:36 ` Valdis.Kletnieks at vt.edu
2014-08-27 0:37 ` Tobias Boege
2014-08-27 0:41 ` Nick [this message]
2014-08-27 1:49 ` Greg Freemyer
2014-08-27 4:08 ` Valdis.Kletnieks at vt.edu
2014-08-27 4:47 ` nick
2014-08-27 5:09 ` Aruna Hewapathirane
2014-08-27 17:35 ` nick
2014-08-26 23:34 ` Valdis.Kletnieks at vt.edu
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=53FD2934.3050108@gmail.com \
--to=xerofoify@gmail.com \
--cc=kernelnewbies@lists.kernelnewbies.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).