All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Emilio G. Cota" <cota@braap.org>
To: qemu-devel@nongnu.org
Cc: "Richard Henderson" <richard.henderson@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: [Qemu-devel] [PATCH v7 35/73] i386: use cpu_reset_interrupt
Date: Mon,  4 Mar 2019 13:17:35 -0500	[thread overview]
Message-ID: <20190304181813.8075-36-cota@braap.org> (raw)
In-Reply-To: <20190304181813.8075-1-cota@braap.org>

From: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Emilio G. Cota <cota@braap.org>
---
 target/i386/hax-all.c    |  4 ++--
 target/i386/hvf/x86hvf.c |  8 ++++----
 target/i386/kvm.c        | 14 +++++++-------
 target/i386/seg_helper.c | 13 ++++++-------
 target/i386/svm_helper.c |  2 +-
 target/i386/whpx-all.c   | 10 +++++-----
 6 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/target/i386/hax-all.c b/target/i386/hax-all.c
index 22951017cf..518c6ff103 100644
--- a/target/i386/hax-all.c
+++ b/target/i386/hax-all.c
@@ -424,7 +424,7 @@ static int hax_vcpu_interrupt(CPUArchState *env)
         irq = cpu_get_pic_interrupt(env);
         if (irq >= 0) {
             hax_inject_interrupt(env, irq);
-            cpu->interrupt_request &= ~CPU_INTERRUPT_HARD;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_HARD);
         }
     }
 
@@ -474,7 +474,7 @@ static int hax_vcpu_hax_exec(CPUArchState *env)
     cpu_halted_set(cpu, 0);
 
     if (cpu->interrupt_request & CPU_INTERRUPT_POLL) {
-        cpu->interrupt_request &= ~CPU_INTERRUPT_POLL;
+        cpu_reset_interrupt(cpu, CPU_INTERRUPT_POLL);
         apic_poll_irq(x86_cpu->apic_state);
     }
 
