From: Anthony Liguori <aliguori@us.ibm.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Aurelien Jarno <aurelien@aurel32.net>
Subject: [Qemu-devel] Re: [PATCH][RFT] Fix the regression with SPARC emulation
Date: Wed, 08 Oct 2008 14:40:51 -0500 [thread overview]
Message-ID: <48ED0CC3.7060608@us.ibm.com> (raw)
In-Reply-To: <f43fc5580810081136k4112bc54g1aa21f27d33a28f0@mail.gmail.com>
Blue Swirl wrote:
> On 10/8/08, Anthony Liguori <aliguori@us.ibm.com> wrote:
>
>> The attached patch should be the proper fix for the sparc performance
>> regression. Unfortunately, this means abandoning signalfd() in favor of the
>> signal handler/pipe trick but I don't see another solution to the problem.
>>
>
> That's too bad, what was the problem?
>
signalfd() worked fine for KVM because KVM handles the main loop in a
dedicated thread. This means select() is always running in that
thread. With normal QEMU, something needs to kick the VCPU execution
out of it's loop to handle the IO request. You need something like a
signal to do because you need to be able to execute code to basically do
cpu_interrupt.
The signal-pipe stuff works before we can write to the pipe to queue up
the io completion, but also do the cpu_interrupt. I was hoping to set
SIGIO on the signalfd() to just have a signal handler that did
cpu_interrupt but it doesn't appear that signalfd() supports SIGIO so
that's not an option.
> Maybe there should be two commits for future bisections, one that
> reverses the signalfd patches and second one that adds the signal/pipe
> stuff?
>
It would be difficult to do that because of the aio refactoring that
came after the signalfd implementation.
>> Please test and let me know if this works for all of your cases (it did for
>> me with -clock unix and -clock dynticks).
>>
>
> Works here too, with AIO and AIO disabled.
>
Okay, I'll commit.
Regards,
Anthony Liguori
prev parent reply other threads:[~2008-10-08 19:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-07 22:25 [Qemu-devel] [PATCH][RFT] Fix the regression with SPARC emulation Anthony Liguori
2008-10-07 22:41 ` [Qemu-devel] " Anthony Liguori
2008-10-07 23:21 ` Aurelien Jarno
2008-10-08 18:36 ` Blue Swirl
2008-10-08 19:40 ` Anthony Liguori [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=48ED0CC3.7060608@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.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).