Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-14 Thread Stefan Hajnoczi
On Sun, Mar 13, 2022 at 04:18:40PM +0100, Paolo Bonzini wrote: > On 3/11/22 13:17, Daniel P. Berrangé wrote: > The question is what is easier to maintain, stack switching code that is > becoming less and less portable (status quo with SafeStack, CET and the TLS > issues that Stefan has worked on),

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-13 Thread Paolo Bonzini
On 3/11/22 13:17, Daniel P. Berrangé wrote: Only files that define or use a coroutine_fn (which includes callers of qemu_coroutine_create) would have to be compiled as C++. Unless I'm misunderstanding what you mean, "define a coroutine_fn" is a very large number of functions/files $ git

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-11 Thread Daniel P . Berrangé
On Fri, Mar 11, 2022 at 01:04:33PM +0100, Paolo Bonzini wrote: > On 3/11/22 10:27, Stefan Hajnoczi wrote: > > > Not quite voluntarily, but I noticed I had to add one 0 to make them run > > > for > > > a decent amount of time. So yeah, it's much faster than siglongjmp. > > That's a nice first

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-11 Thread Paolo Bonzini
On 3/11/22 10:27, Stefan Hajnoczi wrote: Not quite voluntarily, but I noticed I had to add one 0 to make them run for a decent amount of time. So yeah, it's much faster than siglongjmp. That's a nice first indication that performance will be good. I guess that deep coroutine_fn stacks could be

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-11 Thread Stefan Hajnoczi
On Thu, Mar 10, 2022 at 09:14:07PM +0100, Paolo Bonzini wrote: > On 3/10/22 18:42, Stefan Hajnoczi wrote: > > There are a lot of details to decide on in the translator tool and > > runtime to optimize the code. I think the way the stack frames are > > organized in this patch series is probably for

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-10 Thread Paolo Bonzini
On 3/10/22 18:42, Stefan Hajnoczi wrote: There are a lot of details to decide on in the translator tool and runtime to optimize the code. I think the way the stack frames are organized in this patch series is probably for convenience rather than performance. Yes, sometimes the optimizations

Re: [PATCH experiment 00/35] stackless coroutine backend

2022-03-10 Thread Stefan Hajnoczi
On Thu, Mar 10, 2022 at 01:43:38PM +0100, Paolo Bonzini wrote: > Here is an experiment with using stackless coroutines in QEMU. It > only compiles enough code to run tests/unit/test-coroutine, but at > least it proves that it's possible to quickly test ideas in the > area of coroutine runtimes.

[PATCH experiment 00/35] stackless coroutine backend

2022-03-10 Thread Paolo Bonzini
Here is an experiment with using stackless coroutines in QEMU. It only compiles enough code to run tests/unit/test-coroutine, but at least it proves that it's possible to quickly test ideas in the area of coroutine runtimes. Another idea that could be toyed with in a similar manner could be