Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/x86/lib/cache-smp.c
49621 views
1
// SPDX-License-Identifier: GPL-2.0
2
#include <asm/paravirt.h>
3
#include <linux/smp.h>
4
#include <linux/export.h>
5
#include <linux/kvm_types.h>
6
7
static void __wbinvd(void *dummy)
8
{
9
wbinvd();
10
}
11
12
void wbinvd_on_cpu(int cpu)
13
{
14
smp_call_function_single(cpu, __wbinvd, NULL, 1);
15
}
16
EXPORT_SYMBOL_FOR_KVM(wbinvd_on_cpu);
17
18
void wbinvd_on_all_cpus(void)
19
{
20
on_each_cpu(__wbinvd, NULL, 1);
21
}
22
EXPORT_SYMBOL(wbinvd_on_all_cpus);
23
24
void wbinvd_on_cpus_mask(struct cpumask *cpus)
25
{
26
on_each_cpu_mask(cpus, __wbinvd, NULL, 1);
27
}
28
EXPORT_SYMBOL_FOR_KVM(wbinvd_on_cpus_mask);
29
30
static void __wbnoinvd(void *dummy)
31
{
32
wbnoinvd();
33
}
34
35
void wbnoinvd_on_all_cpus(void)
36
{
37
on_each_cpu(__wbnoinvd, NULL, 1);
38
}
39
EXPORT_SYMBOL_FOR_KVM(wbnoinvd_on_all_cpus);
40
41
void wbnoinvd_on_cpus_mask(struct cpumask *cpus)
42
{
43
on_each_cpu_mask(cpus, __wbnoinvd, NULL, 1);
44
}
45
EXPORT_SYMBOL_FOR_KVM(wbnoinvd_on_cpus_mask);
46
47