[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 18/24] cputlb: move CPU_LOOP() for tlb_reset() to exe
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 18/24] cputlb: move CPU_LOOP() for tlb_reset() to exec.c |
Date: |
Wed, 16 Sep 2015 14:29:49 +0200 |
From: Peter Crosthwaite <address@hidden>
To prepare for multi-arch, cputlb.c should only have awareness of one
single architecture. This means it should not have access to the full
CPU lists which may be heterogeneous. Instead, push the CPU_LOOP() up
to the one and only caller in exec.c.
Signed-off-by: Peter Crosthwaite <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
cputlb.c | 27 ++++++++++++---------------
exec.c | 5 ++++-
include/exec/cputlb.h | 2 +-
3 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/cputlb.c b/cputlb.c
index fbcebe3..dd149a2 100644
--- a/cputlb.c
+++ b/cputlb.c
@@ -262,27 +262,24 @@ static inline ram_addr_t
qemu_ram_addr_from_host_nofail(void *ptr)
return ram_addr;
}
-void cpu_tlb_reset_dirty_all(ram_addr_t start1, ram_addr_t length)
+void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length)
{
- CPUState *cpu;
CPUArchState *env;
- CPU_FOREACH(cpu) {
- int mmu_idx;
+ int mmu_idx;
- env = cpu->env_ptr;
- for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
- unsigned int i;
+ env = cpu->env_ptr;
+ for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
+ unsigned int i;
- for (i = 0; i < CPU_TLB_SIZE; i++) {
- tlb_reset_dirty_range(&env->tlb_table[mmu_idx][i],
- start1, length);
- }
+ for (i = 0; i < CPU_TLB_SIZE; i++) {
+ tlb_reset_dirty_range(&env->tlb_table[mmu_idx][i],
+ start1, length);
+ }
- for (i = 0; i < CPU_VTLB_SIZE; i++) {
- tlb_reset_dirty_range(&env->tlb_v_table[mmu_idx][i],
- start1, length);
- }
+ for (i = 0; i < CPU_VTLB_SIZE; i++) {
+ tlb_reset_dirty_range(&env->tlb_v_table[mmu_idx][i],
+ start1, length);
}
}
}
diff --git a/exec.c b/exec.c
index 07dfeae..1fa27f5 100644
--- a/exec.c
+++ b/exec.c
@@ -913,6 +913,7 @@ found:
static void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length)
{
+ CPUState *cpu;
ram_addr_t start1;
RAMBlock *block;
ram_addr_t end;
@@ -924,7 +925,9 @@ static void tlb_reset_dirty_range_all(ram_addr_t start,
ram_addr_t length)
block = qemu_get_ram_block(start);
assert(block == qemu_get_ram_block(end - 1));
start1 = (uintptr_t)ramblock_ptr(block, start - block->offset);
- cpu_tlb_reset_dirty_all(start1, length);
+ CPU_FOREACH(cpu) {
+ tlb_reset_dirty(cpu, start1, length);
+ }
rcu_read_unlock();
}
diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h
index 360815e..c3aaa30 100644
--- a/include/exec/cputlb.h
+++ b/include/exec/cputlb.h
@@ -25,7 +25,7 @@ void tlb_protect_code(ram_addr_t ram_addr);
void tlb_unprotect_code(ram_addr_t ram_addr);
void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry, uintptr_t start,
uintptr_t length);
-void cpu_tlb_reset_dirty_all(ram_addr_t start1, ram_addr_t length);
+void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length);
void tlb_set_dirty(CPUArchState *env, target_ulong vaddr);
extern int tlb_flush_count;
--
2.5.0
- [Qemu-devel] [PULL 11/24] monitor: added generation of documentation for hmp-commands-info.hx, (continued)
[Qemu-devel] [PULL 15/24] tcg: split tcg_op_defs to -common, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 09/24] monitor: remove target-specific code from monitor.c, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 18/24] cputlb: move CPU_LOOP() for tlb_reset() to exec.c,
Paolo Bonzini <=
[Qemu-devel] [PULL 17/24] translate: move real_host_page setting to -common, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 19/24] cputlb: Change tlb_set_dirty() arg to cpu, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 21/24] monitor: uninclude cpu_ldst, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 24/24] Revert "rcu: init rcu_registry_lock after fork", Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 22/24] checkpatch: Escape left braces in regex, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 23/24] nbd: release exp->blk after all clients are closed, Paolo Bonzini, 2015/09/16
[Qemu-devel] [PULL 20/24] include/exec: Move cputlb exec.c defs out, Paolo Bonzini, 2015/09/16
Re: [Qemu-devel] [PULL 00/24] Misc patches for 2015-09-16, Eric Blake, 2015/09/16