From: Eric Ren <zren@suse.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] Long io response time doubt
Date: Tue, 24 Nov 2015 18:02:46 +0800 [thread overview]
Message-ID: <565435C6.4050601@suse.com> (raw)
In-Reply-To: <564933F1.80906@huawei.com>
Hi Joseph,
I use ftrace's function tracer to record some code flow. There's a
question that makes me confused -
why does ocfs2_cancel_convert() be called here in ocfs2dc thread? In
other words, what do we expect it
to do here?
ocfs2_unblock_lock(){
...
if(lockres->l_flags & OCFS2_LOCK_BUSY){
...
ocfs2_cancel_convert()
...
}
}
From what I understand,
ocfs2_cancel_convert()->ocfs2_dlm_unlock()->user_dlm_unlock()->dlm_unlock(DLM_LKF_CANCEL)
puts
the lock back on the the grand queue at its old grant mode. In my case,
you know, read/write the same shared file from two nodes,
I think the up-conversion can only happen on the writing node -
(PR->EX), while on the reading node, no up-conversion is need, right?
But, the following output from writing and reading nodes, shows that
ocfs2_cancel_convert() has been called on both nodes. why could
this happen in this scenario?
On 11/16/15 09:40, Joseph Qi wrote:
>> Sorry, I'm confused about b). You mean b) is also part of ocfs2cmt's
>> work? Does b) have something to do with a)? And what's the meaning of "evict inode"?
>> Actually, I can hardly understand the idea of b).
> You can go through the code flow:
> iput->iput_final->evict->evict_inode->ocfs2_evict_inode
> ->ocfs2_clear_inode->ocfs2_checkpoint_inode->ocfs2_start_checkpoint
>
> It happens that one node do not use the inode any longer (but not
> delete), and will free its related lockres.
OK, thanks~
Eric
next prev parent reply other threads:[~2015-11-24 10:02 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-12 3:05 [Ocfs2-devel] Long io response time doubt Joseph Qi
2015-11-12 7:23 ` Eric Ren
2015-11-12 8:00 ` Joseph Qi
2015-11-12 9:48 ` Eric Ren
2015-11-13 3:31 ` Joseph Qi
2015-11-14 5:23 ` Eric Ren
2015-11-16 1:40 ` Joseph Qi
2015-11-24 10:02 ` Eric Ren [this message]
2015-11-24 10:05 ` Eric Ren
2015-11-26 1:34 ` Joseph Qi
2015-11-26 1:49 ` Eric Ren
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=565435C6.4050601@suse.com \
--to=zren@suse.com \
--cc=ocfs2-devel@oss.oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox