From: Zhenzhong Duan <zhenzhong.duan@oracle.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Feng Jin <joe.jin@oracle.com>,
xen-devel <xen-devel@lists.xen.org>
Subject: Re: an issue with 'xm save'
Date: Fri, 28 Sep 2012 18:34:51 +0800 [thread overview]
Message-ID: <50657D4B.9040303@oracle.com> (raw)
In-Reply-To: <20120927115918.GE8832@phenom.dumpdata.com>
On 2012-09-27 19:59, Konrad Rzeszutek Wilk wrote:
> On Thu, Sep 27, 2012 at 01:58:19PM +0800, Zhenzhong Duan wrote:
>>
>> On 2012-09-26 20:35, Konrad Rzeszutek Wilk wrote:
>>> On Wed, Sep 26, 2012 at 04:48:42PM +0800, Zhenzhong Duan wrote:
>>>> Konrad Rzeszutek Wilk wrote:
>>>>> On Fri, Sep 21, 2012 at 05:41:27PM +0800, Zhenzhong Duan wrote:
>>>>>> Hi maintainers,
>>>>>>
>>>>>> I found there is an issue when 'xm save' a pvm guest. See below:
>>>>>>
>>>>>> When I do save then restore once, CPU(%) in xentop showed around 99%.
>>>>>> When I do that second time, CPU(%) showed 199%
>>>>>>
>>>>>> top in dom0 showed:
>>>>>> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>>>>>> 20946 root 18 -2 10984 1284 964 S 19.8 0.3 0:48.93 block
>>>>>> 4939 root 18 -2 10984 1288 964 S 19.5 0.3 1:34.68 block
>>>>>>
>>>>>> I could kill the block process, then all look normal again.
>>>>> What is the 'block' process? If you attach 'perf' to it do you get an idea
>>>>> of what it is spinning at?
>>>> It's /etc/xen/scripts/block
>>>> I add 'set -x' to /etc/xen/scripts/block, found it blocked at claim_lock.
>>>> When domU was created first time, claim_lock/release_lock finished quickly,
>>>> when 'xm save' was called, claim_lock spin in its own while loop.
>>>> I can ensure no other domU create/save/etc happen when I test.
>>> OK, so how come you have two block processes? Is it b/c you have two
>>> disks attached to the guest? The are multiple claim_lock in the shell
>>> script - do you know where each of two threads are spinning? Are they
>>> spinning on the same function?
>> In above test, I run save/restore twice, so two block processes.
>> In other test, run save/restore once, there is only one block process.
>> After do 'xm save', I see block process spin at line 328:
>> 321 remove)
>> 322 case $t in
>> 323 phy)
>> 324 exit 0
>> 325 ;;
>> 326
>> 327 file)
>> 328 claim_lock "block"
>> 329 node=$(xenstore_read "$XENBUS_PATH/node")
>> 330 losetup -d "$node"
>> 331 release_lock "block"
>> 332 exit 0
>> 333 ;;
> So with the patches in OVM - do they have this fixed? Can they be upstreamed
> or are the dependent on some magic OVM sauce?
After replace locking.sh with OVM's, it worked.
But xen-tools evolved to use flock based locking currently. We can't
revert back.
It seems changeset 25595:497e2fe49455 bring the issue.
Finally, I came with a small patch that workaround the issue.
diff -r d364becfb083 tools/hotplug/Linux/locking.sh
--- a/tools/hotplug/Linux/locking.sh Thu Sep 20 13:31:19 2012 +0200
+++ b/tools/hotplug/Linux/locking.sh Fri Sep 28 18:27:31 2012 +0800
@@ -66,6 +66,7 @@
release_lock()
{
_setlockfd $1
+ flock -u $_lockfd
rm "$_lockfile"
}
next prev parent reply other threads:[~2012-09-28 10:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 9:41 an issue with 'xm save' Zhenzhong Duan
2012-09-21 14:34 ` Konrad Rzeszutek Wilk
2012-09-26 8:48 ` Zhenzhong Duan
2012-09-26 12:35 ` Konrad Rzeszutek Wilk
2012-09-27 5:58 ` Zhenzhong Duan
2012-09-27 11:59 ` Konrad Rzeszutek Wilk
2012-09-28 10:34 ` Zhenzhong Duan [this message]
2012-09-28 14:01 ` Is: Contention in block script when doing guest saving. Was:Re: " Konrad Rzeszutek Wilk
2012-09-28 14:14 ` Ian Jackson
2012-09-28 14:46 ` Zhenzhong Duan
2012-10-02 14:59 ` Ian Jackson
2012-10-09 8:53 ` DuanZhenzhong
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=50657D4B.9040303@oracle.com \
--to=zhenzhong.duan@oracle.com \
--cc=dan.magenheimer@oracle.com \
--cc=joe.jin@oracle.com \
--cc=konrad.wilk@oracle.com \
--cc=konrad@kernel.org \
--cc=xen-devel@lists.xen.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;
as well as URLs for NNTP newsgroup(s).