diff --git a/target/i386/hvf/x86hvf.c b/target/i386/hvf/x86hvf.c
index 163bbed23f..e8b13ed534 100644
--- a/target/i386/hvf/x86hvf.c
+++ b/target/i386/hvf/x86hvf.c
@@ -402,7 +402,7 @@ bool hvf_inject_interrupts(CPUState *cpu_state)
 
     if (cpu_state->interrupt_request & CPU_INTERRUPT_NMI) {
         if (!(env->hflags2 & HF2_NMI_MASK) && !(info & VMCS_INTR_VALID)) {
-            cpu_state->interrupt_request &= ~CPU_INTERRUPT_NMI;
+            cpu_reset_interrupt(cpu_state, CPU_INTERRUPT_NMI);
             info = VMCS_INTR_VALID | VMCS_INTR_T_NMI | NMI_VEC;
             wvmcs(cpu_state->hvf_fd, VMCS_ENTRY_INTR_INFO, info);
         } else {
@@ -414,7 +414,7 @@ bool hvf_inject_interrupts(CPUState *cpu_state)
         (cpu_state->interrupt_request & CPU_INTERRUPT_HARD) &&
         (EFLAGS(env) & IF_MASK) && !(info & VMCS_INTR_VALID)) {
         int line = cpu_get_pic_interrupt(&x86cpu->env);
-        cpu_state->interrupt_request &= ~CPU_INTERRUPT_HARD;
+        cpu_reset_interrupt(cpu_state, CPU_INTERRUPT_HARD);
         if (line >= 0) {
             wvmcs(cpu_state->hvf_fd, VMCS_ENTRY_INTR_INFO, line |
                   VMCS_INTR_VALID | VMCS_INTR_T_HWINTR);
@@ -440,7 +440,7 @@ int hvf_process_events(CPUState *cpu_state)
     }
 
     if (cpu_state->interrupt_request & CPU_INTERRUPT_POLL) {
-        cpu_state->interrupt_request &= ~CPU_INTERRUPT_POLL;
+        cpu_reset_interrupt(cpu_state, CPU_INTERRUPT_POLL);
         apic_poll_irq(cpu->apic_state);
     }
     if (((cpu_state->interrupt_request & CPU_INTERRUPT_HARD) &&
@@ -453,7 +453,7 @@ int hvf_process_events(CPUState *cpu_state)
         do_cpu_sipi(cpu);
     }
     if (cpu_state->interrupt_request & CPU_INTERRUPT_TPR) {
-        cpu_state->interrupt_request &= ~CPU_INTERRUPT_TPR;
+        cpu_reset_interrupt(cpu_state, CPU_INTERRUPT_TPR);
         hvf_cpu_synchronize_state(cpu_state);
         apic_handle_tpr_access_report(cpu->apic_state, env->eip,
                                       env->tpr_access_type);
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 81e3d65cc9..f2e187e40f 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -2893,7 +2893,7 @@ static int kvm_put_vcpu_events(X86CPU *cpu, int level)
              */
             events.smi.pending = cs->interrupt_request & CPU_INTERRUPT_SMI;
             events.smi.latched_init = cs->interrupt_request & CPU_INTERRUPT_INIT;
-            cs->interrupt_request &= ~(CPU_INTERRUPT_INIT | CPU_INTERRUPT_SMI);
+            cpu_reset_interrupt(cs, CPU_INTERRUPT_INIT | CPU_INTERRUPT_SMI);
         } else {
             /* Keep these in cs->interrupt_request.  */
             events.smi.pending = 0;
@@ -3189,7 +3189,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
     if (cpu->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_SMI)) {
         if (cpu->interrupt_request & CPU_INTERRUPT_NMI) {
             qemu_mutex_lock_iothread();
-            cpu->interrupt_request &= ~CPU_INTERRUPT_NMI;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_NMI);
             qemu_mutex_unlock_iothread();
             DPRINTF("injected NMI\n");
             ret = kvm_vcpu_ioctl(cpu, KVM_NMI);
@@ -3200,7 +3200,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
         }
         if (cpu->interrupt_request & CPU_INTERRUPT_SMI) {
             qemu_mutex_lock_iothread();
-            cpu->interrupt_request &= ~CPU_INTERRUPT_SMI;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_SMI);
             qemu_mutex_unlock_iothread();
             DPRINTF("injected SMI\n");
             ret = kvm_vcpu_ioctl(cpu, KVM_SMI);
@@ -3236,7 +3236,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run)
             (env->eflags & IF_MASK)) {
             int irq;
 
-            cpu->interrupt_request &= ~CPU_INTERRUPT_HARD;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_HARD);
             irq = cpu_get_pic_interrupt(env);
             if (irq >= 0) {
                 struct kvm_interrupt intr;
@@ -3307,7 +3307,7 @@ int kvm_arch_process_async_events(CPUState *cs)
         /* We must not raise CPU_INTERRUPT_MCE if it's not supported. */
         assert(env->mcg_cap);
 
-        cs->interrupt_request &= ~CPU_INTERRUPT_MCE;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_MCE);
 
         kvm_cpu_synchronize_state(cs);
 
@@ -3337,7 +3337,7 @@ int kvm_arch_process_async_events(CPUState *cs)
     }
 
     if (cs->interrupt_request & CPU_INTERRUPT_POLL) {
-        cs->interrupt_request &= ~CPU_INTERRUPT_POLL;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_POLL);
         apic_poll_irq(cpu->apic_state);
     }
     if (((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
@@ -3350,7 +3350,7 @@ int kvm_arch_process_async_events(CPUState *cs)
         do_cpu_sipi(cpu);
     }
     if (cs->interrupt_request & CPU_INTERRUPT_TPR) {
-        cs->interrupt_request &= ~CPU_INTERRUPT_TPR;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_TPR);
         kvm_cpu_synchronize_state(cs);
         apic_handle_tpr_access_report(cpu->apic_state, env->eip,
                                       env->tpr_access_type);
diff --git a/target/i386/seg_helper.c b/target/i386/seg_helper.c
index 63e265cb38..b580403ef4 100644
--- a/target/i386/seg_helper.c
+++ b/target/i386/seg_helper.c
@@ -1332,7 +1332,7 @@ bool x86_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
     switch (interrupt_request) {
 #if !defined(CONFIG_USER_ONLY)
     case CPU_INTERRUPT_POLL:
-        cs->interrupt_request &= ~CPU_INTERRUPT_POLL;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_POLL);
         apic_poll_irq(cpu->apic_state);
         break;
 #endif
@@ -1341,23 +1341,22 @@ bool x86_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
         break;
     case CPU_INTERRUPT_SMI:
         cpu_svm_check_intercept_param(env, SVM_EXIT_SMI, 0, 0);
-        cs->interrupt_request &= ~CPU_INTERRUPT_SMI;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_SMI);
         do_smm_enter(cpu);
         break;
     case CPU_INTERRUPT_NMI:
         cpu_svm_check_intercept_param(env, SVM_EXIT_NMI, 0, 0);
-        cs->interrupt_request &= ~CPU_INTERRUPT_NMI;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_NMI);
         env->hflags2 |= HF2_NMI_MASK;
         do_interrupt_x86_hardirq(env, EXCP02_NMI, 1);
         break;
     case CPU_INTERRUPT_MCE:
