The NetBSD Project

CVS log for src/sys/arch/amd64/include/pmap.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / arch / amd64 / include

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.69 / (download) - annotate - [select for diffs], Sat Aug 20 23:49:31 2022 UTC (19 months, 1 week ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.68: +1 -2 lines
Diff to previous 1.68 (unified)

x86: Move definition of struct pmap to pmap_private.h.

This makes pmap_resident_count and pmap_wired_count out-of-line
functions instead of inline.  No functional change intended
otherwise.

Revision 1.68 / (download) - annotate - [select for diffs], Sat Aug 20 23:48:50 2022 UTC (19 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.67: +1 -313 lines
Diff to previous 1.67 (unified)

x86: Split most of pmap.h into pmap_private.h or vmparam.h.

This way pmap.h only contains the MD definition of the MI pmap(9)
API, which loads of things in the kernel rely on, so changing x86
pmap internals no longer requires recompiling the entire kernel every
time.

Callers needing these internals must now use machine/pmap_private.h.
Note: This is not x86/pmap_private.h because it contains three parts:

1. CPU-specific (different for i386/amd64) definitions used by...

2. common definitions, including Xenisms like xpmap_ptetomach,
   further used by...

3. more CPU-specific inlines for pmap_pte_* operations

So {amd64,i386}/pmap_private.h defines 1, includes x86/pmap_private.h
for 2, and then defines 3.  Maybe we should split that out into a new
pmap_pte.h to reduce this trouble.

No functional change intended, other than that some .c files must
include machine/pmap_private.h when previously uvm/uvm_pmap.h
polluted the namespace with pmap internals.

Note: This migrates part of i386/pmap.h into i386/vmparam.h --
specifically the parts that are needed for several constants defined
in vmparam.h:

VM_MAXUSER_ADDRESS
VM_MAX_ADDRESS
VM_MAX_KERNEL_ADDRESS
VM_MIN_KERNEL_ADDRESS

Since i386 needs PDP_SIZE in vmparam.h, I added it there on amd64
too, just to keep things parallel.

Revision 1.67 / (download) - annotate - [select for diffs], Sat Aug 20 23:18:20 2022 UTC (19 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.66: +1 -12 lines
Diff to previous 1.66 (unified)

x86: Move struct vm_page_md to common x86/pmap.h.

Revision 1.66 / (download) - annotate - [select for diffs], Fri May 15 22:17:45 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.65: +2 -3 lines
Diff to previous 1.65 (unified)

Revert previous after thinking about it.  It was wrong, don't need to use
an atomic to clear a PTE or set initial version unless the circumstances
call for it.

Revision 1.65 / (download) - annotate - [select for diffs], Tue Mar 17 18:17:07 2020 UTC (4 years ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Changes since 1.64: +3 -2 lines
Diff to previous 1.64 (unified)

Always set PTEs using atomics.  There are too many assumptions to go wrong.

Revision 1.64 / (download) - annotate - [select for diffs], Thu Nov 14 16:23:52 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20191119, is-mlppp-base, is-mlppp, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.63: +12 -2 lines
Diff to previous 1.63 (unified)

Add support for Kernel Memory Sanitizer (kMSan). It detects uninitialized
memory used by the kernel at run time, and just like kASan and kCSan, it
is an excellent feature. It has already detected 38 uninitialized variables
in the kernel during my testing, which I have since discreetly fixed.

We use two shadows:
 - "shad", to track uninitialized memory with a bit granularity (1:1).
   Each bit set to 1 in the shad corresponds to one uninitialized bit of
   real kernel memory.
 - "orig", to track the origin of the memory with a 4-byte granularity
   (1:1). Each uint32_t cell in the orig indicates the origin of the
   associated uint32_t of real kernel memory.

The memory consumption of these shadows is consequent, so at least 4GB of
RAM is recommended to run kMSan.

The compiler inserts calls to specific __msan_* functions on each memory
access, to manage both the shad and the orig and detect uninitialized
memory accesses that change the execution flow (like an "if" on an
uninitialized variable).

We mark as uninit several types of memory buffers (stack, pools, kmem,
malloc, uvm_km), and check each buffer passed to copyout, copyoutstr,
bwrite, if_transmit_lock and DMA operations, to detect uninitialized memory
that leaves the system. This allows us to detect kernel info leaks in a way
that is more efficient and also more user-friendly than KLEAK.

Contrary to kASan, kMSan requires comprehensive coverage, ie we cannot
tolerate having one non-instrumented function, because this could cause
false positives. kMSan cannot instrument ASM functions, so I converted
most of them to __asm__ inlines, which kMSan is able to instrument. Those
that remain receive special treatment.

Contrary to kASan again, kMSan uses a TLS, so we must context-switch this
TLS during interrupts. We use different contexts depending on the interrupt
level.

The orig tracks precisely the origin of a buffer. We use a special encoding
for the orig values, and pack together in each uint32_t cell of the orig:
 - a code designating the type of memory (Stack, Pool, etc), and
 - a compressed pointer, which points either (1) to a string containing
   the name of the variable associated with the cell, or (2) to an area
   in the kernel .text section which we resolve to a symbol name + offset.

This encoding allows us not to consume extra memory for associating
information with each cell, and produces a precise output, that can tell
for example the name of an uninitialized variable on the stack, the
function in which it was pushed on the stack, and the function where we
accessed this uninitialized variable.

kMSan is available with LLVM, but not with GCC.

The code is organized in a way that is similar to kASan and kCSan, so it
means that other architectures than amd64 can be supported.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Nov 1 15:11:43 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
Changes since 1.62: +6 -1 lines
Diff to previous 1.62 (unified)

Fix KUBSAN: the kernel size now exceeds the mapping limit, so bump the
limit.

Revision 1.62 / (download) - annotate - [select for diffs], Wed Aug 7 06:23:48 2019 UTC (4 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.61: +2 -1 lines
Diff to previous 1.61 (unified)

Add support for USER_LDT in SVS. This allows us to have both enabled at
the same time.

We allocate an LDT for each CPU in the GDT and map an area for it, in
addition to the default LDT already present. In context switches between
different processes, we choose between the default or the per-cpu LDT
selector: if the user set specific LDT entries, we memcpy them to the
per-cpu LDT and load the per-cpu selector.

Tested by Naveen Narayanan (with Wine on amd64).

Revision 1.61 / (download) - annotate - [select for diffs], Wed May 29 16:54:41 2019 UTC (4 years, 10 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9
Changes since 1.60: +2 -1 lines
Diff to previous 1.60 (unified)

Add PCID support in SVS. This avoids TLB flushes during kernel<->user
transitions, which greatly reduces the performance penalty introduced by
SVS.

We use two ASIDs, 0 (kern) and 1 (user), and use invpcid to flush pages
in both ASIDs.

The read-only machdep.svs.pcid={0,1} sysctl is added, and indicates whether
SVS+PCID is in use.

Revision 1.60 / (download) - annotate - [select for diffs], Sat Mar 9 09:09:56 2019 UTC (5 years ago) by maxv
Branch: MAIN
CVS Tags: isaki-audio2-base, isaki-audio2
Changes since 1.59: +12 -10 lines
Diff to previous 1.59 (unified)

New software PTE bits.

Revision 1.59 / (download) - annotate - [select for diffs], Mon Feb 11 14:59:32 2019 UTC (5 years, 1 month ago) by cherry
Branch: MAIN
Changes since 1.58: +5 -5 lines
Diff to previous 1.58 (unified)

We reorganise definitions for XEN source support as follows:

XEN - common sources required for baseline XEN support.
XENPV - sources required for support of XEN in PV mode.
XENPVHVM - sources required for support for XEN in HVM mode.
XENPVH - sources required for support for XEN in PVH mode.

Revision 1.58 / (download) - annotate - [select for diffs], Mon Nov 19 20:44:51 2018 UTC (5 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126
Changes since 1.57: +2 -1 lines
Diff to previous 1.57 (unified)

Introduce pl_pi, will be used soon.

Revision 1.57 / (download) - annotate - [select for diffs], Mon Nov 19 20:28:01 2018 UTC (5 years, 4 months ago) by maxv
Branch: MAIN
Changes since 1.56: +2 -2 lines
Diff to previous 1.56 (unified)

Rename 'mask' -> 'frame', we will use the real 'mask' soon.

Revision 1.56 / (download) - annotate - [select for diffs], Wed Aug 29 06:28:50 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906
Changes since 1.55: +4 -2 lines
Diff to previous 1.55 (unified)

Remove the constants of the DMAP, they are unused, and move NL4_SLOT_DIRECT
into amd64/.

Revision 1.55 / (download) - annotate - [select for diffs], Mon Aug 20 15:04:51 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.54: +7 -1 lines
Diff to previous 1.54 (unified)

Add support for kASan on amd64. Written by me, with some parts inspired
from Siddharth Muralee's initial work. This feature can detect several
kinds of memory bugs, and it's an excellent feature.

It can be enabled by uncommenting these three lines in GENERIC:

	#makeoptions 	KASAN=1		# Kernel Address Sanitizer
	#options 	KASAN
	#no options	SVS

The kernel is compiled without SVS, without DMAP and without PCPU area.
A shadow area is created at boot time, and it can cover the upper 128TB
of the address space. This area is populated gradually as we allocate
memory. With this design the memory consumption is kept at its lowest
level.

The compiler calls the __asan_* functions each time a memory access is
done. We verify whether this access is legal by looking at the shadow
area.

We declare our own special memcpy/memset/etc functions, because the
compiler's builtins don't add the __asan_* instrumentation.

Initially all the mappings are marked as valid. During dynamic
allocations, we add a redzone, which we mark as invalid. Any access on
it will trigger a kASan error message. Additionally, the compiler adds
a redzone on global variables, and we mark these redzones as invalid too.
The illegal-access detection works with a 1-byte granularity.

For now, we cover three areas:

	- global variables
	- kmem_alloc-ated areas
	- malloc-ated areas

More will come, but that's a good start.

Revision 1.54 / (download) - annotate - [select for diffs], Fri Aug 17 14:39:51 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.53: +4 -57 lines
Diff to previous 1.53 (unified)

Remove big outdated comment, remove unused macros, remove XXX that has
nothing to do here, style.

Revision 1.53 / (download) - annotate - [select for diffs], Sun Aug 12 15:31:01 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.52: +10 -1 lines
Diff to previous 1.52 (unified)

More ASLR: randomize the location of the PTE area. The PTE slot is not
created in locore anymore, but a little later; by using the already
entered L4 page, rather than the recursive slot itself (which doesn't
exist yet).

In the prekern we still map the slot - the prekern behaves as an external
locore -, because we need it as part of the randomization/relocation
work. The kernel then removes this slot, and regenerates a randomized
one.

Tested on GENERIC and GENERIC_KASLR, Xen doesn't have it and dom0 still
boots fine.

Revision 1.52 / (download) - annotate - [select for diffs], Sun Aug 12 12:42:53 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (unified)

Move the PTE area from slot 255 to slot 509. I've never understood why we
put it on 255; the "kernel" half of the VM space begins on slot 256, so
if anything, the PTE area should have been above it, not below.

Virtually extend the user slots in slotspace, because we don't want
(randomized) kernel mappings to land on slot 255.

The prekern is updated accordingly.

Tested on GENERIC, GENERIC_KASLR and XEN3_DOM0.

Revision 1.51 / (download) - annotate - [select for diffs], Sun Aug 12 12:23:33 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.50: +2 -1 lines
Diff to previous 1.50 (unified)

Introduce PDIR_SLOT_USERLIM, which indicates the limit of the user slots.
Use it instead of PDIR_SLOT_PTE when we just want to iterate over the
user slots. Also use it in SVS, I had hardcoded 255 because there was no
proper define (which there now is).

Revision 1.50 / (download) - annotate - [select for diffs], Sun Aug 12 10:50:35 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.49: +1 -6 lines
Diff to previous 1.49 (unified)

Randomize the main memory on Xen, same as native. Tested on amd64-dom0.

Revision 1.49 / (download) - annotate - [select for diffs], Sun Aug 12 08:17:50 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.48: +2 -2 lines
Diff to previous 1.48 (unified)

More ASLR: randomize the kernel main memory. VM_MIN_KERNEL_ADDRESS becomes
variable, and its location is chosen at boot time. There is room for
improvement, since for now we ask for an alignment of NBPD_L4.

This is enabled by default in GENERIC, but not in Xen. Tested extensively
on GENERIC and GENERIC_KASLR, XEN3_DOM0 still boots fine.

Revision 1.48 / (download) - annotate - [select for diffs], Fri Jul 27 07:35:09 2018 UTC (5 years, 8 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-0728
Changes since 1.47: +1 -2 lines
Diff to previous 1.47 (unified)

Remove KERN_BASE, unused. It has always been wrong anyway, the value
should have been passed into VA_SIGN_NEG().

Revision 1.47 / (download) - annotate - [select for diffs], Wed Jul 25 11:47:07 2018 UTC (5 years, 8 months ago) by maxv
Branch: MAIN
Changes since 1.46: +1 -7 lines
Diff to previous 1.46 (unified)

Remove NPTECL, unused.

Revision 1.46 / (download) - annotate - [select for diffs], Sat May 19 15:03:26 2018 UTC (5 years, 10 months ago) by jdolecek
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0625, pgoyette-compat-0521
Branch point for: phil-wifi
Changes since 1.45: +15 -1 lines
Diff to previous 1.45 (unified)

add experimental new function uvm_direct_process(), to allow of read/writes
of contents of uvm pages without mapping them into kernel, using
direct map or moral equivalent; pmaps supporting the interface need
to provide pmap_direct_process() and define PMAP_DIRECT

implement the new interface for amd64; I hear alpha and mips might be relatively
easy to add too, but I lack the knowledge

part of resolution for PR kern/53124

Revision 1.45 / (download) - annotate - [select for diffs], Thu Feb 22 13:27:18 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 (unified)

Remove svs_pgg_update(). Instead of manually changing PG_G on each page,
we can disable the global-paging mechanism in %cr4 with CR4_PGE. Do that.

In addition, install CR4_PGE when SVS is disabled manually (via the
sysctl).

Now, doing "sysctl -w machdep.svs_enabled=0" restores the performance
completely, exactly as if SVS hadn't been enabled in the first place.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Feb 22 09:41:06 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
Changes since 1.43: +2 -1 lines
Diff to previous 1.43 (unified)

Improve the SVS initialization.

Declare x86_patch_window_open() and x86_patch_window_close(), and globalify
x86_hotpatch().

Introduce svs_enable() in x86/svs.c, that does the SVS hotpatching.

Change svs_init() to take a bool. This function gets called twice; early
when the system just booted (and nothing is initialized), lately when at
least pmap_kernel has been initialized.

Revision 1.43 / (download) - annotate - [select for diffs], Sun Feb 18 14:07:29 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
Changes since 1.42: +2 -1 lines
Diff to previous 1.42 (unified)

Add svs_enabled, which defaults to 'true' when SVS is compiled (no dynamic
detection yet).

Revision 1.42 / (download) - annotate - [select for diffs], Sun Jan 21 10:59:21 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (unified)

Increase the size of the initial mapping of the kernel. KASLR kernels are
bigger than their GENERIC counterparts, and the limit will soon be hit on
them.

Revision 1.41 / (download) - annotate - [select for diffs], Sun Jan 7 16:10:16 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.40: +5 -1 lines
Diff to previous 1.40 (unified)

Add a new option, SVS (for Separate Virtual Space), that unmaps kernel
pages when running in userland. For now, only the PTE area is unmapped.

Sent on tech-kern@.

Revision 1.40 / (download) - annotate - [select for diffs], Sat Jun 17 08:40:46 2017 UTC (6 years, 9 months ago) by maxv
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (unified)

Increase the kernel heap size from 512GB to 32TB, in such a way that it
is able to map the maximum amount of ram supported twice (16TB x 2).

Revision 1.39 / (download) - annotate - [select for diffs], Fri Nov 11 12:06:31 2016 UTC (7 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, nick-nhusb-base-20170204, nick-nhusb-base-20161204, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Changes since 1.38: +3 -14 lines
Diff to previous 1.38 (unified)

Remove useless values, and explain where some others come from

Revision 1.38 / (download) - annotate - [select for diffs], Fri Jul 22 14:08:33 2016 UTC (7 years, 8 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161004, localcount-20160914
Changes since 1.37: +1 -2 lines
Diff to previous 1.37 (unified)

Remove pmap_prealloc_lowmem_ptps on amd64. This function creates levels in
the page tree so that the first 2MB of virtual memory can be kentered in
L1.

Strictly speaking, the kernel should never kenter a virtual page below
VM_MIN_KERNEL_ADDRESS, because then it wouldn't be available in userland.
It used to need the first 2MB in order to map the CPU trampoline and the
initial VAs used by the bootstrap code. Now, the CPU trampoline VA is
allocated with uvm_km_alloc and the VAs used by the bootstrap code are
allocated with pmap_bootstrap_valloc, and in either case the resulting VA
is above VM_MIN_KERNEL_ADDRESS.

The low levels in the page tree are therefore unused. By removing this
function, we are making sure no one will be tempted to map an area below
VM_MIN_KERNEL_ADDRESS in kernel mode, and particularly, we are making sure
NULL cannot be kentered.

In short, there is no way to map NULL in kernel mode anymore.

Revision 1.37 / (download) - annotate - [select for diffs], Sat May 21 07:00:18 2016 UTC (7 years, 10 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-localcount-base, nick-nhusb-base-20160907, nick-nhusb-base-20160529
Branch point for: pgoyette-localcount
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (unified)

Explain where this value comes from.

Revision 1.36 / (download) - annotate - [select for diffs], Sat May 14 12:48:31 2016 UTC (7 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.35: +10 -11 lines
Diff to previous 1.35 (unified)

KNF so it appears aligned on NXR, and fix a comment.

Revision 1.35 / (download) - annotate - [select for diffs], Fri Jan 9 01:08:49 2015 UTC (9 years, 2 months ago) by riastradh
Branch: MAIN
CVS Tags: nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406
Changes since 1.34: +2 -2 lines
Diff to previous 1.34 (unified)

Bump amd64 module map size to 32 MB.

For lack of anything better to do, after no progress in discussion on
the matter:

https://mail-index.netbsd.org/port-amd64/2014/08/22/msg002108.html

Needed in order to load the (solaris module needed by) dtrace module.

Revision 1.34 / (download) - annotate - [select for diffs], Sat Jun 30 22:50:36 2012 UTC (11 years, 8 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, nick-nhusb-base, netbsd-7-base, khorben-n900, agc-symver-base, agc-symver
Branch point for: tls-maxphys, nick-nhusb, netbsd-7
Changes since 1.33: +2 -1 lines
Diff to previous 1.33 (unified)

Extend the xpmap API, as described in [1]. This change is mechanical and
avoids exposing the MD phys_to_machine/machine_to_phys tables directly.
Added:

- xpmap_ptom handles PFN (pseudo physical) to MFN (machine frame number)
translations, and is under control of the domain.
- xpmap_mtop is its counterpart (MFN to PFN), and is under control of
hypervisor.

xpmap_ptom_map()      map a pseudo-phys address to a machine address
xpmap_ptom_unmap()    unmap a pseudo-phys address (invalidation)
xpmap_ptom_isvalid()  check for pseudo-phys address validity

The parameters are physical/machine addresses, like bus_dma/bus_space(9).
As x86 MFNs are tracked by u_long (Xen's choice) while machine addresses
can be 64 bits entities (PAE), use ptoa() to avoid truncation when bit
shifting by PAGE_SHIFT.

I kept the same namespace (xpmap_) to avoid code churn.

[1] http://mail-index.netbsd.org/port-xen/2009/05/09/msg004951.html

XXX will document ptoa/atop/trunc_page separately.

Revision 1.33 / (download) - annotate - [select for diffs], Mon Jun 11 15:18:26 2012 UTC (11 years, 9 months ago) by chs
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (unified)

allow more space for modules.

Revision 1.32 / (download) - annotate - [select for diffs], Sun Feb 19 10:39:06 2012 UTC (12 years, 1 month ago) by cherry
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base10
Changes since 1.31: +7 -24 lines
Diff to previous 1.31 (unified)

Removing remaining references to the alternate PTE space. Modify documentation appropriately

Revision 1.31 / (download) - annotate - [select for diffs], Thu Jan 19 22:00:56 2012 UTC (12 years, 2 months ago) by bouyer
Branch: MAIN
CVS Tags: netbsd-6-base, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base2
Branch point for: netbsd-6
Changes since 1.30: +3 -3 lines
Diff to previous 1.30 (unified)

pmap_pte_set() is not supposed to be atomic, so only raise IPL, no need to
take pte_lock

Revision 1.30 / (download) - annotate - [select for diffs], Sun Jan 15 16:48:31 2012 UTC (12 years, 2 months ago) by cherry
Branch: MAIN
Changes since 1.29: +1 -2 lines
Diff to previous 1.29 (unified)

for xen on amd64 PDP_BASE points to the per-cpu ci->ci_kpm_pdir copy of *pmap_kernel()*'s L4 pdir, which is an alias for ci->ci_kpm_pdir. This is unlike PAE, where PDP_BASE points to the per-pmap pm_pdir consisting of 4 pages, the last of which is the "shadow". This "shadow" is not used directly in an active pmap, since it duplicates the kernel space and, for PAE, xen dissallows multiple cpus pointing to the same L3[3] page. Therefore, we use a per-cpu copy of the pmap_kernel() pdir's L3[3] page, ci->ci_pae_l3_pdir[3], while L3[0-2] point to the original pmap's pm_pdir[0 - 2]. Thus the "shadow" pdir only exists on i386 PAE. Note that on PAE, the recursive PDIR_SLOT_PTE is not per-cpu, and therefore cannot be made to point to per-cpu pdirs via (L4_BASE + PDIR_SLOT_PTE), unlike xen x86_64 where this is exactly the case.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Jan 9 13:04:13 2012 UTC (12 years, 2 months ago) by cherry
Branch: MAIN
Changes since 1.28: +19 -14 lines
Diff to previous 1.28 (unified)

Make cross-cpu pte access MP safe.
XXX: review cases of use of pmap_set_pte() vs direct use of xpq_queue_pte_update()

Revision 1.28 / (download) - annotate - [select for diffs], Sun Nov 6 15:18:18 2011 UTC (12 years, 4 months ago) by cherry
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: jmcneill-usbmp
Changes since 1.27: +3 -2 lines
Diff to previous 1.27 (unified)

[merging from cherry-xenmp] make pmap_kernel() shadow PMD per-cpu and MP aware.

Revision 1.27 / (download) - annotate - [select for diffs], Sun Nov 6 11:40:46 2011 UTC (12 years, 4 months ago) by cherry
Branch: MAIN
Changes since 1.26: +1 -13 lines
Diff to previous 1.26 (unified)

[merging from cherry-xenmp] Make the xen MMU op queue locking api private. Implement per-cpu queues.

Revision 1.26 / (download) - annotate - [select for diffs], Sat Aug 27 16:23:44 2011 UTC (12 years, 7 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base
Branch point for: yamt-pagecache
Changes since 1.25: +2 -1 lines
Diff to previous 1.25 (unified)

Implement sparse dumps for amd64 (copied from i386). Disabled for now via
sysctl.
XXX: most of the code can be merged.

Revision 1.25 / (download) - annotate - [select for diffs], Sat Aug 13 12:09:38 2011 UTC (12 years, 7 months ago) by cherry
Branch: MAIN
CVS Tags: jym-xensuspend-nbase, jym-xensuspend-base
Changes since 1.24: +14 -1 lines
Diff to previous 1.24 (unified)

Add locking around ops to the hypervisor MMU "queue".

Revision 1.24 / (download) - annotate - [select for diffs], Tue Feb 1 20:09:08 2011 UTC (13 years, 1 month ago) by chuck
Branch: MAIN
CVS Tags: uebayasi-xip-base7, rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: cherry-xenmp
Changes since 1.23: +1 -8 lines
Diff to previous 1.23 (unified)

udpate license clauses on my code to match the new-style BSD licenses.
based on diff that rmind@ sent me.

no functional change with this commit.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Nov 14 13:33:20 2010 UTC (13 years, 4 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base6, matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.22: +13 -2 lines
Diff to previous 1.22 (unified)

Move struct vm_page_md definition from vmparam.h to pmap.h, because
it's used only by pmap.  vmparam.h has definitions for wider
audience.

All GENERIC kernels build tested, except ia64.

powerpc/include/booke/vmparam.h has one too, but it has no pmap.h,
so it's left as is.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Oct 26 00:08:15 2008 UTC (15 years, 5 months ago) by mrg
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, nick-hppapmap, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-premerge-20091211, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, jymxensuspend-base, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: uebayasi-xip, rmind-uvmplock, jym-xensuspend
Changes since 1.21: +9 -1 lines
Diff to previous 1.21 (unified)

put the contents of these header files around #ifdef __x86_64__, and
#include the <i386/foo.h> in the #else clause, making these files
largely bit-size independant.

Revision 1.21 / (download) - annotate - [select for diffs], Wed Jan 23 19:46:43 2008 UTC (16 years, 2 months ago) by bouyer
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-mips64-base2, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-nbase, hpcarm-cleanup-base, haad-dm-base1, ad-socklock-base1
Branch point for: yamt-nfs-mp, mjf-devfs2, haad-dm
Changes since 1.20: +6 -8 lines
Diff to previous 1.20 (unified)

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.20 / (download) - annotate - [select for diffs], Sun Jan 20 18:41:47 2008 UTC (16 years, 2 months ago) by bouyer
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (unified)

Make first argument of Xen's pmap_pte_cas() volatile, fix a warning
building pmap.c.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Jan 13 07:05:42 2008 UTC (16 years, 2 months ago) by yamt
Branch: MAIN
CVS Tags: bouyer-xeni386-base
Changes since 1.18: +16 -1 lines
Diff to previous 1.18 (unified)

add pmap_pte_cas.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Jan 3 19:30:10 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (unified)

Bump NKL2_KIMG_ENTRIES to allow for 20MB of kernel.

Well past time for an in-kernel linker...

Revision 1.17 / (download) - annotate - [select for diffs], Wed Nov 28 16:44:46 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.16: +1 -5 lines
Diff to previous 1.16 (unified)

Remove remaining CPUCLASS_386 tests.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Nov 28 16:28:43 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.15: +9 -5 lines
Diff to previous 1.15 (unified)

Use the new atomic ops.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Nov 22 16:16:45 2007 UTC (16 years, 4 months ago) by bouyer
Branch: MAIN
Changes since 1.14: +83 -3 lines
Diff to previous 1.14 (unified)

Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.

Revision 1.14 / (download) - annotate - [select for diffs], Thu Oct 18 15:28:34 2007 UTC (16 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: mjf-devfs
Changes since 1.13: +6 -366 lines
Diff to previous 1.13 (unified)

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.13 / (download) - annotate - [select for diffs], Wed Oct 17 19:53:04 2007 UTC (16 years, 5 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4
Changes since 1.12: +1 -1 lines
Diff to previous 1.12 (unified)

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Sep 27 01:10:11 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, yamt-x86pmap-base2, vmlocking-base, ppcoea-renovation-base
Branch point for: bouyer-xenamd64
Changes since 1.11: +4 -2 lines
Diff to previous 1.11 (unified)

Only include machine/cpufunc.h if _KERNEL.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Aug 29 23:38:03 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base, nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Changes since 1.10: +24 -5 lines
Diff to previous 1.10 (unified)

Merge most x86 changes from the vmlocking branch, except the threaded soft
interrupt stuff. This is mostly comprised of changes to the pmap modules to
work on multiprocessor systems without kernel_lock, and changes to speed up
tlb shootdowns.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:37 2007 UTC (17 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, reinoud-bufcleanup, nick-csl-alignment-base, mjf-ufs-trans-base, mjf-ufs-trans, matt-mips64-base, matt-mips64, hpcarm-cleanup, ad-audiomp-base, ad-audiomp
Branch point for: vmlocking, thorpej-atomic, ppcoea-renovation, nick-csl-alignment, matt-armv6, jmcneill-pm
Changes since 1.9: +4 -4 lines
Diff to previous 1.9 (unified)

Replace the Mach-derived boolean_t type with the C99 bool type.  A
future commit will replace use of TRUE and FALSE with true and false.

Revision 1.9 / (download) - annotate - [select for diffs], Thu Feb 16 20:17:13 2006 UTC (18 years, 1 month ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-splraiseipl, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, yamt-pdpolicy, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, post-newlock2-merge, peter-altq-base, peter-altq, newlock2-nbase, newlock2-base, newlock2, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-idlelwp
Changes since 1.8: +8 -8 lines
Diff to previous 1.8 (unified)

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.

Revision 1.8 / (download) - annotate - [select for diffs], Sat Dec 24 20:06:47 2005 UTC (18 years, 3 months ago) by perry
Branch: MAIN
Branch point for: yamt-uio_vmspace, simonb-timecounters, rpaulo-netinet-merge-pcb
Changes since 1.7: +8 -8 lines
Diff to previous 1.7 (unified)

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.

Revision 1.7 / (download) - annotate - [select for diffs], Sun Dec 11 12:16:25 2005 UTC (18 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (unified)

merge ktrace-lwp.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jul 4 11:50:17 2005 UTC (18 years, 8 months ago) by blymn
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr, ktrace-lwp-base
Branch point for: yamt-lazymbuf
Changes since 1.5: +1 -2 lines
Diff to previous 1.5 (unified)

Remove bogus external declaration for pdes, it appears not to be needed.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Aug 8 09:47:05 2004 UTC (19 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, yamt-km, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, kent-audio2-base, kent-audio2, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (unified)

kvtopte: use a correct base addr for LARGEPAGES.

Revision 1.4 / (download) - annotate - [select for diffs], Sun Aug 8 09:40:48 2004 UTC (19 years, 7 months ago) by yamt
Branch: MAIN
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (unified)

correct VAs in a comment.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Jun 15 11:27:38 2004 UTC (19 years, 9 months ago) by fvdl
Branch: MAIN
Changes since 1.2: +2 -1 lines
Diff to previous 1.2 (unified)

Add a prototype for pmap_changeprot_local, a function that changes
protection for a page and doesn't care about TLB shootdowns.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Jun 4 07:42:34 2004 UTC (19 years, 9 months ago) by sekiya
Branch: MAIN
Changes since 1.1: +7 -14 lines
Diff to previous 1.1 (unified)

Use the SPLAY_* macros.  Copied from the i386 pmap, okay'ed by fvdl@

Revision 1.1 / (download) - annotate - [select for diffs], Sat Apr 26 18:39:46 2003 UTC (20 years, 11 months ago) by fvdl
Branch: MAIN
CVS Tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Branch point for: ktrace-lwp

Rename the x86_64 port to amd64, as this is the actual name used for
the processor family now. x86_64 is kept as the MACHINE_ARCH value,
since it's already widely used (by e.g. the toolchain, etc), and
by other operating systems.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>