All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Fedorov <serge.fdrv@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Riku Voipio <riku.voipio@iki.fi>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>,
	patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH 3/5] cpu-exec: Rename cpu_resume_from_signal() to cpu_loop_exit_noexc()
Date: Mon, 16 May 2016 20:58:42 +0300	[thread overview]
Message-ID: <573A0A52.8010808@gmail.com> (raw)
In-Reply-To: <1463414992-8357-4-git-send-email-peter.maydell@linaro.org>

On 16/05/16 19:09, Peter Maydell wrote:
> The function cpu_resume_from_signal() is now always called with a
> NULL puc argument, and is rather misnamed since it is never called
> from a signal handler. It is essentially forcing an exit to the
> top level cpu loop but without raising any exception, so rename
> it to cpu_loop_exit_noexc() and drop the useless unused argument.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Sergey Fedorov <sergey.fedorov@linaro.org>

> ---
>  cpu-exec-common.c        | 6 ++----
>  exec.c                   | 2 +-
>  hw/i386/kvmvapic.c       | 2 +-
>  include/exec/exec-all.h  | 2 +-
>  target-i386/bpt_helper.c | 2 +-
>  target-lm32/helper.c     | 2 +-
>  target-s390x/helper.c    | 2 +-
>  target-xtensa/helper.c   | 2 +-
>  translate-all.c          | 4 ++--
>  user-exec.c              | 2 +-
>  10 files changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/cpu-exec-common.c b/cpu-exec-common.c
> index 62f5d6b..fac3aa7 100644
> --- a/cpu-exec-common.c
> +++ b/cpu-exec-common.c
> @@ -25,10 +25,8 @@
>  bool exit_request;
>  CPUState *tcg_current_cpu;
>  
> -/* exit the current TB from a signal handler. The host registers are
> -   restored in a state compatible with the CPU emulator
> - */
> -void cpu_resume_from_signal(CPUState *cpu, void *puc)
> +/* exit the current TB, but without causing any exception to be raised */
> +void cpu_loop_exit_noexc(CPUState *cpu)
>  {
>      /* XXX: restore cpu registers saved in host registers */
>  
> diff --git a/exec.c b/exec.c
> index ee45472..c5c97ac 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2121,7 +2121,7 @@ static void check_watchpoint(int offset, int len, MemTxAttrs attrs, int flags)
>                  } else {
>                      cpu_get_tb_cpu_state(env, &pc, &cs_base, &cpu_flags);
>                      tb_gen_code(cpu, pc, cs_base, cpu_flags, 1);
> -                    cpu_resume_from_signal(cpu, NULL);
> +                    cpu_loop_exit_noexc(cpu);
>                  }
>              }
>          } else {
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index f14445d..ee2f3fa 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c
> @@ -447,7 +447,7 @@ static void patch_instruction(VAPICROMState *s, X86CPU *cpu, target_ulong ip)
>  
>      if (!kvm_enabled()) {
>          tb_gen_code(cs, current_pc, current_cs_base, current_flags, 1);
> -        cpu_resume_from_signal(cs, NULL);
> +        cpu_loop_exit_noexc(cs);
>      }
>  }
>  
> diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
> index 85528f9..1359f14 100644
> --- a/include/exec/exec-all.h
> +++ b/include/exec/exec-all.h
> @@ -73,7 +73,7 @@ void restore_state_to_opc(CPUArchState *env, struct TranslationBlock *tb,
>  void cpu_gen_init(void);
>  bool cpu_restore_state(CPUState *cpu, uintptr_t searched_pc);
>  
> -void QEMU_NORETURN cpu_resume_from_signal(CPUState *cpu, void *puc);
> +void QEMU_NORETURN cpu_loop_exit_noexc(CPUState *cpu);
>  void QEMU_NORETURN cpu_io_recompile(CPUState *cpu, uintptr_t retaddr);
>  TranslationBlock *tb_gen_code(CPUState *cpu,
>                                target_ulong pc, target_ulong cs_base,
> diff --git a/target-i386/bpt_helper.c b/target-i386/bpt_helper.c
> index f47df19..458170e 100644
> --- a/target-i386/bpt_helper.c
> +++ b/target-i386/bpt_helper.c
> @@ -217,7 +217,7 @@ void breakpoint_handler(CPUState *cs)
>              if (check_hw_breakpoints(env, false)) {
>                  raise_exception(env, EXCP01_DB);
>              } else {
> -                cpu_resume_from_signal(cs, NULL);
> +                cpu_loop_exit_noexc(cs);
>              }
>          }
>      } else {
> diff --git a/target-lm32/helper.c b/target-lm32/helper.c
> index 655248f..accfa7c 100644
> --- a/target-lm32/helper.c
> +++ b/target-lm32/helper.c
> @@ -140,7 +140,7 @@ void lm32_debug_excp_handler(CPUState *cs)
>              if (check_watchpoints(env)) {
>                  raise_exception(env, EXCP_WATCHPOINT);
>              } else {
> -                cpu_resume_from_signal(cs, NULL);
> +                cpu_loop_exit_noexc(cs);
>              }
>          }
>      } else {
> diff --git a/target-s390x/helper.c b/target-s390x/helper.c
> index 92abe7e..f1e0a43 100644
> --- a/target-s390x/helper.c
> +++ b/target-s390x/helper.c
> @@ -686,7 +686,7 @@ void s390x_cpu_debug_excp_handler(CPUState *cs)
>             will be triggered, it will call load_psw which will recompute
>             the watchpoints.  */
>          cpu_watchpoint_remove_all(cs, BP_CPU);
> -        cpu_resume_from_signal(cs, NULL);
> +        cpu_loop_exit_noexc(cs);
>      }
>  }
>  #endif /* CONFIG_USER_ONLY */
> diff --git a/target-xtensa/helper.c b/target-xtensa/helper.c
> index 839f4a7..768b32c 100644
> --- a/target-xtensa/helper.c
> +++ b/target-xtensa/helper.c
> @@ -108,7 +108,7 @@ void xtensa_breakpoint_handler(CPUState *cs)
>              if (cause) {
>                  debug_exception_env(env, cause);
>              }
> -            cpu_resume_from_signal(cs, NULL);
> +            cpu_loop_exit_noexc(cs);
>          }
>      }
>  }
> diff --git a/translate-all.c b/translate-all.c
> index 52a571e..3a0d10f 100644
> --- a/translate-all.c
> +++ b/translate-all.c
> @@ -1394,7 +1394,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
>             modifying the memory. It will ensure that it cannot modify
>             itself */
>          tb_gen_code(cpu, current_pc, current_cs_base, current_flags, 1);
> -        cpu_resume_from_signal(cpu, NULL);
> +        cpu_loop_exit_noexc(cpu);
>      }
>  #endif
>  }
> @@ -1654,7 +1654,7 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr)
>         repeating the fault, which is horribly inefficient.
>         Better would be to execute just this insn uncached, or generate a
>         second new TB.  */
> -    cpu_resume_from_signal(cpu, NULL);
> +    cpu_loop_exit_noexc(cpu);
>  }
>  
>  void tb_flush_jmp_cache(CPUState *cpu, target_ulong addr)
> diff --git a/user-exec.c b/user-exec.c
> index 1d02e24..40b5e7c 100644
> --- a/user-exec.c
> +++ b/user-exec.c
> @@ -73,7 +73,7 @@ static void cpu_exit_tb_from_sighandler(CPUState *cpu, void *puc)
>      sigprocmask(SIG_SETMASK, &uc->sc_mask, NULL);
>  #endif
>  
> -    cpu_resume_from_signal(cpu, NULL);
> +    cpu_loop_exit_noexc(cpu);
>  }
>  
>  /* 'pc' is the host PC at which the exception was raised. 'address' is

  reply	other threads:[~2016-05-16 17:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-16 16:09 [Qemu-devel] [PATCH 0/5] user-exec: cpu_resume_from_signal() cleanups Peter Maydell
2016-05-16 16:09 ` [Qemu-devel] [PATCH 1/5] translate-all.c: Don't pass puc, locked to tb_invalidate_phys_page() Peter Maydell
2016-05-16 17:13   ` Sergey Fedorov
2016-05-16 17:15     ` Peter Maydell
2016-05-16 17:24       ` Sergey Fedorov
2016-05-16 16:09 ` [Qemu-devel] [PATCH 2/5] user-exec: Push resume-from-signal code out to handle_cpu_signal() Peter Maydell
2016-05-16 17:57   ` Sergey Fedorov
2016-05-16 16:09 ` [Qemu-devel] [PATCH 3/5] cpu-exec: Rename cpu_resume_from_signal() to cpu_loop_exit_noexc() Peter Maydell
2016-05-16 17:58   ` Sergey Fedorov [this message]
2016-05-16 16:09 ` [Qemu-devel] [PATCH 4/5] user-exec: Don't reextract sigmask from usercontext pointer Peter Maydell
2016-05-16 18:00   ` Sergey Fedorov
2016-05-16 16:09 ` [Qemu-devel] [PATCH 5/5] target-i386: Move user-mode exception actions out of user-exec.c Peter Maydell
2016-05-16 17:54   ` Sergey Fedorov
2016-05-16 18:33     ` Peter Maydell
2016-05-16 20:24       ` Peter Maydell
2016-05-17 13:47     ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=573A0A52.8010808@gmail.com \
    --to=serge.fdrv@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=patches@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@iki.fi \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.