debugfs.c (820e9906cf64142169134f35b996108303cf22ca) debugfs.c (a54d806688fe1e482350ce759a8a0fc9ebf814b0)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * Copyright 2016 Red Hat, Inc. and/or its affiliates.
6 */
7#include <linux/kvm_host.h>
8#include <linux/debugfs.h>

--- 93 unchanged lines hidden (view full) ---

102 if (!log[i])
103 goto out;
104 }
105
106 mutex_lock(&kvm->slots_lock);
107 write_lock(&kvm->mmu_lock);
108
109 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) {
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * Copyright 2016 Red Hat, Inc. and/or its affiliates.
6 */
7#include <linux/kvm_host.h>
8#include <linux/debugfs.h>

--- 93 unchanged lines hidden (view full) ---

102 if (!log[i])
103 goto out;
104 }
105
106 mutex_lock(&kvm->slots_lock);
107 write_lock(&kvm->mmu_lock);
108
109 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) {
110 int bkt;
111
110 slots = __kvm_memslots(kvm, i);
112 slots = __kvm_memslots(kvm, i);
111 for (j = 0; j < slots->used_slots; j++) {
112 slot = &slots->memslots[j];
113 kvm_for_each_memslot(slot, bkt, slots)
113 for (k = 0; k < KVM_NR_PAGE_SIZES; k++) {
114 rmap = slot->arch.rmap[k];
115 lpage_size = kvm_mmu_slot_lpages(slot, k + 1);
116 cur = log[k];
117 for (l = 0; l < lpage_size; l++) {
118 index = ffs(pte_list_count(&rmap[l]));
119 if (WARN_ON_ONCE(index >= RMAP_LOG_SIZE))
120 index = RMAP_LOG_SIZE - 1;
121 cur[index]++;
122 }
123 }
114 for (k = 0; k < KVM_NR_PAGE_SIZES; k++) {
115 rmap = slot->arch.rmap[k];
116 lpage_size = kvm_mmu_slot_lpages(slot, k + 1);
117 cur = log[k];
118 for (l = 0; l < lpage_size; l++) {
119 index = ffs(pte_list_count(&rmap[l]));
120 if (WARN_ON_ONCE(index >= RMAP_LOG_SIZE))
121 index = RMAP_LOG_SIZE - 1;
122 cur[index]++;
123 }
124 }
124 }
125 }
126
127 write_unlock(&kvm->mmu_lock);
128 mutex_unlock(&kvm->slots_lock);
129
130 /* index=0 counts no rmap; index=1 counts 1 rmap */
131 seq_printf(m, "Rmap_Count:\t0\t1\t");
132 for (i = 2; i < RMAP_LOG_SIZE; i++) {

--- 54 unchanged lines hidden ---
125 }
126
127 write_unlock(&kvm->mmu_lock);
128 mutex_unlock(&kvm->slots_lock);
129
130 /* index=0 counts no rmap; index=1 counts 1 rmap */
131 seq_printf(m, "Rmap_Count:\t0\t1\t");
132 for (i = 2; i < RMAP_LOG_SIZE; i++) {

--- 54 unchanged lines hidden ---