[RFC PATCH] linux-user: ensure nios2 processes queued work

Alex Bennée posted 1 patch 9 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240220170803.888143-1-alex.bennee@linaro.org
Maintainers: Laurent Vivier <laurent@vivier.eu>
linux-user/nios2/cpu_loop.c | 1 +
1 file changed, 1 insertion(+)
[RFC PATCH] linux-user: ensure nios2 processes queued work
Posted by Alex Bennée 9 months, 1 week ago
While async processes are rare for linux-user we do use them from time
to time. The most obvious one is tb_flush when we run out of
translation space. We will also need this when we move plugin
vcpu_init to an async task.

Fix nios2 to follow its older, wiser and more stable siblings.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 linux-user/nios2/cpu_loop.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/linux-user/nios2/cpu_loop.c b/linux-user/nios2/cpu_loop.c
index da77ede76bd..7fe08c87501 100644
--- a/linux-user/nios2/cpu_loop.c
+++ b/linux-user/nios2/cpu_loop.c
@@ -32,6 +32,7 @@ void cpu_loop(CPUNios2State *env)
         cpu_exec_start(cs);
         trapnr = cpu_exec(cs);
         cpu_exec_end(cs);
+        process_queued_cpu_work(cs);
 
         switch (trapnr) {
         case EXCP_INTERRUPT:
-- 
2.39.2


Re: [RFC PATCH] linux-user: ensure nios2 processes queued work
Posted by Richard Henderson 9 months, 1 week ago
On 2/20/24 07:08, Alex Bennée wrote:
> While async processes are rare for linux-user we do use them from time
> to time. The most obvious one is tb_flush when we run out of
> translation space. We will also need this when we move plugin
> vcpu_init to an async task.
> 
> Fix nios2 to follow its older, wiser and more stable siblings.
> 
> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
> ---
>   linux-user/nios2/cpu_loop.c | 1 +
>   1 file changed, 1 insertion(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~

Re: [RFC PATCH] linux-user: ensure nios2 processes queued work
Posted by Philippe Mathieu-Daudé 9 months, 1 week ago
On 20/2/24 18:08, Alex Bennée wrote:
> While async processes are rare for linux-user we do use them from time
> to time. The most obvious one is tb_flush when we run out of
> translation space. We will also need this when we move plugin
> vcpu_init to an async task.
> 
> Fix nios2 to follow its older, wiser and more stable siblings.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   linux-user/nios2/cpu_loop.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/linux-user/nios2/cpu_loop.c b/linux-user/nios2/cpu_loop.c
> index da77ede76bd..7fe08c87501 100644
> --- a/linux-user/nios2/cpu_loop.c
> +++ b/linux-user/nios2/cpu_loop.c
> @@ -32,6 +32,7 @@ void cpu_loop(CPUNios2State *env)
>           cpu_exec_start(cs);
>           trapnr = cpu_exec(cs);
>           cpu_exec_end(cs);
> +        process_queued_cpu_work(cs);

We really should abstract that pattern for user emulation.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>