pmap.c (de7201225514f33f0fde51cab02f4a86c879b13d) pmap.c (e93d0cbef142a2c6276ae83390a2ea81f0889b43)
1/*-
2 * Copyright (c) 1991 Regents of the University of California.
3 * All rights reserved.
4 * Copyright (c) 1994 John S. Dyson
5 * All rights reserved.
6 * Copyright (c) 1994 David Greenman
7 * All rights reserved.
8 * Copyright (c) 2005-2010 Alan L. Cox <alc@cs.rice.edu>

--- 1948 unchanged lines hidden (view full) ---

1957void
1958pmap_lazyfix_action(void)
1959{
1960
1961#ifdef COUNT_IPIS
1962 (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++;
1963#endif
1964 if (rcr3() == lazyptd)
1/*-
2 * Copyright (c) 1991 Regents of the University of California.
3 * All rights reserved.
4 * Copyright (c) 1994 John S. Dyson
5 * All rights reserved.
6 * Copyright (c) 1994 David Greenman
7 * All rights reserved.
8 * Copyright (c) 2005-2010 Alan L. Cox <alc@cs.rice.edu>

--- 1948 unchanged lines hidden (view full) ---

1957void
1958pmap_lazyfix_action(void)
1959{
1960
1961#ifdef COUNT_IPIS
1962 (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++;
1963#endif
1964 if (rcr3() == lazyptd)
1965 load_cr3(PCPU_GET(curpcb)->pcb_cr3);
1965 load_cr3(curpcb->pcb_cr3);
1966 CPU_CLR_ATOMIC(PCPU_GET(cpuid), lazymask);
1967 atomic_store_rel_int(&lazywait, 1);
1968}
1969
1970static void
1971pmap_lazyfix_self(u_int cpuid)
1972{
1973
1974 if (rcr3() == lazyptd)
1966 CPU_CLR_ATOMIC(PCPU_GET(cpuid), lazymask);
1967 atomic_store_rel_int(&lazywait, 1);
1968}
1969
1970static void
1971pmap_lazyfix_self(u_int cpuid)
1972{
1973
1974 if (rcr3() == lazyptd)
1975 load_cr3(PCPU_GET(curpcb)->pcb_cr3);
1975 load_cr3(curpcb->pcb_cr3);
1976 CPU_CLR_ATOMIC(cpuid, lazymask);
1977}
1978
1979
1980static void
1981pmap_lazyfix(pmap_t pmap)
1982{
1983 cpuset_t mymask, mask;

--- 50 unchanged lines hidden (view full) ---

2034 */
2035static void
2036pmap_lazyfix(pmap_t pmap)
2037{
2038 u_int cr3;
2039
2040 cr3 = vtophys(pmap->pm_pdir);
2041 if (cr3 == rcr3()) {
1976 CPU_CLR_ATOMIC(cpuid, lazymask);
1977}
1978
1979
1980static void
1981pmap_lazyfix(pmap_t pmap)
1982{
1983 cpuset_t mymask, mask;

--- 50 unchanged lines hidden (view full) ---

2034 */
2035static void
2036pmap_lazyfix(pmap_t pmap)
2037{
2038 u_int cr3;
2039
2040 cr3 = vtophys(pmap->pm_pdir);
2041 if (cr3 == rcr3()) {
2042 load_cr3(PCPU_GET(curpcb)->pcb_cr3);
2042 load_cr3(curpcb->pcb_cr3);
2043 CPU_CLR(PCPU_GET(cpuid), &pmap->pm_active);
2044 }
2045}
2046#endif /* SMP */
2047
2048/*
2049 * Release any resources held by the given physical map.
2050 * Called when a pmap initialized by pmap_pinit is being released.

--- 3377 unchanged lines hidden ---
2043 CPU_CLR(PCPU_GET(cpuid), &pmap->pm_active);
2044 }
2045}
2046#endif /* SMP */
2047
2048/*
2049 * Release any resources held by the given physical map.
2050 * Called when a pmap initialized by pmap_pinit is being released.

--- 3377 unchanged lines hidden ---