]>
git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - arch/x86/kvm/page_track.c
2 * Support KVM gust page tracking
4 * This feature allows us to track page access in guest. Currently, only
5 * write access is tracked.
7 * Copyright(C) 2015 Intel Corporation.
10 * Xiao Guangrong <guangrong.xiao@linux.intel.com>
12 * This work is licensed under the terms of the GNU GPL, version 2. See
13 * the COPYING file in the top-level directory.
16 #include <linux/kvm_host.h>
17 #include <asm/kvm_host.h>
18 #include <asm/kvm_page_track.h>
22 void kvm_page_track_free_memslot(struct kvm_memory_slot
*free
,
23 struct kvm_memory_slot
*dont
)
27 for (i
= 0; i
< KVM_PAGE_TRACK_MAX
; i
++)
28 if (!dont
|| free
->arch
.gfn_track
[i
] !=
29 dont
->arch
.gfn_track
[i
]) {
30 kvfree(free
->arch
.gfn_track
[i
]);
31 free
->arch
.gfn_track
[i
] = NULL
;
35 int kvm_page_track_create_memslot(struct kvm_memory_slot
*slot
,
40 for (i
= 0; i
< KVM_PAGE_TRACK_MAX
; i
++) {
41 slot
->arch
.gfn_track
[i
] = kvm_kvzalloc(npages
*
42 sizeof(*slot
->arch
.gfn_track
[i
]));
43 if (!slot
->arch
.gfn_track
[i
])
50 kvm_page_track_free_memslot(slot
, NULL
);