-        cs->interrupt_request &= ~CPU_INTERRUPT_MCE;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_MCE);
         do_interrupt_x86_hardirq(env, EXCP12_MCHK, 0);
         break;
     case CPU_INTERRUPT_HARD:
         cpu_svm_check_intercept_param(env, SVM_EXIT_INTR, 0, 0);
-        cs->interrupt_request &= ~(CPU_INTERRUPT_HARD |
-                                   CPU_INTERRUPT_VIRQ);
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ);
         intno = cpu_get_pic_interrupt(env);
         qemu_log_mask(CPU_LOG_TB_IN_ASM,
                       "Servicing hardware INT=0x%02x\n", intno);
@@ -1372,7 +1371,7 @@ bool x86_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
         qemu_log_mask(CPU_LOG_TB_IN_ASM,
                       "Servicing virtual hardware INT=0x%02x\n", intno);
         do_interrupt_x86_hardirq(env, intno, 1);
-        cs->interrupt_request &= ~CPU_INTERRUPT_VIRQ;
+        cpu_reset_interrupt(cs, CPU_INTERRUPT_VIRQ);
         break;
 #endif
     }
diff --git a/target/i386/svm_helper.c b/target/i386/svm_helper.c
index 9fd22a883b..a6d33e55d8 100644
--- a/target/i386/svm_helper.c
+++ b/target/i386/svm_helper.c
@@ -700,7 +700,7 @@ void do_vmexit(CPUX86State *env, uint32_t exit_code, uint64_t exit_info_1)
     env->hflags &= ~HF_GUEST_MASK;
     env->intercept = 0;
     env->intercept_exceptions = 0;
-    cs->interrupt_request &= ~CPU_INTERRUPT_VIRQ;
+    cpu_reset_interrupt(cs, CPU_INTERRUPT_VIRQ);
     env->tsc_offset = 0;
 
     env->gdt.base  = x86_ldq_phys(cs, env->vm_hsave + offsetof(struct vmcb,
diff --git a/target/i386/whpx-all.c b/target/i386/whpx-all.c
index b9c79ccd99..9673bdc219 100644
--- a/target/i386/whpx-all.c
+++ b/target/i386/whpx-all.c
@@ -728,14 +728,14 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
     if (!vcpu->interruption_pending &&
         cpu->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_SMI)) {
         if (cpu->interrupt_request & CPU_INTERRUPT_NMI) {
-            cpu->interrupt_request &= ~CPU_INTERRUPT_NMI;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_NMI);
             vcpu->interruptable = false;
             new_int.InterruptionType = WHvX64PendingNmi;
             new_int.InterruptionPending = 1;
             new_int.InterruptionVector = 2;
         }
         if (cpu->interrupt_request & CPU_INTERRUPT_SMI) {
-            cpu->interrupt_request &= ~CPU_INTERRUPT_SMI;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_SMI);
         }
     }
 
