[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] main-loop: drop the BQL if the I/O appears to b
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [PATCH] main-loop: drop the BQL if the I/O appears to be spinning |
Date: |
Fri, 05 Apr 2013 10:45:47 -0500 |
User-agent: |
Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) |
Eric Blake <address@hidden> writes:
> On 04/05/2013 07:46 AM, Anthony Liguori wrote:
>> The char-flow refactoring introduced a busy-wait that depended on
>> an action from the VCPU thread. However, the VCPU thread could
>> never take that action because the busy-wait starved the VCPU thread
>> of the BQL because it never dropped the mutex while running select.
>>
>> Paolo doesn't want to drop this optimization for fear that we will
>> stop detecting these busy waits. I'm afraid to keep this optimization
>> even with the busy-wait fixed because I think a similar problem can
>> occur just with heavy I/O thread load manifesting itself as VCPU pauses.
>>
>> As a compromise, introduce an artificial timeout after a thousand
>> iterations but print a rate limited warning when this happens. This
>> let's us still detect when this condition occurs without it being
>> a fatal error.
>>
>
>> + * print a message to the screen. If we run into this condition, create
>> + * an fake timeout in order to give the VCPU threads a chance to run.
>
> s/an fake/a fake/
Drat, I proof read the commit message hoping to avoid such a mistake but
should have reread the comment :-)
Regards,
Anthony Liguori
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org