Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1261205

Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks() operations

From Dan Williams <dan.j.williams@intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks() operations
Date 2015-11-03 06:40 +0100
Message-ID <qqCu5-6TC-1@gated-at.bofh.it> (permalink)
References <qqf4t-Og-3@gated-at.bofh.it> <qqf4t-Og-7@gated-at.bofh.it> <qqy77-3Xq-3@gated-at.bofh.it> <qqAsh-5Cv-1@gated-at.bofh.it> <qqBHH-6kT-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, Nov 2, 2015 at 8:48 PM, Dave Chinner <david@fromorbit.com> wrote:
> On Mon, Nov 02, 2015 at 07:27:26PM -0800, Dan Williams wrote:
>> On Mon, Nov 2, 2015 at 4:51 PM, Dave Chinner <david@fromorbit.com> wrote:
>> > On Sun, Nov 01, 2015 at 11:29:53PM -0500, Dan Williams wrote:
>> > The zeroing (and the data, for that matter) doesn't need to be
>> > committed to persistent store until the allocation is written and
>> > committed to the journal - that will happen with a REQ_FLUSH|REQ_FUA
>> > write, so it makes sense to deploy the big hammer and delay the
>> > blocking CPU cache flushes until the last possible moment in cases
>> > like this.
>>
>> In pmem terms that would be a non-temporal memset plus a delayed
>> wmb_pmem at REQ_FLUSH time.  Better to write around the cache than
>> loop over the dirty-data issuing flushes after the fact.  We'll bump
>> the priority of the non-temporal memset implementation.
>
> Why is it better to do two synchronous physical writes to memory
> within a couple of microseconds of CPU time rather than writing them
> through the cache and, in most cases, only doing one physical write
> to memory in a separate context that expects to wait for a flush
> to complete?

With a switch to non-temporal writes they wouldn't be synchronous,
although it's doubtful that the subsequent writes after zeroing would
also hit the store buffer.

If we had a method to flush by physical-cache-way rather than a
virtual address then it would indeed be better to save up for one
final flush, but when we need to resort to looping through all the
virtual addresses that might have touched it gets expensive.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Dan Williams <dan.j.williams@intel.com> - 2015-11-02 05:40 +0100
  Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Dave Chinner <david@fromorbit.com> - 2015-11-03 02:00 +0100
    Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks() operations Dan Williams <dan.j.williams@intel.com> - 2015-11-03 04:30 +0100
      Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Dave Chinner <david@fromorbit.com> - 2015-11-03 05:50 +0100
        Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks() operations Dan Williams <dan.j.williams@intel.com> - 2015-11-03 06:40 +0100
          Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Dave Chinner <david@fromorbit.com> - 2015-11-03 07:00 +0100
            Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks() operations Dan Williams <dan.j.williams@intel.com> - 2015-11-03 08:30 +0100
          Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Jan Kara <jack@suse.cz> - 2015-11-03 17:30 +0100
          Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Ross Zwisler <ross.zwisler@linux.intel.com> - 2015-11-03 19:00 +0100
            Re: [PATCH v3 02/15] dax: increase granularity of dax_clear_blocks()  operations Dave Chinner <david@fromorbit.com> - 2015-11-03 22:10 +0100

csiph-web