All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Christoph Hellwig <hch@infradead.org>,
	linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
	Jan Kara <jack@suse.cz>, "Darrick J . Wong" <djwong@kernel.org>,
	Ojaswin Mujoo <ojaswin@linux.ibm.com>,
	Disha Goel <disgoel@linux.ibm.com>
Subject: Re: [RFCv3 10/10] iomap: Add trace points for DIO path
Date: Fri, 14 Apr 2023 20:08:55 +0530	[thread overview]
Message-ID: <87y1muy1ds.fsf@doe.com> (raw)
In-Reply-To: <ZDlP6EiwKDE35ZG7@infradead.org>

Christoph Hellwig <hch@infradead.org> writes:

> On Fri, Apr 14, 2023 at 01:26:38PM +0530, Ritesh Harjani wrote:
>> How about this below change? Does this look good to you?
>> It should cover all error types and both entry and exit.
>
> I don't think it is very useful.  The complete tracepoint is the
> end of the I/O.  Having a separate end one doesn't make sense.
> That's why I suggested a queued one for the asynchronous case.

Ok, does this look good then?

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index 36ab1152dbea..859efb5de1bf 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -130,6 +130,7 @@ ssize_t iomap_dio_complete(struct iomap_dio *dio)
        if (ret > 0)
                ret += dio->done_before;

+       trace_iomap_dio_complete(iocb, dio->error, ret);
        kfree(dio);

        return ret;
@@ -650,8 +651,12 @@ __iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,
         */
        dio->wait_for_completion = wait_for_completion;
        if (!atomic_dec_and_test(&dio->ref)) {
-               if (!wait_for_completion)
-                       return ERR_PTR(-EIOCBQUEUED);
+               if (!wait_for_completion) {
+                       ret = -EIOCBQUEUED;
+                       trace_iomap_dio_rw_queued(iocb, iter, dio_flags,
+                                                 done_before, ret);
+                       return ERR_PTR(ret);
+               }

                for (;;) {
                        set_current_state(TASK_UNINTERRUPTIBLE);

-ritesh

      reply	other threads:[~2023-04-14 14:39 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-13  8:40 [RFCv3 00/10] ext2: DIO to use iomap Ritesh Harjani (IBM)
2023-04-13  8:40 ` [RFCv3 01/10] ext2/dax: Fix ext2_setsize when len is page aligned Ritesh Harjani (IBM)
2023-04-13  8:40 ` [RFCv3 02/10] libfs: Add __generic_file_fsync_nolock implementation Ritesh Harjani (IBM)
2023-04-14  5:59   ` Christoph Hellwig
2023-04-14 12:51     ` Jan Kara
2023-04-14 13:12       ` Christoph Hellwig
2023-04-14 14:20         ` Jan Kara
2023-04-14 14:29           ` Ritesh Harjani
2023-04-17  7:32             ` Jan Kara
2023-04-17 10:01               ` Ritesh Harjani
2023-04-13  8:40 ` [RFCv3 03/10] ext4: Use " Ritesh Harjani (IBM)
2023-04-13  8:40 ` [RFCv3 04/10] ext2: " Ritesh Harjani (IBM)
2023-04-13  8:40 ` [RFCv3 05/10] ext2: Move direct-io to use iomap Ritesh Harjani (IBM)
2023-04-13  8:40 ` [RFCv3 06/10] fs.h: Add TRACE_IOCB_STRINGS for use in trace points Ritesh Harjani (IBM)
2023-04-13  9:54   ` Christian Brauner
2023-04-13 10:15     ` Ritesh Harjani
2023-04-13  8:40 ` [RFCv3 07/10] ext2: Add direct-io " Ritesh Harjani (IBM)
2023-04-14  6:00   ` Christoph Hellwig
2023-04-14  8:06     ` Ritesh Harjani
2023-04-13  8:40 ` [RFCv3 08/10] iomap: Remove IOMAP_DIO_NOSYNC unused dio flag Ritesh Harjani (IBM)
2023-04-13 14:34   ` Darrick J. Wong
2023-04-13  8:40 ` [RFCv3 09/10] iomap: Minor refactor of iomap_dio_rw Ritesh Harjani (IBM)
2023-04-13 14:35   ` Darrick J. Wong
2023-04-14  6:00     ` Christoph Hellwig
2023-04-13  8:40 ` [RFCv3 10/10] iomap: Add trace points for DIO path Ritesh Harjani (IBM)
2023-04-13 14:42   ` Darrick J. Wong
2023-04-13 20:18     ` Ritesh Harjani
2023-04-14  2:16       ` Darrick J. Wong
2023-04-14  5:21         ` Ritesh Harjani
2023-04-14  6:04   ` Christoph Hellwig
2023-04-14  7:56     ` Ritesh Harjani
2023-04-14 13:06       ` Christoph Hellwig
2023-04-14 14:38         ` Ritesh Harjani [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=87y1muy1ds.fsf@doe.com \
    --to=ritesh.list@gmail.com \
    --cc=disgoel@linux.ibm.com \
    --cc=djwong@kernel.org \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=ojaswin@linux.ibm.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.