Up to [cvs.NetBSD.org] / src / sys / arch / x86 / include
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.53 / (download) - annotate - [select for diffs], Tue Nov 13 14:07:42 2012 UTC (6 months, 1 week ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base8,
yamt-pagecache-base7,
tls-maxphys-nbase,
tls-maxphys-base,
khorben-n900,
agc-symver-base,
agc-symver,
HEAD
Changes since 1.52: +2 -1
lines
Diff to previous 1.52 (colored)
add a pmap_kremove_local() that doesn't do TLB invalidations on other CPUs. this is only intended for use while writing kernel crash dumps. remove unused pmap_map().
Revision 1.52 / (download) - annotate - [select for diffs], Fri Apr 20 22:23:24 2012 UTC (13 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base6,
yamt-pagecache-base5,
jmcneill-usbmp-base9,
jmcneill-usbmp-base10
Branch point for: tls-maxphys
Changes since 1.51: +7 -4
lines
Diff to previous 1.51 (colored)
- Convert x86 MD code, mainly pmap(9) e.g. TLB shootdown code, to use kcpuset(9) and thus replace hardcoded CPU bitmasks. This removes the limitation of maximum CPUs. - Support up to 256 CPUs on amd64 architecture by default. Bug fixes, improvements, completion of Xen part and testing on 64-core AMD Opteron(tm) Processor 6282 SE (also, as Xen HVM domU with 128 CPUs) by Manuel Bouyer.
Revision 1.51 / (download) - annotate - [select for diffs], Sun Mar 11 16:28:02 2012 UTC (14 months, 1 week ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base4,
jmcneill-usbmp-base8
Changes since 1.50: +1 -4
lines
Diff to previous 1.50 (colored)
Alternate PTEs got killed a few weeks ago. Clean up unused prototypes.
Revision 1.50 / (download) - annotate - [select for diffs], Fri Feb 17 18:40:18 2012 UTC (15 months ago) by bouyer
Branch: MAIN
CVS Tags: jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4,
jmcneill-usbmp-base3,
jmcneill-usbmp-base2
Changes since 1.49: +3 -1
lines
Diff to previous 1.49 (colored)
Apply patch proposed in PR port-xen/45975 (this does not solve the exact problem reported here but is part of the solution): xen_kpm_sync() is not working as expected, leading to races between CPUs. 1 the check (xpq_cpu != &x86_curcpu) is always false because we have different x86_curcpu symbols with different addresses in the kernel. Fortunably, all addresses dissaemble to the same code. Because of this we always use the code intended for bootstrap, which doesn't use cross-calls or lock. 2 once 1 above is fixed, xen_kpm_sync() will use xcalls to sync other CPUs, which cause it to sleep and pmap.c doesn't like that. It triggers this KASSERT() in pmap_unmap_ptes(): KASSERT(pmap->pm_ncsw == curlwp->l_ncsw); 3 pmap->pm_cpus is not safe for the purpose of xen_kpm_sync(), which needs to know on which CPU a pmap is loaded *now*: pmap->pm_cpus is cleared before cpu_load_pmap() is called to switch to a new pmap, leaving a window where a pmap is still in a CPU's ci_kpm_pdir but not in pm_cpus. As a virtual CPU may be preempted by the hypervisor at any time, it can be large enough to let another CPU free the PTP and reuse it as a normal page. To fix 2), avoid cross-calls and IPIs completely, and instead use a mutex to update all CPU's ci_kpm_pdir from the local CPU. It's safe because we just need to update the table page, a tlbflush IPI will happen later. As a side effect, we don't need a different code for bootstrap, fixing 1). The mutex added to struct cpu needs a small headers reorganisation. to fix 3), introduce a pm_xen_ptp_cpus which is updated from cpu_pmap_load(), whith the ci_kpm_mtx mutex held. Checking it with ci_kpm_mtx held will avoid overwriting the wrong pmap's ci_kpm_pdir. While there I removed the unused pmap_is_active() function; and added some more details to DIAGNOSTIC panics.
Revision 1.49 / (download) - annotate - [select for diffs], Sun Dec 4 16:24:13 2011 UTC (17 months, 2 weeks ago) by chs
Branch: MAIN
CVS Tags: netbsd-6-base
Branch point for: netbsd-6
Changes since 1.48: +22 -1
lines
Diff to previous 1.48 (colored)
map all of physical memory using large pages. ported from openbsd years ago by Murray Armfield, updated for changes since then by me.
Revision 1.48 / (download) - annotate - [select for diffs], Wed Nov 23 01:16:55 2011 UTC (18 months ago) by jym
Branch: MAIN
CVS Tags: jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base
Branch point for: jmcneill-usbmp
Changes since 1.47: +1 -17
lines
Diff to previous 1.47 (colored)
No more users of xpmap_update(). Use pmap_pte_*() functions now.
Revision 1.47 / (download) - annotate - [select for diffs], Wed Nov 23 00:56:56 2011 UTC (18 months ago) by jym
Branch: MAIN
Changes since 1.46: +1 -11
lines
Diff to previous 1.46 (colored)
Move Xen-specific functions to Xen pmap. Requested by cherry@. Un'ifdef XEN in xen_pmap.c, it is always defined there.
Revision 1.46 / (download) - annotate - [select for diffs], Sun Nov 20 19:41:27 2011 UTC (18 months ago) by jym
Branch: MAIN
Changes since 1.45: +14 -11
lines
Diff to previous 1.45 (colored)
Expose pmap_pdp_cache publicly to x86/xen pmap. Provide suspend/resume callbacks for Xen pmap. Turn static internal callbacks of pmap_pdp_cache. XXX the implementation of pool_cache_invalidate(9) is still wrong, and IMHO this needs fixing before -6. See http://mail-index.netbsd.org/tech-kern/2011/11/18/msg011924.html
Revision 1.45 / (download) - annotate - [select for diffs], Tue Nov 8 17:16:52 2011 UTC (18 months, 2 weeks ago) by cherry
Branch: MAIN
CVS Tags: yamt-pagecache-base3,
jmcneill-audiomp3-base,
jmcneill-audiomp3
Changes since 1.44: +11 -1
lines
Diff to previous 1.44 (colored)
Expose the PG_k #define pt/pd bit to both xen and "baremetal" x86. This is required, since kernel pages are mapped with user permissions in XEN/amd64 since the VM kernel runs in ring3. Since XEN/i386(including PAE) runs in ring1, supervisor mode is appropriate for these ports. We need to share this since the pmap implementation is still shared. Once the xen implementation is sufficiently independant of the x86 one, this can be made private to xen/include/xenpmap.h
Revision 1.44 / (download) - annotate - [select for diffs], Sun Nov 6 11:40:47 2011 UTC (18 months, 2 weeks ago) by cherry
Branch: MAIN
CVS Tags: yamt-pagecache-base2
Changes since 1.43: +1 -3
lines
Diff to previous 1.43 (colored)
[merging from cherry-xenmp] Make the xen MMU op queue locking api private. Implement per-cpu queues.
Revision 1.43 / (download) - annotate - [select for diffs], Tue Oct 18 23:14:28 2011 UTC (19 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base
Branch point for: yamt-pagecache
Changes since 1.42: +9 -1
lines
Diff to previous 1.42 (colored)
Make "pmaps" (list of non-kernel pmaps) and "pmaps_lock" externally visible. Required by pmap MD code that could reside in other files, notably Xen's pmap.
Revision 1.42 / (download) - annotate - [select for diffs], Tue Sep 20 00:12:23 2011 UTC (20 months ago) by jym
Branch: MAIN
Changes since 1.41: +7 -1
lines
Diff to previous 1.41 (colored)
Merge jym-xensuspend branch in -current. ok bouyer@. Goal: save/restore support in NetBSD domUs, for i386, i386 PAE and amd64. Executive summary: - split all Xen drivers (xenbus(4), grant tables, xbd(4), xennet(4)) in two parts: suspend and resume, and hook them to pmf(9). - modify pmap so that Xen hypervisor does not cry out loud in case it finds "unexpected" recursive memory mappings - provide a sysctl(7), machdep.xen.suspend, to command suspend from userland via powerd(8). Note: a suspend can only be handled correctly when dom0 requested it, so provide a mechanism that will prevent kernel to blindly validate user's commands The code is still in experimental state, use at your own risk: restore can corrupt backend communications rings; this can completely thrash dom0 as it will loop at a high interrupt level trying to honor all domU requests. XXX PAE suspend does not work in amd64 currently, due to (yet again!) page validation issues with hypervisor. Will fix. XXX secondary CPUs are not suspended, I will write the handlers in sync with cherry's Xen MP work. Tested under i386 and amd64, bear in mind ring corruption though. No build break expected, GENERICs and XEN* kernels should be fine. ./build.sh distribution still running. In any case: sorry if it does break for you, contact me directly for reports.
Revision 1.41 / (download) - annotate - [select for diffs], Sat Aug 13 12:09:38 2011 UTC (21 months, 1 week ago) by cherry
Branch: MAIN
CVS Tags: jym-xensuspend-nbase,
jym-xensuspend-base
Changes since 1.40: +3 -1
lines
Diff to previous 1.40 (colored)
Add locking around ops to the hypervisor MMU "queue".
Revision 1.40 / (download) - annotate - [select for diffs], Mon Jun 13 04:30:40 2011 UTC (23 months, 1 week ago) by tls
Branch: MAIN
Changes since 1.39: +3 -1
lines
Diff to previous 1.39 (colored)
Fix Xen kernel builds (pmap_is_curpmap can't be static)
Revision 1.39 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:50 2011 UTC (23 months, 1 week ago) by rmind
Branch: MAIN
Changes since 1.38: +31 -19
lines
Diff to previous 1.38 (colored)
Welcome to 5.99.53! Merge rmind-uvmplock branch: - Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock. - Simplify locking in some pmap(9) modules by removing P->V locking. - Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs). - Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns. - Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues. Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
Revision 1.38 / (download) - annotate - [select for diffs], Sat May 7 23:59:13 2011 UTC (2 years ago) by jym
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase,
rmind-uvmplock-base,
cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.37: +5 -7
lines
Diff to previous 1.37 (colored)
Do as the comment says, use ilog2(). This gets optimized directly at compile time, no call to fls() is needed.
Revision 1.37 / (download) - annotate - [select for diffs], Mon Apr 25 22:24:36 2011 UTC (2 years, 1 month ago) by yamt
Branch: MAIN
Changes since 1.36: +3 -1
lines
Diff to previous 1.36 (colored)
comment
Revision 1.36 / (download) - annotate - [select for diffs], Mon Apr 25 22:24:00 2011 UTC (2 years, 1 month ago) by yamt
Branch: MAIN
Changes since 1.35: +1 -3
lines
Diff to previous 1.35 (colored)
remove unused ptei
Revision 1.35 / (download) - annotate - [select for diffs], Fri Feb 11 23:08:38 2011 UTC (2 years, 3 months ago) by jmcneill
Branch: MAIN
CVS Tags: uebayasi-xip-base7,
bouyer-quota2-nbase,
bouyer-quota2-base
Changes since 1.34: +13 -2
lines
Diff to previous 1.34 (colored)
add bus_space_mmap support for BUS_SPACE_MAP_PREFETCHABLE, ok matt@
Revision 1.34 / (download) - annotate - [select for diffs], Tue Feb 1 20:19:32 2011 UTC (2 years, 3 months ago) by chuck
Branch: MAIN
Changes since 1.33: +1 -8
lines
Diff to previous 1.33 (colored)
udpate license clauses on my code to match the new-style BSD licenses. remove no-longer-valid wustl email address for me. based on diff that rmind@ sent me. no functional change with this commit.
Revision 1.33 / (download) - annotate - [select for diffs], Sat Jul 24 00:45:56 2010 UTC (2 years, 10 months ago) by jym
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11,
yamt-nfs-mp-base10,
uebayasi-xip-base6,
uebayasi-xip-base5,
uebayasi-xip-base4,
uebayasi-xip-base3,
uebayasi-xip-base2,
matt-mips64-premerge-20101231,
jruoho-x86intr-base
Branch point for: jruoho-x86intr,
bouyer-quota2
Changes since 1.32: +6 -8
lines
Diff to previous 1.32 (colored)
Welcome PAE inside i386 current.
This patch is inspired by work previously done by Jeremy Morse, ported by me
to -current, merged with the work previously done for port-xen, together with
additionals fixes and improvements.
PAE option is disabled by default in GENERIC (but will be enabled in ALL in
the next few days).
In quick, PAE switches the CPU to a mode where physical addresses become
36 bits (64 GiB). Virtual address space remains at 32 bits (4 GiB). To cope
with the increased size of the physical address, they are manipulated as
64 bits variables by kernel and MMU.
When supported by the CPU, it also allows the use of the NX/XD bit that
provides no-execution right enforcement on a per physical page basis.
Notes:
- reworked locore.S
- introduce cpu_load_pmap(), used to switch pmap for the curcpu. Due to the
different handling of pmap mappings with PAE vs !PAE, Xen vs native, details
are hidden within this function. This helps calling it from assembly,
as some features, like BIOS calls, switch to pmap_kernel before mapping
trampoline code in low memory.
- some changes in bioscall and kvm86_call, to reflect the above.
- the L3 is "pinned" per-CPU, and is only manipulated by a
reduced set of functions within pmap. To track the L3, I added two
elements to struct cpu_info, namely ci_l3_pdirpa (PA of the L3), and
ci_l3_pdir (the L3 VA). Rest of the code considers that it runs "just
like" a normal i386, except that the L2 is 4 pages long (PTP_LEVELS is
still 2).
- similar to the ci_pae_l3_pdir{,pa} variables, amd64's xen_current_user_pgd
becomes an element of cpu_info (slowly paving the way for MP world).
- bootinfo_source struct declaration is modified, to cope with paddr_t size
change with PAE (it is not correct to assume that bs_addr is a paddr_t when
compiled with PAE - it should remain 32 bits). bs_addrs is now a
void * array (in bootloader's code under i386/stand/, the bs_addrs
is a physaddr_t, which is an unsigned long).
- fixes in multiboot code (same reason as bootinfo): paddr_t size
change. I used Elf32_* types, use RELOC() where necessary, and move the
memcpy() functions out of the if/else if (I do not expect sym and str tables
to overlap with ELF).
- 64 bits atomic functions for pmap
- all pmap_pdirpa access are now done through the pmap_pdirpa macro. It
hides the L3/L2 stuff from PAE, as well as the pm_pdirpa change in
struct pmap (it now becomes a PDP_SIZE array, with or without PAE).
- manipulation of recursive mappings ( PDIR_SLOT_{,A}PTEs ) is done via
loops on PDP_SIZE.
See also http://mail-index.netbsd.org/port-i386/2010/07/17/msg002062.html
No objection raised on port-i386@ and port-xen@R for about a week.
XXX kvm(3) will be fixed in another patch to properly handle both PAE and !PAE
kernel dumps (VA => PA macros are slightly different, and need proper 64 bits
PA support in kvm_i386).
XXX Mixing PAE and !PAE modules may lead to unwanted/unexpected results. This
cannot be solved easily, and needs lots of thinking before being declared
safe (paddr_t/bus_addr_t size handling, PD/PT macros abstractions).
Revision 1.32 / (download) - annotate - [select for diffs], Thu Jul 15 19:02:26 2010 UTC (2 years, 10 months ago) by jym
Branch: MAIN
Changes since 1.31: +7 -2
lines
Diff to previous 1.31 (colored)
Make the comment about PDPpaddr more thorough.
Revision 1.31 / (download) - annotate - [select for diffs], Tue Jul 6 20:50:35 2010 UTC (2 years, 10 months ago) by cegger
Branch: MAIN
Changes since 1.30: +1 -2
lines
Diff to previous 1.30 (colored)
Turn PMAP_NOCACHE into MI flag. Add MI flags PMAP_WRITE_COMBINE, PMAP_WRITE_BACK, PMAP_NOCACHE_OVR. Update pmap(9) manpage. hppa: Remove MD PMAP_NOCACHE flag as it exists as MI flag mips: Rename MD PMAP_NOCACHE to PGC_NOCACHE. x86: Implement new MI flags using Page-Attribute Tables. x86: Implement BUS_SPACE_MAP_PREFETCHABLE. Patch presented on tech-kern@: http://mail-index.netbsd.org/tech-kern/2010/06/30/msg008458.html No comments on this last version.
Revision 1.30 / (download) - annotate - [select for diffs], Mon May 10 18:46:58 2010 UTC (3 years ago) by dyoung
Branch: MAIN
Changes since 1.29: +18 -6
lines
Diff to previous 1.29 (colored)
Provide pmap_enter_ma(), pmap_extract_ma(), pmap_kenter_ma() in all x86 kernels, and use them in the bus_space(9) implementation instead of ugly Xen #ifdef-age. In a non-Xen kernel, the _ma() functions either call or alias the equivalent _pa() functions. Reviewed on port-xen@netbsd.org and port-i386@netbsd.org. Passes rmind@'s and bouyer@'s inspection. Tested on i386 and on Xen DOMU / DOM0.
Revision 1.29 / (download) - annotate - [select for diffs], Tue Feb 9 22:51:13 2010 UTC (3 years, 3 months ago) by jym
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9,
uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.28: +2 -2
lines
Diff to previous 1.28 (colored)
Fix typos in comments.
Revision 1.28 / (download) - annotate - [select for diffs], Wed Nov 11 17:08:16 2009 UTC (3 years, 6 months ago) by cegger
Branch: MAIN
CVS Tags: uebayasi-xip-base,
matt-premerge-20091211
Branch point for: uebayasi-xip
Changes since 1.27: +2 -2
lines
Diff to previous 1.27 (colored)
update comment: we use PMAP_NOCACHE for both pmap_enter and pmap_kenter_pa
Revision 1.27 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:48 2009 UTC (3 years, 6 months ago) by cegger
Branch: MAIN
Changes since 1.26: +2 -2
lines
Diff to previous 1.26 (colored)
Add a flags argument to pmap_kenter_pa(9). Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html No objections.
Revision 1.26 / (download) - annotate - [select for diffs], Sun Jul 19 15:17:29 2009 UTC (3 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8,
yamt-nfs-mp-base7,
jymxensuspend-base
Changes since 1.25: +2 -2
lines
Diff to previous 1.25 (colored)
pmap_emap_sync: add an argument, and do not perform pmap_load() during context switch (pmap_destroy() path seems to be unsafe), instead just perform tlbflush(). Slightly inefficient, but good enough for now.
Revision 1.25 / (download) - annotate - [select for diffs], Sun Jun 28 15:18:50 2009 UTC (3 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6
Changes since 1.24: +7 -1
lines
Diff to previous 1.24 (colored)
Ephemeral mapping (emap) implementation. Concept is based on the idea that activity of other threads will perform the TLB flush for the processes using emap as a side effect. To track that, global and per-CPU generation numbers are used. This idea was suggested by Andrew Doran; various improvements to it by me. Notes: - For now, zero-copy on pipe is not yet enabled. - TCP socket code would likely need more work. - Additional UVM loaning improvements are needed. Proposed on <tech-kern>, silence there. Quickly reviewed by <ad>.
Revision 1.24 / (download) - annotate - [select for diffs], Wed Apr 22 10:17:48 2009 UTC (4 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base5,
yamt-nfs-mp-base4,
yamt-nfs-mp-base3,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base
Changes since 1.23: +3 -3
lines
Diff to previous 1.23 (colored)
change pmap flags argument from int to u_int. forgot to commit this.
Revision 1.23 / (download) - annotate - [select for diffs], Sat Apr 18 08:51:45 2009 UTC (4 years, 1 month ago) by cegger
Branch: MAIN
Changes since 1.22: +6 -1
lines
Diff to previous 1.22 (colored)
Introduce PMAP_NOCACHE as first PMAP MD bit in x86. Make use of it in pmap_enter(). This safes one extra TLB flush when mapping dma-safe memory. Presented on tech-kern@, port-i386@ and port-amd64@ ok ad@
Revision 1.22 / (download) - annotate - [select for diffs], Sat Mar 21 14:41:30 2009 UTC (4 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.21: +3 -5
lines
Diff to previous 1.21 (colored)
PR port-i386/40143 Viewing an mpeg transport stream with mplayer causes crash Fix numerous problems: 1. LDT updates are not atomic. 2. Number of processes running with private LDTs and/or I/O bitmaps is not capped. System with high maxprocs can be paniced. 3. LDTR can be leaked over context switch. 4. GDT slot allocations can race, giving the same LDT slot to two procs. 5. Incomplete interrupt/trap frames can be stacked. 6. In some rare cases segment faults are not handled correctly.
Revision 1.21 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:46 2008 UTC (4 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: nick-hppapmap-base2,
mjf-devfs2-base,
haad-nbase2,
haad-dm-base2,
haad-dm-base
Branch point for: jym-xensuspend
Changes since 1.20: +1 -6
lines
Diff to previous 1.20 (colored)
Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr, which is now the "API" provided by the pmap module. pmap_kernel() remains as the syntactic sugar. Bonus cosmetics round: move all the pmap_t pointer typedefs into uvm_pmap.h. Thanks to Greg Oster for providing cpu muscle for doing test builds.
Revision 1.20 / (download) - annotate - [select for diffs], Tue Sep 16 19:55:31 2008 UTC (4 years, 8 months ago) by bouyer
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4,
wrstuden-revivesa-base-3,
netbsd-5-base,
netbsd-5-0-RC3,
netbsd-5-0-RC2,
netbsd-5-0-RC1,
matt-mips64-base2,
haad-dm-base1,
ad-audiomp2-base,
ad-audiomp2
Branch point for: nick-hppapmap,
netbsd-5
Changes since 1.19: +3 -1
lines
Diff to previous 1.19 (colored)
Implement the arch-dependent p2m frame lists list. This adds support for 'xm dump-core' for NetBSD domUs. From Jean-Yves Migeon (jean-yves dot migeon at espci dot fr)
Revision 1.19 / (download) - annotate - [select for diffs], Tue Jun 24 10:42:43 2008 UTC (4 years, 11 months ago) by jmcneill
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-2,
simonb-wapbl-nbase,
simonb-wapbl-base
Branch point for: haad-dm
Changes since 1.18: +2 -1
lines
Diff to previous 1.18 (colored)
Define PMAP_FORK -- this was lost in the vmlocking merge, and is required by options USER_LDT.
Revision 1.18 / (download) - annotate - [select for diffs], Thu Jun 5 21:09:12 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base
Branch point for: simonb-wapbl
Changes since 1.17: +2 -8
lines
Diff to previous 1.17 (colored)
pmap_remove_all() for x86. Also, always defer freeing ptps to pmap_update(). There may be a better way to do this, but for now this is simple and avoids potential bugs. Proposed on tech-kern and discussed with chs@.
Revision 1.17 / (download) - annotate - [select for diffs], Wed Jun 4 13:08:30 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.16: +7 -1
lines
Diff to previous 1.16 (colored)
Revert unintentional change.
Revision 1.16 / (download) - annotate - [select for diffs], Wed Jun 4 12:41:42 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.15: +2 -8
lines
Diff to previous 1.15 (colored)
vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.
Revision 1.15 / (download) - annotate - [select for diffs], Mon Jun 2 19:11:10 2008 UTC (4 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.14: +2 -3
lines
Diff to previous 1.14 (colored)
- Don't bother using sse to copy/zero pages on demand. It turns out not to be worth it. - If the machine has sse, re-enable zeroing pages in the idle loop and use the sse instructions so that we don't blow out the cache.
Revision 1.14 / (download) - annotate - [select for diffs], Sat May 3 02:56:13 2008 UTC (5 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2,
yamt-nfs-mp-base2,
hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.13: +7 -2
lines
Diff to previous 1.13 (colored)
Back out previous which was not thought through properly.
Revision 1.13 / (download) - annotate - [select for diffs], Sat May 3 00:21:35 2008 UTC (5 years ago) by ad
Branch: MAIN
Changes since 1.12: +3 -8
lines
Diff to previous 1.12 (colored)
Implement pmap_remove_all().
Revision 1.12 / (download) - annotate - [select for diffs], Wed Jan 23 19:46:45 2008 UTC (5 years, 4 months ago) by bouyer
Branch: MAIN
CVS Tags: yamt-pf42-baseX,
yamt-pf42-base,
yamt-nfs-mp-base,
yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
keiichi-mipv6,
hpcarm-cleanup-base,
ad-socklock-base1
Branch point for: yamt-pf42,
yamt-nfs-mp,
mjf-devfs2
Changes since 1.11: +24 -3
lines
Diff to previous 1.11 (colored)
Merge the bouyer-xeni386 branch. This brings in PAE support to NetBSD xeni386
(domU only). PAE support is enabled by 'options PAE', see the new XEN3PAE_DOMU
and INSTALL_XEN3PAE_DOMU kernel config files.
See the comments in arch/i386/include/{pte.h,pmap.h} to see how it works.
In short, we still handle it as a 2-level MMU, with the second level page
directory being 4 pages in size. pmap switching is done by switching the
L2 pages in the L3 entries, instead of loading %cr3. This is almost required
by Xen, which handle the last L2 page (the one mapping 0xc0000000 - 0xffffffff)
in a very special way. But this approach should also work for native PAE
support if ever supported (in fact, the pmap should almost suport native
PAE, what's missing is bootstrap code in locore.S).
Revision 1.11 / (download) - annotate - [select for diffs], Sun Jan 20 13:43:37 2008 UTC (5 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase,
bouyer-xeni386-base
Changes since 1.10: +1 -16
lines
Diff to previous 1.10 (colored)
- rewrite P->V tracking. - use a hash rather than SPLAY trees. SPLAY tree is a wrong algorithm to use here. will be revisited if it slows down anything other than micro-benchmarks. - optimize the single mapping case (it's a common case) by embedding an entry into mdpage. - don't keep a pmap pointer as it can be obtained from ptp. (discussed on port-i386 some years ago.) ideally, a single paddr_t should be enough to describe a pte. but it needs some more thoughts as it can increase computational costs. - pmap_enter: simplify and fix races with pmap_sync_pv. - don't bother to lock pm_obj[i] where i > 0, unless DIAGNOSTIC. - kill mp_link to save space. - add many KASSERTs.
Revision 1.10 / (download) - annotate - [select for diffs], Fri Jan 11 20:00:17 2008 UTC (5 years, 4 months ago) by bouyer
Branch: MAIN
Changes since 1.9: +6 -3
lines
Diff to previous 1.9 (colored)
Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
Revision 1.9 / (download) - annotate - [select for diffs], Tue Jan 8 22:24:09 2008 UTC (5 years, 4 months ago) by yamt
Branch: MAIN
Changes since 1.8: +1 -2
lines
Diff to previous 1.8 (colored)
kill unused PMF_USER_RELOAD.
Revision 1.8 / (download) - annotate - [select for diffs], Wed Jan 2 12:30:30 2008 UTC (5 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.7: +1 -31
lines
Diff to previous 1.7 (colored)
g/c pv_page stuffs.
Revision 1.7 / (download) - annotate - [select for diffs], Tue Dec 25 18:33:34 2007 UTC (5 years, 5 months ago) by perry
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.6: +7 -7
lines
Diff to previous 1.6 (colored)
Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h
Revision 1.6 / (download) - annotate - [select for diffs], Sun Dec 9 20:27:48 2007 UTC (5 years, 5 months ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-kmem-base3,
yamt-kmem-base2,
cube-autoconf-base,
cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.5: +2 -1
lines
Diff to previous 1.5 (colored)
Merge jmcneill-pm branch.
Revision 1.5 / (download) - annotate - [select for diffs], Thu Nov 22 16:17:12 2007 UTC (5 years, 6 months ago) by bouyer
Branch: MAIN
CVS Tags: yamt-kmem-base,
vmlocking2-base2,
vmlocking2-base1,
vmlocking-nbase,
reinoud-bufcleanup-nbase,
reinoud-bufcleanup-base,
jmcneill-pm-base
Branch point for: yamt-kmem,
vmlocking2
Changes since 1.4: +58 -1
lines
Diff to previous 1.4 (colored)
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support to NetBSD/Xen, both Dom0 and DomU.
Revision 1.4 / (download) - annotate - [select for diffs], Thu Nov 15 19:18:34 2007 UTC (5 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2,
bouyer-xenamd64-base
Changes since 1.3: +4 -16
lines
Diff to previous 1.3 (colored)
Remove support for 80386 level CPUs. PR port-i386/36163.
Revision 1.3 / (download) - annotate - [select for diffs], Wed Nov 7 00:23:16 2007 UTC (5 years, 6 months ago) by ad
Branch: MAIN
Changes since 1.2: +1 -2
lines
Diff to previous 1.2 (colored)
Merge from vmlocking: - pool_cache changes. - Debugger/procfs locking fixes. - Other minor changes.
Revision 1.2 / (download) - annotate - [select for diffs], Thu Oct 18 15:28:37 2007 UTC (5 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: yamt-lazymbuf,
vmlocking,
mjf-devfs,
matt-armv6,
jmcneill-pm
Changes since 1.1: +412 -0
lines
Diff to previous 1.1 (colored)
merge yamt-x86pmap branch. - reduce differences between amd64 and i386. notably, share pmap.c between them. it makes several i386 pmap improvements available to amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff. - implement deferred pmap switching for amd64. - remove LARGEPAGES option. always use large pages if available. also, make it work on amd64.
Revision 1.1, Mon Oct 8 06:35:50 2007 UTC (5 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-x86pmap-base4,
yamt-x86pmap-base3,
vmlocking-base
Branch point for: yamt-x86pmap,
bouyer-xenamd64
FILE REMOVED
file pmap.h was initially added on branch yamt-x86pmap.