Lines Matching defs:slot
21 void kvm_page_track_free_memslot(struct kvm_memory_slot *slot)
26 kvfree(slot->arch.gfn_track[i]);
27 slot->arch.gfn_track[i] = NULL;
31 int kvm_page_track_create_memslot(struct kvm_memory_slot *slot,
37 slot->arch.gfn_track[i] =
38 __vcalloc(npages, sizeof(*slot->arch.gfn_track[i]),
40 if (!slot->arch.gfn_track[i])
47 kvm_page_track_free_memslot(slot);
59 static void update_gfn_track(struct kvm_memory_slot *slot, gfn_t gfn,
64 index = gfn_to_index(gfn, slot->base_gfn, PG_LEVEL_4K);
66 val = slot->arch.gfn_track[mode][index];
71 slot->arch.gfn_track[mode][index] += count;
82 * @slot: the @gfn belongs to.
87 struct kvm_memory_slot *slot, gfn_t gfn,
94 update_gfn_track(slot, gfn, mode, 1);
100 kvm_mmu_gfn_disallow_lpage(slot, gfn);
103 if (kvm_mmu_slot_gfn_write_protect(kvm, slot, gfn))
117 * @slot: the @gfn belongs to.
122 struct kvm_memory_slot *slot, gfn_t gfn,
128 update_gfn_track(slot, gfn, mode, -1);
134 kvm_mmu_gfn_allow_lpage(slot, gfn);
144 struct kvm_memory_slot *slot;
150 slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn);
151 if (!slot)
154 index = gfn_to_index(gfn, slot->base_gfn, PG_LEVEL_4K);
155 return !!READ_ONCE(slot->arch.gfn_track[mode][index]);
240 * Notify the node that memory slot is being removed or moved so that it can
241 * drop write-protection for the pages in the memory slot.
243 * The node should figure out it has any write-protected pages in this slot
246 void kvm_page_track_flush_slot(struct kvm *kvm, struct kvm_memory_slot *slot)
261 n->track_flush_slot(kvm, slot, n);