Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (4 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: kib Approved by: kib (mentor) Differential Revision: https://reviews.freebsd.org/D23625 X-Generally looks fine: jhb
This commit is contained in:
parent
3c6c1e149e
commit
f6abce8e79
@ -58,7 +58,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "amdvi_priv.h"
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, amdvi, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, amdvi, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
#define MOD_INC(a, s, m) (((a) + (s)) % ((m) * (s)))
|
||||
#define MOD_DEC(a, s, m) (((a) - (s)) % ((m) * (s)))
|
||||
@ -947,16 +948,16 @@ amdvi_add_sysctl(struct amdvi_softc *softc)
|
||||
SYSCTL_ADD_U16(ctx, child, OID_AUTO, "end_dev_rid", CTLFLAG_RD,
|
||||
&softc->end_dev_rid, 0, "End of device under this IOMMU");
|
||||
SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "command_head",
|
||||
CTLTYPE_UINT | CTLFLAG_RD, softc, 0,
|
||||
CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 0,
|
||||
amdvi_handle_sysctl, "IU", "Command head");
|
||||
SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "command_tail",
|
||||
CTLTYPE_UINT | CTLFLAG_RD, softc, 1,
|
||||
CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 1,
|
||||
amdvi_handle_sysctl, "IU", "Command tail");
|
||||
SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "event_head",
|
||||
CTLTYPE_UINT | CTLFLAG_RD, softc, 2,
|
||||
CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 2,
|
||||
amdvi_handle_sysctl, "IU", "Command head");
|
||||
SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "event_tail",
|
||||
CTLTYPE_UINT | CTLFLAG_RD, softc, 3,
|
||||
CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 3,
|
||||
amdvi_handle_sysctl, "IU", "Command tail");
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "npt.h"
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, npt, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, npt, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
static int npt_flags;
|
||||
SYSCTL_INT(_hw_vmm_npt, OID_AUTO, pmap_flags, CTLFLAG_RD,
|
||||
|
@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "npt.h"
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, svm, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, svm, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
/*
|
||||
* SVM CPUID function 0x8000_000A, edx bit decoding.
|
||||
|
@ -68,7 +68,8 @@ __FBSDID("$FreeBSD$");
|
||||
#define EPT_ENABLE_AD_BITS (1 << 6)
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, ept, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, ept, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
static int ept_enable_ad_bits;
|
||||
|
||||
|
@ -123,7 +123,8 @@ static MALLOC_DEFINE(M_VMX, "vmx", "vmx");
|
||||
static MALLOC_DEFINE(M_VLAPIC, "vlapic", "vlapic");
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, vmx, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, vmx, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
int vmxon_enabled[MAXCPU];
|
||||
static char vmxon_region[MAXCPU][PAGE_SIZE] __aligned(PAGE_SIZE);
|
||||
@ -150,7 +151,9 @@ SYSCTL_INT(_hw_vmm_vmx, OID_AUTO, initialized, CTLFLAG_RD,
|
||||
/*
|
||||
* Optional capabilities
|
||||
*/
|
||||
static SYSCTL_NODE(_hw_vmm_vmx, OID_AUTO, cap, CTLFLAG_RW, NULL, NULL);
|
||||
static SYSCTL_NODE(_hw_vmm_vmx, OID_AUTO, cap,
|
||||
CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
static int cap_halt_exit;
|
||||
SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, halt_exit, CTLFLAG_RD, &cap_halt_exit, 0,
|
||||
|
@ -48,7 +48,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "iommu.h"
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, iommu, CTLFLAG_RW, 0, "bhyve iommu parameters");
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, iommu, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"bhyve iommu parameters");
|
||||
|
||||
static int iommu_avail;
|
||||
SYSCTL_INT(_hw_vmm_iommu, OID_AUTO, initialized, CTLFLAG_RD, &iommu_avail,
|
||||
|
@ -112,7 +112,8 @@ struct pptdev {
|
||||
};
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, ppt, CTLFLAG_RW, 0, "bhyve passthru devices");
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, ppt, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"bhyve passthru devices");
|
||||
|
||||
static int num_pptdevs;
|
||||
SYSCTL_INT(_hw_vmm_ppt, OID_AUTO, devices, CTLFLAG_RD, &num_pptdevs, 0,
|
||||
|
@ -106,7 +106,8 @@ static void vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval);
|
||||
static MALLOC_DEFINE(M_VRTC, "vrtc", "bhyve virtual rtc");
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, vrtc, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, vrtc, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
static int rtc_flag_broken_time = 1;
|
||||
SYSCTL_INT(_hw_vmm_vrtc, OID_AUTO, flag_broken_time, CTLFLAG_RDTUN,
|
||||
|
@ -215,7 +215,8 @@ static MALLOC_DEFINE(M_VM, "vm", "vm");
|
||||
/* statistics */
|
||||
static VMM_STAT(VCPU_TOTAL_RUNTIME, "vcpu total runtime");
|
||||
|
||||
SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW, NULL, NULL);
|
||||
SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||
NULL);
|
||||
|
||||
/*
|
||||
* Halt the guest if all vcpus are executing a HLT instruction with
|
||||
|
@ -962,8 +962,9 @@ sysctl_vmm_destroy(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
SYSCTL_PROC(_hw_vmm, OID_AUTO, destroy,
|
||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON,
|
||||
NULL, 0, sysctl_vmm_destroy, "A", NULL);
|
||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE,
|
||||
NULL, 0, sysctl_vmm_destroy, "A",
|
||||
NULL);
|
||||
|
||||
static struct cdevsw vmmdevsw = {
|
||||
.d_name = "vmmdev",
|
||||
@ -1045,8 +1046,9 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
SYSCTL_PROC(_hw_vmm, OID_AUTO, create,
|
||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON,
|
||||
NULL, 0, sysctl_vmm_create, "A", NULL);
|
||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE,
|
||||
NULL, 0, sysctl_vmm_create, "A",
|
||||
NULL);
|
||||
|
||||
void
|
||||
vmmdev_init(void)
|
||||
|
@ -50,7 +50,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "x86.h"
|
||||
|
||||
SYSCTL_DECL(_hw_vmm);
|
||||
static SYSCTL_NODE(_hw_vmm, OID_AUTO, topology, CTLFLAG_RD, 0, NULL);
|
||||
static SYSCTL_NODE(_hw_vmm, OID_AUTO, topology, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
NULL);
|
||||
|
||||
#define CPUID_VM_HIGH 0x40000000
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user