public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Arjan van de Ven <arjanv@redhat.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: memset (was: Redundant memset in AIO read_events)
Date: 10 Jul 2003 12:29:10 +0200	[thread overview]
Message-ID: <p73smpepte1.fsf@oldwotan.suse.de> (raw)
In-Reply-To: <1057832361.5817.2.camel@laptop.fenrus.com.suse.lists.linux.kernel>

Arjan van de Ven <arjanv@redhat.com> writes:

> On Thu, 2003-07-10 at 12:04, Etienne Lorrain wrote:
> >  Note that using memset() is better reserved to initialise variable-size
> >  structures or buffers. Even if memset() is extremely optimised,
> >  it is still not as fast as not doing anything.
> 
> this is not always true....
> memset can be used as an optimized cache-warmup, which can avoid the
> write-allocate behavior of normal writes, which means that if you memset
> a structure first and then fill it, it can be halve the memory bandwidth
> and thus half as fast. This assumes an optimized memset which we
> *currently* don't have I think... but well, we can fix that ;)

You don't want to use such an memset unlike you're clearing areas
which are significantly bigger than all your cache (>several MB)
The problem is that the instruction that avoid write-allocate usually also force 
the result out of cache. And for small data sets that is typically a loss
if you want to use the data later, because the later use eats full cache misses.
In the kernel such big buffers occur only very rarely, most operations are on
4K and less. For those only in cache operation is interesting.

-Andi

       reply	other threads:[~2003-07-10 10:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20030710100417.83333.qmail@web11801.mail.yahoo.com.suse.lists.linux.kernel>
     [not found] ` <1057832361.5817.2.camel@laptop.fenrus.com.suse.lists.linux.kernel>
2003-07-10 10:29   ` Andi Kleen [this message]
2003-07-10 10:33     ` memset (was: Redundant memset in AIO read_events) Arjan van de Ven
2003-07-10 10:04 Etienne Lorrain
2003-07-10 10:19 ` Arjan van de Ven

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=p73smpepte1.fsf@oldwotan.suse.de \
    --to=ak@suse.de \
    --cc=arjanv@redhat.com \
    --cc=linux-kernel@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