MCPcopy Create free account
hub / github.com/F-Stack/f-stack / invlpg_invpcid_handler

Function invlpg_invpcid_handler

freebsd/amd64/amd64/mp_machdep.c:903–925  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

901}
902
903static void
904invlpg_invpcid_handler(pmap_t smp_tlb_pmap, vm_offset_t smp_tlb_addr1)
905{
906 struct invpcid_descr d;
907
908#ifdef COUNT_XINVLTLB_HITS
909 xhits_pg[PCPU_GET(cpuid)]++;
910#endif /* COUNT_XINVLTLB_HITS */
911#ifdef COUNT_IPIS
912 (*ipi_invlpg_counts[PCPU_GET(cpuid)])++;
913#endif /* COUNT_IPIS */
914
915 invlpg(smp_tlb_addr1);
916 if (smp_tlb_pmap == PCPU_GET(curpmap) &&
917 smp_tlb_pmap->pm_ucr3 != PMAP_NO_CR3 &&
918 PCPU_GET(ucr3_load_mask) == PMAP_UCR3_NOMASK) {
919 d.pcid = smp_tlb_pmap->pm_pcids[PCPU_GET(cpuid)].pm_pcid |
920 PMAP_PCID_USER_PT;
921 d.pad = 0;
922 d.addr = smp_tlb_addr1;
923 invpcid(&d, INVPCID_ADDR);
924 }
925}
926
927static void
928invlpg_pcid_handler(pmap_t smp_tlb_pmap, vm_offset_t smp_tlb_addr1)

Callers 1

invlop_handler_one_reqFunction · 0.85

Calls 2

invpcidFunction · 0.85
invlpgFunction · 0.50

Tested by

no test coverage detected