Go to file
thorpej 13ce49a3d0 - Undo part of rev 1.264; go back to not acquiring the pmap lock in
pmap_activate().  As of rev 1.211, the pmap::pm_lev1map field is
  stable across the life of the pmap, and so the conditino that
  the change in 1.264 was intended to avoid would not have happened
  anyway.
- Explicitly use __cacheline_aligned / COHERENCY_UNIT rather than 64
  in a couple of places.
- Update comments around the lev1map lifecycle, and add some assertions
  to enforce the assumptions being described.
- Remove some dubious DEBUG tests that are not MP-safe.
- Chage some long-form #ifdef DIAGNOSTIC checks / panics to KASSERTs.
- Remove the PMAP_ACTIVATE() macro because it's no longer used anywhere
  except for pmap_activate().  Just open-code the equivalent there.
- In pmap_activate(), only perform the SWPCTX if either the PTBR or the
  ASN are different than what the PCB already has.  Also assert that
  preemption is disabled and that the specified lwp is curlwp.
- In pmap_deactivate(), add similar assertions, and add a comment explaining
  why a SWPCTX to get off of the deactivated lev1map is not necessaray.
- Refactor some duplicated code in pmap_growkernel() into a new
  pmap_kptpage_alloc() function.
- In pmap_growkernel(), assert that any user pmap published on the all-pmaps
  list does not reference the kernel_lev1map.
- In pmap_asn_alloc(), get out early if we're called with the kernel pmap,
  since all kernel mappings are ASM.  Remove bogus assertions around the
  value of pmap::pm_lev1map and the current ASN, and simply assert that
  pmap::pm_lev1map is never kernel_lev1map.  Also assert that preemption
  is disabled, since we're manipulating per-cpu data structures.
- Convert the "too much uptime" panic to a simple KASSERT, and update the
  comment to reflect that we're only subject to the longer 75 billion year
  ASN generation overflow (because CPUs that don't implement ASNs never go
  through this code path).
2020-08-16 20:04:36 +00:00
bin Use the right size for several calloc calls. 2020-08-09 00:53:38 +00:00
common Part I of ad@'s performance improvements for aarch64 2020-08-12 12:59:57 +00:00
compat
crypto move $VERSION from Makefile.inc into the single Makefile that uses it. 2020-07-23 07:53:35 +00:00
dist/pf Externalize variables owned logically by pf_ruleset.c 2020-04-22 23:40:40 +00:00
distrib make(1): move tests for the :M modifier into separate files 2020-08-16 20:03:52 +00:00
doc note COMPAT_LINUX is disabled by default now 2020-08-16 10:31:40 +00:00
etc Use sysctl -n hw.machine_arch so this works on e.g. aarch64 2020-08-15 14:47:28 +00:00
external PR/55568: Andreas Gustafsson: Set the error when failing to create a temp file. 2020-08-14 14:42:44 +00:00
extsrc
games robots: Use arc4random_uniform for better uniform distribution 2020-07-26 15:38:22 +00:00
include nameser_compat.h: correct preprocessor error syntax 2020-06-28 02:16:19 +00:00
lib New system call getrandom() compatible with Linux and others. 2020-08-14 00:53:15 +00:00
libexec Add -DNO_BLOCKLIST_SUPPORT also to small/Makefile. 2020-07-13 10:35:17 +00:00
regress citrus SUBDIR is gone 2020-06-27 11:06:43 +00:00
rescue smb is no more. 2020-04-04 17:57:16 +00:00
sbin Find the if a device points to an active filesystem by looking at the mount 2020-08-08 11:44:55 +00:00
share Be explcit that all calls to pmap_activate() and pmap_deactivate() 2020-08-16 16:48:08 +00:00
sys - Undo part of rev 1.264; go back to not acquiring the pmap lock in 2020-08-16 20:04:36 +00:00
tests Restrict the NEON code to v7hf - the softfloat toolchain does not like 2020-08-16 15:52:14 +00:00
tools set MODULE to ${EXTERNAL_GCC_SUBDIR} so this actually works.. 2020-08-13 10:57:53 +00:00
usr.bin make(1): move tests for the :M modifier into separate files 2020-08-16 20:03:52 +00:00
usr.sbin fstyp: Fix incorrect pfs_type test for HAMMER2 inode 2020-08-14 18:35:57 +00:00
build.sh make(1): remove references to the removed lst.lib 2020-07-26 09:17:24 +00:00
BUILDING
Makefile automatically remove old debug files for modules. 2020-05-15 16:34:44 +00:00
Makefile.inc
README.md
UPDATING 20200811: 2020-08-12 06:48:50 +00:00

NetBSD

NetBSD is a free, fast, secure, and highly portable Unix-like Open Source operating system. It is available for a wide range of platforms, from large-scale servers and powerful desktop systems to handheld and embedded devices.

Building

You can cross-build NetBSD from most UNIX-like operating systems. To build for amd64 (x86_64), in the src directory:

./build.sh -U -u -j4 -m amd64 -O ~/obj release

Additional build information available in the BUILDING file.

Binaries

Testing

On a running NetBSD system:

cd /usr/tests; atf-run | atf-report

Troubleshooting

Latest sources

To fetch the main CVS repository:

cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P src

To work in the Git mirror, which is updated every few hours from CVS:

git clone https://github.com/NetBSD/src.git