Lines Matching refs:cr3
31 * Naively, when loading %cr3 with the base of a new pagetable, Xen
36 * that it is still valid when you do load it into %cr3, and doesn't
149 * Note about cr3 (pagetable base) values:
151 * xen_cr3 contains the current logical cr3 value; it contains the
152 * last set cr3. This may not be the current effective cr3, because
154 * at its own cr3 can use this value knowing that it everything will
157 * xen_current_cr3 contains the actual vcpu cr3; it is set once the
158 * hypercall to set the vcpu cr3 is complete (so it may be a little
160 * looking at another vcpu's cr3 value, it should use this variable.
162 DEFINE_PER_CPU(unsigned long, xen_cr3); /* cr3 stored as physaddr */
163 DEFINE_PER_CPU(unsigned long, xen_current_cr3); /* actual vcpu cr3 */
1216 /* Another cpu may still have their %cr3 pointing at the pagetable, so
1228 /* If this cpu still has a stale cr3 reference, then make sure
1259 cr3, because its in lazy mode, and it hasn't yet flushed
1261 look at its actual current cr3 value, and force it to flush
1414 static void __xen_write_cr3(bool kernel, unsigned long cr3)
1420 if (cr3)
1421 mfn = pfn_to_mfn(PFN_DOWN(cr3));
1436 percpu_write(xen_cr3, cr3);
1440 xen_mc_callback(set_current_cr3, (void *)cr3);
1444 static void xen_write_cr3(unsigned long cr3)
1452 percpu_write(xen_cr3, cr3);
1454 __xen_write_cr3(true, cr3);
1458 pgd_t *user_pgd = xen_get_user_pgd(__va(cr3));