[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage |
Date: |
Fri, 23 Feb 2018 12:17:52 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 22/02/2018 18:06, John Snow wrote:
>
>
> On 02/22/2018 05:57 AM, Kevin Wolf wrote:
>> Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
>>> On 20/02/2018 18:04, Peter Lieven wrote:
>>>> Hi,
>>>>
>>>> I remember we discussed a long time ago to limit the stack usage of all
>>>> functions that are executed in a coroutine
>>>> context to a very low value to be able to safely limit the coroutine
>>>> stack size as well.
>>>
>>> IIRC the only issue was that hw/ide/atapi.c has mutual recursion between
>>> ide_atapi_cmd_reply_end -> ide_transfer_start -> ahci_start_transfer ->
>>> ide_atapi_cmd_reply_end.
>>>
>>> But perhaps it's not an issue, somebody needs to audit the code.
>>
>> I think John intended to get rid of the recursion sometime, but I doubt
>> he has had the time so far.
>>
>
> It hasn't been a priority for me.
>
> Paolo tried to fix ATAPI by adding a BH callback, but that added the
> possibility of a migration halfway through a data transfer IIRC.
>
> If anyone wants to tackle it, I'll dig up Paolo's patches.
A better possibility is to make it into tail recursion first and then a
while loop. Maybe introducing some kind of ide_transfer_start_norecurse
that returns "true" if you have a start_transfer callback (so you need
to do another iteration immediately) and "false" if you don't. I'll
take a look...
Paolo
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, (continued)
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Daniel P . Berrangé, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Peter Lieven, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Daniel P . Berrangé, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Peter Lieven, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Daniel P . Berrangé, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Peter Lieven, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Daniel P . Berrangé, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Kevin Wolf, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, Peter Lieven, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage, John Snow, 2018/02/22
- Re: [Qemu-devel] [Qemu-block] Limiting coroutine stack usage,
Paolo Bonzini <=