From: Alexander Bezzubikov <abezzubikov@ispras.ru>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: Aleksandr Bezzubikov <zuban32s@gmail.com>,
Pavel Dovgalyuk <dovgaluk@ispras.ru>,
QEMU Developers <qemu-devel@nongnu.org>,
Pranith Kumar <bobby.prani+qemu@gmail.com>,
pavel.dovgaluk@ispras.ru, Paolo Bonzini <pbonzini@redhat.com>,
Igor R <boost.lists@gmail.com>
Subject: Re: [Qemu-devel] What is the best commit for record-replay?
Date: Tue, 19 Sep 2017 18:46:48 +0300 [thread overview]
Message-ID: <b2bbaf4fcf6edca6bf7799c4e8670ef2@ispras.ru> (raw)
In-Reply-To: <878thaepe2.fsf@linaro.org>
Alex Bennée писал 2017-09-19 17:25:
> Aleksandr Bezzubikov <zuban32s@gmail.com> writes:
>
>> 2017-09-19 12:30 GMT+03:00 Alex Bennée <alex.bennee@linaro.org>:
>>>
>>> Pavel Dovgalyuk <dovgaluk@ispras.ru> writes:
>>>
>>>>> From: Aleksandr Bezzubikov [mailto:zuban32s@gmail.com]
>>>>> 2017-09-18 15:02 GMT+03:00 Aleksandr Bezzubikov
>>>>> <zuban32s@gmail.com>:
>>>>> > 2017-05-02 15:42 GMT+03:00 Igor R <boost.lists@gmail.com>:
>>>>> >>>>>> I'm trying to use the deterministic record/replay feature, and I would
>>>>> >>>>>> like to know which commit I should take to get it work.
>>>>> >>>>>> In RC0 it seems to be broken. I tried pre-MTTCG commit 2421f381dc, as
>>>>> >>>>
>>>>> >>>>> Can you retry with the latest rc? There were some fixes regarding rr since rc0.
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> I've taken 2.9 release, and RR does not seem to work there.
>>>>> >>>> I recorded the boot process of x86 Fedora-21 linux and the replay got
>>>>> >>>> stuck almost immediately.
>>>>> >>>
>>>>> >>> What's your command line?
>>>>> >>>
>>>>> >>> Does it get stuck at the same place each time?
>>>>> >>>
>>>>> >>> Can you boot fine with icount but without record/replay?
>>>>> >>
>>>>> >> Here is the exact scenario:
>>>>> >> - Get 2.9 from git, configure it as follows: "./configure
>>>>> >> --target-list=i386-softmmu --enable-sdl" and make.
>>>>> >> - Download https://people.debian.org/~aurel32/qemu/i386/debian_squeeze_i386_standard.qcow2
>>>>> >> - Run qemu with the following command line, until login prompt:
>>>>> >> -icount shift=7,rr=record,rrfile=replay.bin -drive
>>>>> >> file=debian_squeeze_i386_standard.qcow2,if=none,id=img-direct -drive
>>>>> >> driver=blkreplay,if=none,image=img-direct,id=img-blkreplay -device
>>>>> >> ide-hd,drive=img-blkreplay -monitor stdio
>>>>> >> - Replay: -icount shift=7,rr=replay,rrfile=replay.bin -drive
>>>>> >> file=debian_squeeze_i386_standard.qcow2,if=none,id=img-direct -drive
>>>>> >> driver=blkreplay,if=none,image=img-direct,id=img-blkreplay -device
>>>>> >> ide-hd,drive=img-blkreplay -monitor stdio
>>>>> >>
>>>>> >> Every time I attempt to replay, QEMU gets stuck at the same EIP, at a
>>>>> >> very early stage.
>>>>> >>
>>>>> >>
>>>>> >>> Can you boot fine with icount but without record/replay?
>>>>> >>
>>>>> >> Yes. I can also enable icount and recording - it also boots fine. The
>>>>> >> problem with the replay.
>>>>> >
>>>>> > Hi guys,
>>>>> > Maybe the thread is a bit outdated, but the problem is still relevant.
>>>>> > I've just tried to record and replay WinXP boot process, and I've encountered
>>>>> > exactly the same problem as described above - record is fine, replay
>>>>> > gets stuck early. I use current master.
>>>>
>>>> Maybe this commit will work:
>>>> cfb2d02be9413d45b30ed6d8e38800250b6b4b48
>>
>> Unfortunately this one doesn't work either. It seems we need just an
>> all-in-one fix
>> for the current implementation to make it work.
>>
>>>>
>>>>> > And I've discovered the second problem - recording makes initial snapshot,
>>>>> > but it doesn't seem to be saved to the disk - replay can't see it.
>>>>
>>>> It is ok, because there is a mode where snapshot is created and
>>>> loaded.
>>
>> So it shouldn't work properly when I use 'rrsnapshot=<name>' for both
>> record and replay?
>> Then how can I enable this mode?
>>
>>>>
>>>>> >
>>>>> > Hope you've already found the solution (as the last post was on 2 May)
>>>>> > and it's just got missed the mailing list.
>>>>
>>>> As I know, RR is still broken in the current version.
>>>> It was caused by the MTTCG implementation.
>>>> Alex Bennee tried to fix RR back. Alex, have you found any solution?
>>>>
>>>> We also trying to find a way to fix RR. It seems, that we will
>>>> reinvent BQL for RR.
>>>
>>> I think the method outlined in my RFC is the way to go, essentially
>>> the
>>> RR mutex taking over for the what the BQL did. The RFC patch hadn't
>>> hoisted the mutex for the additional devices so I'm just re-basing
>>> now
>>> and I'll see if I can make the changes for Igor's test case.
>>>
>>> --
>>> Alex Bennée
>
> Could you try:
>
> https://github.com/stsquad/qemu/tree/bql-and-replay-locks-v2
>
> And report back?
I've encountered 2 new things:
1) Significant performance regression during recording
2) Sometimes I can get through BIOS to the OS boot process itself
Previously it got stuck in BIOS, the last block I had (I mean with -d
in_asm) was
IN:
0x0000000000007ef6: pushfl
0x0000000000007ef8: pushal
0x0000000000007efa: mov $0xe,%ah
0x0000000000007efc: xor %bx,%bx
0x0000000000007efe: int $0x10
So I couldn't even get to the boot process of the OS itself.
Now it passes to the OS unpredictably, and still not very far.
Anyway, it doesn't
reach the point I stopped recording.
So we have a little progress here.
>
> --
> Alex Bennée
--
Aleksandr Bezzubikov
next prev parent reply other threads:[~2017-09-19 15:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-23 8:05 [Qemu-devel] What is the best commit for record-replay? Igor R
2017-04-09 6:55 ` Pranith Kumar
2017-04-25 19:16 ` Igor R
2017-04-26 13:48 ` Alex Bennée
2017-05-02 12:42 ` Igor R
2017-09-18 12:02 ` Aleksandr Bezzubikov
2017-09-18 12:09 ` Aleksandr Bezzubikov
2017-09-19 9:17 ` Pavel Dovgalyuk
2017-09-19 9:30 ` Alex Bennée
2017-09-19 12:26 ` Aleksandr Bezzubikov
2017-09-19 14:25 ` Alex Bennée
2017-09-19 15:46 ` Alexander Bezzubikov [this message]
2017-09-20 6:17 ` Pavel Dovgalyuk
2017-10-31 11:27 ` Pavel Dovgalyuk
2017-10-31 14:27 ` Alex Bennée
2017-11-01 5:14 ` Pavel Dovgalyuk
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=b2bbaf4fcf6edca6bf7799c4e8670ef2@ispras.ru \
--to=abezzubikov@ispras.ru \
--cc=alex.bennee@linaro.org \
--cc=bobby.prani+qemu@gmail.com \
--cc=boost.lists@gmail.com \
--cc=dovgaluk@ispras.ru \
--cc=pavel.dovgaluk@ispras.ru \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zuban32s@gmail.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;
as well as URLs for NNTP newsgroup(s).