[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH qom-cpu 29/59] cputlb: Simplify cpu_tlb_reset_dirty_
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH qom-cpu 29/59] cputlb: Simplify cpu_tlb_reset_dirty_all() |
Date: |
Sun, 9 Jun 2013 21:12:56 +0200 |
Use new qemu_for_each_cpu().
Signed-off-by: Andreas Färber <address@hidden>
---
cputlb.c | 35 ++++++++++++++++++++++++-----------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/cputlb.c b/cputlb.c
index f7cc4b4..748d0f6 100644
--- a/cputlb.c
+++ b/cputlb.c
@@ -173,24 +173,37 @@ static inline void tlb_update_dirty(CPUTLBEntry
*tlb_entry)
}
}
-void cpu_tlb_reset_dirty_all(ram_addr_t start1, ram_addr_t length)
-{
- CPUArchState *env;
+typedef struct CPUTLBResetDirtyData {
+ ram_addr_t start1;
+ ram_addr_t length;
+} CPUTLBResetDirtyData;
- for (env = first_cpu; env != NULL; env = env->next_cpu) {
- int mmu_idx;
+static void cpu_tlb_reset_dirty_one(CPUState *cpu, void *data)
+{
+ CPUTLBResetDirtyData *s = data;
+ CPUArchState *env = cpu->env_ptr;
+ int mmu_idx;
- for (mmu_idx = 0; mmu_idx < NB_MMU_MODES; mmu_idx++) {
- unsigned int i;
+ 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],
+ s->start1, s->length);
}
}
}
+void cpu_tlb_reset_dirty_all(ram_addr_t start1, ram_addr_t length)
+{
+ CPUTLBResetDirtyData s = {
+ .start1 = start1,
+ .length = length,
+ };
+
+ qemu_for_each_cpu(cpu_tlb_reset_dirty_one, &s);
+}
+
static inline void tlb_set_dirty1(CPUTLBEntry *tlb_entry, target_ulong vaddr)
{
if (tlb_entry->addr_write == (vaddr | TLB_NOTDIRTY)) {
--
1.8.1.4
- [Qemu-devel] [PATCH qom-cpu 26/59] hwaddr: Make hwaddr type usable beyond softmmu, (continued)
[Qemu-devel] [PATCH qom-cpu 27/59] cpu: Turn cpu_unassigned_access() into a CPUState hook, Andreas Färber, 2013/06/09
[Qemu-devel] [PATCH qom-cpu 29/59] cputlb: Simplify cpu_tlb_reset_dirty_all(),
Andreas Färber <=
[Qemu-devel] [PATCH qom-cpu 30/59] exec: Simplify tcg_commit(), Andreas Färber, 2013/06/09
[Qemu-devel] [PATCH qom-cpu 31/59] monitor: Simplify do_info_numa(), Andreas Färber, 2013/06/09
[Qemu-devel] [PATCH qom-cpu 28/59] cpu: Replace cpu_single_env with CPUState cpu_single_cpu, Andreas Färber, 2013/06/09
[Qemu-devel] [PATCH qom-cpu 32/59] kvm: Simplify kvm_{insert, remove, remove_all}_breakpoint[s](), Andreas Färber, 2013/06/09
[Qemu-devel] [PATCH qom-cpu 33/59] kvm: Simplify kvm_remove_all_breakpoints() further, Andreas Färber, 2013/06/09