All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Radha Ramachandran <radha@google.com>
Cc: fio@vger.kernel.org
Subject: Re: Populating the io_u before the I/O
Date: Tue, 28 Apr 2009 07:51:42 +0200	[thread overview]
Message-ID: <20090428055142.GG4593@kernel.dk> (raw)
In-Reply-To: <66dfd3fe0904271558s6b8c3faamdc6ebb7f8fb95054@mail.gmail.com>

On Mon, Apr 27 2009, Radha Ramachandran wrote:
> Hi,
> I was seeing some performance drop during the read verification phase
> of a test, and from the code in io_u.c in get_io_u function, we
> prepare/populate the buffer in the io_u structure based on the verify
> patterns/options.
> This makes sense when we are doing writes, but I dont understand why
> we do this for the read phase when this data is going to be
> overwritten anyways(and in case of truncated reads, we do modify the
> buf_len).
> So based on that I changed the code to populate the buffer(io_u->buf)
> only if its a write with verify enabled.
> This works for my tests, but I do not know if there was a reason why
> this was populated for reads as well to begin with.
> My change:
> 
>  diff -up io_u.c.orig io_u.c
> --- io_u.c.orig 2009-04-27 15:42:11.213724000 -0700
> +++ io_u.c      2009-04-27 15:51:34.881647000 -0700
> @@ -838,7 +838,7 @@ struct io_u *get_io_u(struct thread_data
> 
>                 f->last_pos = io_u->offset + io_u->buflen;
> 
> -               if (td->o.verify != VERIFY_NONE)
> +               if (td->o.verify != VERIFY_NONE && io_u->ddir == DDIR_WRITE)
>                         populate_verify_io_u(td, io_u);
>                 else if (td->o.refill_buffers && io_u->ddir == DDIR_WRITE)
>                         io_u_fill_buffer(td, io_u, io_u->xfer_buflen);

Most likely to scrub the contents, but a memset() would have sufficed
there. Still pretty pointless, I see no reason why we can't apply your
patch (done).

-- 
Jens Axboe


      reply	other threads:[~2009-04-28  5:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-27 22:58 Populating the io_u before the I/O Radha Ramachandran
2009-04-28  5:51 ` Jens Axboe [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=20090428055142.GG4593@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=fio@vger.kernel.org \
    --cc=radha@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.