@@ -758,7 +758,7 @@ static void whpx_vcpu_pre_run(CPUState *cpu)
         vcpu->interruptable && (env->eflags & IF_MASK)) {
         assert(!new_int.InterruptionPending);
         if (cpu->interrupt_request & CPU_INTERRUPT_HARD) {
-            cpu->interrupt_request &= ~CPU_INTERRUPT_HARD;
+            cpu_reset_interrupt(cpu, CPU_INTERRUPT_HARD);
             irq = cpu_get_pic_interrupt(env);
             if (irq >= 0) {
                 new_int.InterruptionType = WHvX64PendingInterrupt;
@@ -850,7 +850,7 @@ static void whpx_vcpu_process_async_events(CPUState *cpu)
     }
 
     if (cpu->interrupt_request & CPU_INTERRUPT_POLL) {
-        cpu->interrupt_request &= ~CPU_INTERRUPT_POLL;
+        cpu_reset_interrupt(cpu, CPU_INTERRUPT_POLL);
         apic_poll_irq(x86_cpu->apic_state);
     }
 
@@ -868,7 +868,7 @@ static void whpx_vcpu_process_async_events(CPUState *cpu)
     }
 
     if (cpu->interrupt_request & CPU_INTERRUPT_TPR) {
-        cpu->interrupt_request &= ~CPU_INTERRUPT_TPR;
+        cpu_reset_interrupt(cpu, CPU_INTERRUPT_TPR);
         if (!cpu->vcpu_dirty) {
             whpx_get_registers(cpu);
         }
-- 
2.17.1

  parent reply	other threads:[~2019-03-04 18:18 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-04 18:17 [Qemu-devel] [PATCH v7 00/73] per-CPU locks Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 01/73] cpu: convert queued work to a QSIMPLEQ Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 02/73] cpu: rename cpu->work_mutex to cpu->lock Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 03/73] cpu: introduce cpu_mutex_lock/unlock Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 04/73] cpu: make qemu_work_cond per-cpu Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 05/73] cpu: move run_on_cpu to cpus-common Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 06/73] cpu: introduce process_queued_cpu_work_locked Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 07/73] cpu: make per-CPU locks an alias of the BQL in TCG rr mode Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 08/73] tcg-runtime: define helper_cpu_halted_set Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 09/73] ppc: convert to helper_cpu_halted_set Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 10/73] cris: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 11/73] hppa: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 12/73] m68k: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 13/73] alpha: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 14/73] microblaze: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 15/73] cpu: define cpu_halted helpers Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 16/73] tcg-runtime: convert to cpu_halted_set Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 17/73] arm: convert to cpu_halted Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 18/73] ppc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 19/73] sh4: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 20/73] i386: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 21/73] lm32: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 22/73] m68k: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 23/73] mips: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 24/73] riscv: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 25/73] s390x: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 26/73] sparc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 27/73] xtensa: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 28/73] gdbstub: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 29/73] openrisc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 30/73] cpu-exec: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 31/73] cpu: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 32/73] cpu: define cpu_interrupt_request helpers Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 33/73] ppc: use cpu_reset_interrupt Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 34/73] exec: " Emilio G. Cota
2019-03-04 18:17 ` Emilio G. Cota [this message]
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 36/73] s390x: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 37/73] openrisc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 38/73] arm: convert to cpu_interrupt_request Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 39/73] i386: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 40/73] i386/kvm: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 41/73] i386/hax-all: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 42/73] i386/whpx-all: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 43/73] i386/hvf: convert to cpu_request_interrupt Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 44/73] ppc: convert to cpu_interrupt_request Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 45/73] sh4: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 46/73] cris: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 47/73] hppa: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 48/73] lm32: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 49/73] m68k: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 50/73] mips: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 51/73] nios: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 52/73] s390x: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 53/73] alpha: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 54/73] moxie: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 55/73] sparc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 56/73] openrisc: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 57/73] unicore32: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 58/73] microblaze: " Emilio G. Cota
2019-03-04 18:17 ` [Qemu-devel] [PATCH v7 59/73] accel/tcg: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 60/73] cpu: convert to interrupt_request Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 61/73] cpu: call .cpu_has_work with the CPU lock held Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 62/73] cpu: introduce cpu_has_work_with_iothread_lock Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 63/73] ppc: convert to cpu_has_work_with_iothread_lock Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 64/73] mips: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 65/73] s390x: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 66/73] riscv: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 67/73] sparc: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 68/73] xtensa: " Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 69/73] cpu: rename all_cpu_threads_idle to qemu_tcg_rr_all_cpu_threads_idle Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 70/73] cpu: protect CPU state with cpu->lock instead of the BQL Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 71/73] cpus-common: release BQL earlier in run_on_cpu Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 72/73] cpu: add async_run_on_cpu_no_bql Emilio G. Cota
2019-03-04 18:18 ` [Qemu-devel] [PATCH v7 73/73] cputlb: queue async flush jobs without the BQL Emilio G. Cota
2019-03-05  9:16 ` [Qemu-devel] [PATCH v7 00/73] per-CPU locks Alex Bennée
2019-03-06 19:40 ` Richard Henderson
2019-03-06 19:57   ` Peter Maydell
2019-03-06 23:49   ` Emilio G. Cota

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=20190304181813.8075-36-cota@braap.org \
    --to=cota@braap.org \
    --cc=alex.bennee@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /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.