t introduces files into the
'qom' source set.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
Acked-by: Markus Armbruster
---
Changes since v4:
- Introduce relevant qom.json changes, lived previously in patch #2
- Rework EventLoopBa
value, remain
available during its lifetime regardless of demand, and destroyed upon
freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spikes.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
Acked-by: Markus Armbruster
instance of 'MainLoopClass' might be created at any time.
'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to
mark 'MainLoop' as non-deletable.
[1] For example:
-object main-loop,id=main-loop,aio-max-batch=
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
failures on first compilation due to race between
event-loop-base.o and qapi header generation.
Changes since v2:
- Get rid of wrong locking/waiting
- Fix qapi versioning
- Better commit messages
Changes since v1:
- Address all Stefan's comments
- Introduce new fix
Nicolas Saenz Julienne (3
On Mon, 2022-04-25 at 07:22 +0200, Markus Armbruster wrote:
> Nicolas Saenz Julienne writes:
>
> > As discussed on the previous RFC[1] the thread-pool's dynamic thread
> > management doesn't play well with real-time and latency sensitive
> > systems. This series intr
value, remain
available during its lifetime regardless of demand, and destroyed upon
freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spikes.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
---
Changes since v4
instance of 'MainLoopClass' might be created at any time.
'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to
mark 'MainLoop' as non-deletable.
[1] For example:
-object main-loop,id=main-loop,aio-max-batch=
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
Saenz Julienne (3):
Introduce event-loop-base abstract class
util/main-loop: Introduce the main loop into QOM
util/event-loop-base: Introduce options to set the thread pool size
event-loop-base.c| 140 +++
include/block/aio.h | 10
t introduces files into the
'qom' source set.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
---
Changes since v4:
- Introduce relevant qom.json changes, lived previously in patch #2
- Rework EventLoopBaseProperties' description
Chan
On Fri, 2022-04-22 at 13:40 +0200, Nicolas Saenz Julienne wrote:
> > > +##
> > > +{ 'struct': 'EventLoopBaseProperties',
> > > + 'data': { '*aio-max-batch': 'int' } }
> > > +
> > > ##
> > > # @IothreadProperties:
> > > #
>
On Fri, 2022-04-22 at 13:15 +0200, Markus Armbruster wrote:
> Nicolas Saenz Julienne writes:
>
> > The thread pool regulates itself: when idle, it kills threads until
> > empty, when in demand, it creates new threads until full. This behaviour
> > doesn't play wel
On Fri, 2022-04-22 at 13:13 +0200, Markus Armbruster wrote:
> Nicolas Saenz Julienne writes:
>
> > 'event-loop-base' provides basic property handling for all 'AioContext'
> > based event loops. So let's define a new 'MainLoopClass' that inherits
> > from it. This will
On Mon, 2022-04-04 at 10:29 +0100, Stefan Hajnoczi wrote:
> On Fri, Apr 01, 2022 at 11:35:20AM +0200, Nicolas Saenz Julienne wrote:
> > As discussed on the previous RFC[1] the thread-pool's dynamic thread
> > management doesn't play well with real-time and latency sensit
On Fri, 2022-04-01 at 11:35 +0200, Nicolas Saenz Julienne wrote:
Subject says 0/4 where is should've been 0/3.
> As discussed on the previous RFC[1] the thread-pool's dynamic thread
> management doesn't play well with real-time and latency sensitive
> systems. This series introdu
value, remain
available during its lifetime regardless of demand, and destroyed upon
freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spikes.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
---
Changes since v3
between
event-loop-base.o and qapi header generation.
Changes since v2:
- Get rid of wrong locking/waiting
- Fix qapi versioning
- Better commit messages
Changes since v1:
- Address all Stefan's comments
- Introduce new fix
Nicolas Saenz Julienne (3):
Introduce event-loop-base abstract
instance of 'MainLoopClass' might be created at any time.
'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to
mark 'MainLoop' as non-deletable.
[1] For example:
-object main-loop,id=main-loop,aio-max-batch=
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
t introduces files into the
'qom' source set.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
---
Changes since v3:
- Fix event-loop-base compilation so it depends on qapi header
generation (note the '+ genh' in event_loop_base).
Chan
Hi Markus,
On Wed, 2022-03-16 at 15:28 +0100, Markus Armbruster wrote:
> Nicolas Saenz Julienne writes:
>
> > 'event-loop-base' provides basic property handling for all 'AioContext'
> > based event loops. So let's define a new 'MainLoopClass' that inherits
> > from it. T
value, remain
available during its lifetime regardless of demand, and destroyed upon
freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spikes.
Signed-off-by: Nicolas Saenz Julienne
---
Changes since v2:
- Don't wait when decreasing pool
/project/qemu-devel/patch/20220202175234.656711-1-nsaen...@redhat.com/
---
Changes since v2:
- Get rid of wrong locking/waiting
- Fix qapi versioning
- Better commit messages
Changes since v1:
- Address all Stefan's comments
- Introduce new fix
Nicolas Saenz Julienne (3):
Introduce event
t introduces files into the
'qom' source set.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
---
Changes since v2:
- reword commit message to better explain compilation dependencies.
Changes since v1:
- Rename to event-loop-base
- Move event-loop-base into ro
instance of 'MainLoopClass' might be created at any time.
'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to
mark 'MainLoop' as non-deletable.
[1] For example:
-object main-loop,id=main-loop,aio-max-batch=
Signed-off-by: Nicolas Saenz Julienne
Reviewed-by: Stefan Hajnoczi
On Mon, 2022-03-14 at 13:35 +, Stefan Hajnoczi wrote:
> On Fri, Mar 11, 2022 at 11:40:30AM +0100, Nicolas Saenz Julienne wrote:
> > On Thu, 2022-03-10 at 10:45 +, Stefan Hajnoczi wrote:
> > > On Thu, Mar 03, 2022 at 04:13:07PM +0100, Nicolas Saenz Julienne wrote:
> >
On Mon, 2022-03-14 at 13:33 +, Stefan Hajnoczi wrote:
> On Fri, Mar 11, 2022 at 11:17:22AM +0100, Nicolas Saenz Julienne wrote:
> > On Thu, 2022-03-10 at 10:25 +, Stefan Hajnoczi wrote:
> > > On Thu, Mar 03, 2022 at 03:58:20PM +0100, Nicolas Saenz Julienne wrote:
&
On Thu, 2022-03-10 at 10:45 +, Stefan Hajnoczi wrote:
> On Thu, Mar 03, 2022 at 04:13:07PM +0100, Nicolas Saenz Julienne wrote:
> > @@ -537,10 +546,19 @@
> > # 0 means that the engine will use its default
> > # (default:0, since 6.1)
>
On Thu, 2022-03-10 at 10:25 +, Stefan Hajnoczi wrote:
> On Thu, Mar 03, 2022 at 03:58:20PM +0100, Nicolas Saenz Julienne wrote:
> > @@ -2935,13 +2947,6 @@ qemu_syms = custom_target('qemu.syms', output:
> > 'qemu.syms',
> >
On Thu, 2022-03-10 at 09:20 +, Stefan Hajnoczi wrote:
> On Thu, Mar 03, 2022 at 03:58:19PM +0100, Nicolas Saenz Julienne wrote:
> > Upon freeing a thread pool we need to get rid of any remaining worker.
> > This is achieved by setting the thread pool's topping flag, waking the
value, remain
available during its lifetime regardless of demand, and destroyed upon
freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spikes.
Signed-off-by: Nicolas Saenz Julienne
---
Changes since v1:
- Add INT_MAX check
- Have copy
he 'hw'
subdir is processed earlier as it introduces files into the 'qom' source
set.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
---
Changes since v1:
- Rename to event-loop-base
- Move event-loop-base into root directory
- Build event-loop-base on its own, use link
blocking the workers from exiting.
So let's release the thread pool lock after signaling a worker thread
that it's time to exit to give it a chance to do so.
Fixes: f7311ccc63 ("threadpool: add thread_pool_new() and thread_pool_free()")
Signed-off-by: Nicolas Saenz Julienne
---
util/thr
instance of 'MainLoopClass' might be created at any time.
'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to
mark 'MainLoop' as non-deletable.
Signed-off-by: Nicolas Saenz Julienne
[1] For example:
-object main-loop,id=main-loop,aio-max-batch=
---
Changes since v1
/project/qemu-devel/patch/20220202175234.656711-1-nsaen...@redhat.com/
---
Changes since v1:
- Address all Stefan's comments
- Introduce new fix
Nicolas Saenz Julienne (4):
util/thread-pool: Fix thread pool freeing locking
Introduce event-loop-base abstract class
util/main-loop: Introduce
On Thu, 2022-02-24 at 10:40 +, Stefan Hajnoczi wrote:
> On Mon, Feb 21, 2022 at 06:08:45PM +0100, Nicolas Saenz Julienne wrote:
> > The thread pool regulates itself: when idle, it kills threads until
> > empty, when in demand, it creates new threads until full. This behaviour
&
On Thu, 2022-02-24 at 10:01 +, Stefan Hajnoczi wrote:
> On Mon, Feb 21, 2022 at 06:08:44PM +0100, Nicolas Saenz Julienne wrote:
> > diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
> > index 8dbc6fcb89..fea5a3e9d4 100644
> > --- a/include/qemu/main-loop.h
&
Hi Stefan, thanks for the review.
On Thu, 2022-02-24 at 09:48 +, Stefan Hajnoczi wrote:
> On Mon, Feb 21, 2022 at 06:08:43PM +0100, Nicolas Saenz Julienne wrote:
> > diff --git a/qom/meson.build b/qom/meson.build
> > index 062a3789d8..c20e5dd1cb 100644
> > --- a/qom/meso
/project/qemu-devel/patch/20220202175234.656711-1-nsaen...@redhat.com/
---
Nicolas Saenz Julienne (3):
util & iothread: Introduce event-loop abstract class
util/main-loop: Introduce the main loop into QOM
util/event-loop: Introduce options to set the thread pool size
MAINTAI
to the user creatable class 'complete' function.
The new 'event-loop-backend' class will live in the util directory, and
will be packed into the qom static library.
No functional changes intended.
Signed-off-by: Nicolas Saenz Julienne
---
MAINTAINERS | 1 +
include/sysemu/iothread.h
lifetime
regardless of demand, and destroyed upon freeing it. A properly
characterized workload will then be able to configure the pool to avoid
any latency spike.
Signed-off-by: Nicolas Saenz Julienne
---
include/block/aio.h | 11 +++
qapi/qom.json | 4 +++-
util/async.c
instance of 'MainLoopClass' might be
created at any time.
'EventLoopBackendClass' learns a new callback, 'can_be_deleted()' so as
to mark 'MainLoop' as non-deletable.
Signed-off-by: Nicolas Saenz Julienne
[1] For example:
-object main-loop,id=main-loop,poll-max-ns=
---
include/qemu/main
On Thu, 2022-02-03 at 14:19 +, Stefan Hajnoczi wrote:
> Yep, I didn't comment on this because I don't have a good suggestion.
>
> In terms of semantics I think we should have:
>
> 1. A global default value that all new AioContext take. The QEMU main
>loop's qemu_aio_context will use this
Hi Stefan, thanks for the review. I took note of your comments.
On Thu, 2022-02-03 at 10:53 +, Stefan Hajnoczi wrote:
> > Some background on my workload: I'm using IDE emulation, the guest is an
> > old RTOS that doesn't support virtio, using 'aio=native' isn't possible
> > either (unaligned
of demand, and destroyed
upon freeing it. A properly characterized workload will then be able to
configure the pool to avoid any latency spike.
Signed-off-by: Nicolas Saenz Julienne
---
The fix I propose here works for my specific use-case, but I'm pretty
sure it'll need to be a bit more versatile
43 matches
Mail list logo