The NetBSD Project

CVS log for src/sys/arch/amd64/amd64/cpufunc.S

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.67 / (download) - annotate - [select for diffs], Fri Nov 3 09:07:56 2023 UTC (4 months, 3 weeks ago) by chs
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.66: +14 -1 lines
Diff to previous 1.66 (colored) to selected 1.3.2.2 (colored)

dtrace: add support for SMAP

Add support in dtrace for SMAP, so that actions like copyinstr() work.
It would be better if dtrace could use the SMAP_* hotpatch macros directly,
but the hotpatching code does not currently operate on kernel modules,
so we'll use some tiny functions in the base kernel for now.

Revision 1.66 / (download) - annotate - [select for diffs], Wed Oct 4 20:28:05 2023 UTC (5 months, 3 weeks ago) by ad
Branch: MAIN
Changes since 1.65: +8 -6 lines
Diff to previous 1.65 (colored) to selected 1.3.2.2 (colored)

Eliminate l->l_ncsw and l->l_nivcsw.  From memory think they were added
before we had per-LWP struct rusage; the same is now tracked there.

Revision 1.64.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:37:46 2020 UTC (3 years, 3 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.64: +11 -1 lines
Diff to previous 1.64 (colored) next main 1.65 (colored) to selected 1.3.2.2 (colored)

Sync w/ HEAD.

Revision 1.65 / (download) - annotate - [select for diffs], Mon Nov 30 17:02:27 2020 UTC (3 years, 3 months ago) by bouyer
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-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, 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, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.64: +11 -1 lines
Diff to previous 1.64 (colored) to selected 1.3.2.2 (colored)

Introduce smap_enable()/smap_disable() functions, to be used from
C code.

Revision 1.64 / (download) - annotate - [select for diffs], Sun Jul 19 07:35:08 2020 UTC (3 years, 8 months ago) by maxv
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.63: +7 -4 lines
Diff to previous 1.63 (colored) to selected 1.3.2.2 (colored)

Revert most of ad's movs/stos change. Instead do a lot simpler: declare
svs_quad_copy() used by SVS only, with no need for instrumentation, because
SVS is disabled when sanitizers are on.

Revision 1.63 / (download) - annotate - [select for diffs], Wed Jun 24 18:09:37 2020 UTC (3 years, 9 months ago) by maxv
Branch: MAIN
Changes since 1.62: +1 -10 lines
Diff to previous 1.62 (colored) to selected 1.3.2.2 (colored)

remove unused x86_stos

Revision 1.62 / (download) - annotate - [select for diffs], Mon Jun 15 20:27:30 2020 UTC (3 years, 9 months ago) by riastradh
Branch: MAIN
Changes since 1.61: +2 -2 lines
Diff to previous 1.61 (colored) to selected 1.3.2.2 (colored)

Nix trailing whitespace.

Revision 1.61 / (download) - annotate - [select for diffs], Mon Jun 15 09:09:23 2020 UTC (3 years, 9 months ago) by msaitoh
Branch: MAIN
Changes since 1.60: +55 -31 lines
Diff to previous 1.60 (colored) to selected 1.3.2.2 (colored)

Serialize rdtsc using with lfence, mfence or cpuid to read TSC more precisely.

 x86/x86/tsc.c rev. 1.67 reduced cache problem and got big improvement, but it
 still has room. I measured the effect of lfence, mfence, cpuid and rdtscp.
The impact to TSC skew and/or drift is:

	AMD:   mfence > rdtscp > cpuid > lfence-serialize > lfence = nomodify
	Intel: lfence > rdtscp > cpuid > nomodify

So, mfence is the best on AMD and lfence is the best on Intel. If it has no
SSE2, we can use cpuid.

NOTE:
  - An AMD's document says DE_CFG_LFENCE_SERIALIZE bit can be used for
    serializing, but it's not so good.
  - On Intel i386(not amd64), it seems the improvement is very little.
  - rdtscp instruct can be used as serializing instruction + rdtsc, but
    it's not good as [lm]fence. Both Intel and AMD's document say that
    the latency of rdtscp is bigger than rdtsc, so I suspect the difference
    of the result comes from it.

Revision 1.60 / (download) - annotate - [select for diffs], Sat Jun 13 23:58:51 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.59: +5 -4 lines
Diff to previous 1.59 (colored) to selected 1.3.2.2 (colored)

Print a rate limited warning if the TSC timecounter goes backwards from the
viewpoint of any single LWP.

Revision 1.59 / (download) - annotate - [select for diffs], Mon Jun 1 22:58:06 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.58: +3 -1 lines
Diff to previous 1.58 (colored) to selected 1.3.2.2 (colored)

Reported-by: syzbot+6dd5a230d19f0cbc7814@syzkaller.appspotmail.com

Instrument STOS/MOVS for KMSAN to unbreak it.

Revision 1.58 / (download) - annotate - [select for diffs], Wed May 27 20:48:42 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.57: +2 -8 lines
Diff to previous 1.57 (colored) to selected 1.3.2.2 (colored)

- mismatched END pointed out by maxv@
- ditch the frame, tracer should be able to deal without it in leaf on x86_64

Revision 1.57 / (download) - annotate - [select for diffs], Wed May 27 19:33:40 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.56: +22 -1 lines
Diff to previous 1.56 (colored) to selected 1.3.2.2 (colored)

- Add a couple of wrapper functions around STOS and MOVS and use them to zero
  and copy PTEs in preference to memset()/memcpy().

- Remove related SSE / pageidlezero stuff.

Revision 1.56 / (download) - annotate - [select for diffs], Wed May 20 18:52:48 2020 UTC (3 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.55: +3 -2 lines
Diff to previous 1.55 (colored) to selected 1.3.2.2 (colored)

this is kmsan

Revision 1.55 / (download) - annotate - [select for diffs], Wed May 20 18:39:25 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.54: +20 -7 lines
Diff to previous 1.54 (colored) to selected 1.3.2.2 (colored)

Deal with KMSAN fussiness.  Pointed out by msaitoh@.

Revision 1.54 / (download) - annotate - [select for diffs], Tue May 19 21:54:10 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.53: +20 -20 lines
Diff to previous 1.53 (colored) to selected 1.3.2.2 (colored)

xen needs the TSC funcs too

Revision 1.53 / (download) - annotate - [select for diffs], Tue May 19 21:40:55 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.52: +8 -20 lines
Diff to previous 1.52 (colored) to selected 1.3.2.2 (colored)

Make cpu_counter(), cpu_counter32() and tsc_get_timecount() into a single
preemption-safe routine.

Revision 1.52 / (download) - annotate - [select for diffs], Fri May 8 21:58:03 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.51: +2 -2 lines
Diff to previous 1.51 (colored) to selected 1.3.2.2 (colored)

cpu_counter: only need to clear %eax (zero extends).

Revision 1.51 / (download) - annotate - [select for diffs], Sat May 2 17:14:01 2020 UTC (3 years, 10 months ago) by bouyer
Branch: MAIN
Changes since 1.50: +39 -39 lines
Diff to previous 1.50 (colored) to selected 1.3.2.2 (colored)

Move x86_hotpatch() in !XENPV section. Fixes XEN3* builds.

Revision 1.50 / (download) - annotate - [select for diffs], Sat May 2 11:37:17 2020 UTC (3 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.49: +39 -1 lines
Diff to previous 1.49 (colored) to selected 1.3.2.2 (colored)

Modify the hotpatch mechanism, in order to make it much less ROP-friendly.

Currently x86_patch_window_open is a big problem, because it is a perfect
function to inject/modify executable code with ROP.

 - Remove x86_patch_window_open(), along with its x86_patch_window_close()
   counterpart.
 - Introduce a read-only link-set of hotpatch descriptor structures,
   which reference a maximum of two read-only hotpatch sources.
 - Modify x86_hotpatch() to open a window and call the new
   x86_hotpatch_apply() function in a hard-coded manner.
 - Modify x86_hotpatch() to take a name and a selector, and have
   x86_hotpatch_apply() resolve the descriptor from the name and the
   source from the selector, before hotpatching.
 - Move the error handling in a separate x86_hotpatch_cleanup() function,
   that gets called after we closed the window.

The resulting implementation is a bit complex and non-obvious. But it
gains the following properties: the code executed in the hotpatch window
is strictly hard-coded (no callback and no possibility to execute your own
code in the window) and the pointers this code accesses are strictly
read-only (no possibility to forge pointers to hotpatch an area that was
not designated as hotpatchable at compile-time, and no possibility to
choose what bytes to write other than the maximum of two read-only
templates that were designated as valid for the given destination at
compile-time).

With current CPUs this slightly improves a situation that is already
pretty bad by definition on x86. Assuming CET however, this change closes
a big hole and is kinda great.

The only ~problem there is, is that dtrace-fbt tries to hotpatch random
places with random bytes, and there is just no way to make it safe.
However dtrace is only in a module, that is rarely used and never compiled
into the kernel, so it's not a big problem; add a shitty & vulnerable
independent hotpatch window in it, and leave big XXXs. It looks like fbt
is going to collapse soon anyway.

Revision 1.31.4.3 / (download) - annotate - [select for diffs], Mon Apr 13 08:03:30 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.31.4.2: +61 -233 lines
Diff to previous 1.31.4.2 (colored) to branchpoint 1.31 (colored) next main 1.32 (colored) to selected 1.3.2.2 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.31.4.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:25 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.31.4.1: +1 -6 lines
Diff to previous 1.31.4.1 (colored) to branchpoint 1.31 (colored) to selected 1.3.2.2 (colored)

Merge changes from current as of 20200406

Revision 1.49 / (download) - annotate - [select for diffs], Thu Nov 21 19:23:58 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.48: +1 -6 lines
Diff to previous 1.48 (colored) to selected 1.3.2.2 (colored)

mi_userret(): take care of calling preempt(), set spc_curpriority directly,
and remove MD code that does the same.

Revision 1.48 / (download) - annotate - [select for diffs], Fri Nov 15 09:03:26 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.47: +1 -52 lines
Diff to previous 1.47 (colored) to selected 1.3.2.2 (colored)

Remove the ins* and outs* functions. Not sanitizer-friendly, and unused
anyway.

Revision 1.47 / (download) - annotate - [select for diffs], Thu Nov 14 16:23:52 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
Changes since 1.46: +19 -1 lines
Diff to previous 1.46 (colored) to selected 1.3.2.2 (colored)

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.46 / (download) - annotate - [select for diffs], Wed Oct 30 17:06:57 2019 UTC (4 years, 4 months ago) by maxv
Branch: MAIN
Changes since 1.45: +1 -45 lines
Diff to previous 1.45 (colored) to selected 1.3.2.2 (colored)

More inlined ASM.

Revision 1.45 / (download) - annotate - [select for diffs], Sat Sep 7 18:56:01 2019 UTC (4 years, 6 months ago) by maxv
Branch: MAIN
Changes since 1.44: +45 -81 lines
Diff to previous 1.44 (colored) to selected 1.3.2.2 (colored)

Merge amd64func.S into cpufunc.S, and clean up.

Revision 1.44 / (download) - annotate - [select for diffs], Sat Sep 7 18:33:16 2019 UTC (4 years, 6 months ago) by maxv
Branch: MAIN
Changes since 1.43: +1 -21 lines
Diff to previous 1.43 (colored) to selected 1.3.2.2 (colored)

Convert rdmsr_locked and wrmsr_locked to inlines.

Revision 1.43 / (download) - annotate - [select for diffs], Fri Jul 5 17:08:55 2019 UTC (4 years, 8 months ago) by maxv
Branch: MAIN
CVS Tags: 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.42: +1 -26 lines
Diff to previous 1.42 (colored) to selected 1.3.2.2 (colored)

More inlines, prerequisites for future changes. Also, remove fngetsw(),
which was a duplicate of fnstsw().

Revision 1.42 / (download) - annotate - [select for diffs], Wed Jul 3 17:24:37 2019 UTC (4 years, 8 months ago) by maxv
Branch: MAIN
Changes since 1.41: +1 -15 lines
Diff to previous 1.41 (colored) to selected 1.3.2.2 (colored)

Inline x86_cpuid2(), prerequisite for future changes. Also, add "memory"
on certain other inlines, to make sure GCC does not reorder.

Revision 1.31.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:46 2019 UTC (4 years, 9 months ago) by christos
Branch: phil-wifi
Changes since 1.31: +34 -233 lines
Diff to previous 1.31 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.41 / (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
Changes since 1.40: +27 -4 lines
Diff to previous 1.40 (colored) to selected 1.3.2.2 (colored)

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.40 / (download) - annotate - [select for diffs], Sun May 19 08:17:02 2019 UTC (4 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.39: +1 -6 lines
Diff to previous 1.39 (colored) to selected 1.3.2.2 (colored)

Misc changes in the x86 FPU code. Reduces a future diff. No real functional
change.

Revision 1.39 / (download) - annotate - [select for diffs], Sat May 4 07:20:22 2019 UTC (4 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.38: +1 -151 lines
Diff to previous 1.38 (colored) to selected 1.3.2.2 (colored)

More inlined ASM. While here switch to proper types.

Revision 1.38 / (download) - annotate - [select for diffs], Wed May 1 15:17:49 2019 UTC (4 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.37: +1 -49 lines
Diff to previous 1.37 (colored) to selected 1.3.2.2 (colored)

Start converting the x86 CPU functions to inlined ASM. Matters for NVMM,
where some are invoked millions of times.

Revision 1.37 / (download) - annotate - [select for diffs], Wed May 1 14:29:15 2019 UTC (4 years, 10 months ago) by maxv
Branch: MAIN
Changes since 1.36: +1 -28 lines
Diff to previous 1.36 (colored) to selected 1.3.2.2 (colored)

Remove unused functions and reorder a little.

Revision 1.36 / (download) - annotate - [select for diffs], Mon Feb 11 14:59:32 2019 UTC (5 years, 1 month ago) by cherry
Branch: MAIN
CVS Tags: isaki-audio2-base, isaki-audio2
Changes since 1.35: +7 -7 lines
Diff to previous 1.35 (colored) to selected 1.3.2.2 (colored)

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.31.2.3 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:13 2019 UTC (5 years, 2 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.31.2.2: +49 -84 lines
Diff to previous 1.31.2.2 (colored) to branchpoint 1.31 (colored) next main 1.32 (colored) to selected 1.3.2.2 (colored)

Synch with HEAD

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jan 6 14:35:31 2019 UTC (5 years, 2 months ago) by cherry
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Changes since 1.34: +48 -83 lines
Diff to previous 1.34 (colored) to selected 1.3.2.2 (colored)

Rollback http://mail-index.netbsd.org/source-changes/2018/12/22/msg101629.html

This change breaks module loading due to weak alias being unsupported
in the kernel module linker.

Requested by maxv@ and others as it affects their work.

No immediate decision on a replacement method is available, but other options
suggested include pre-processing, conditional compilation (#ifdef etc) and other
source level methods to avoid linktime decision making.

Revision 1.31.2.2 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:31 2018 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.31.2.1: +84 -49 lines
Diff to previous 1.31.2.1 (colored) to branchpoint 1.31 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD, resolve a few conflicts

Revision 1.34 / (download) - annotate - [select for diffs], Sat Dec 22 21:27:22 2018 UTC (5 years, 3 months ago) by cherry
Branch: MAIN
CVS Tags: pgoyette-compat-1226
Changes since 1.33: +84 -49 lines
Diff to previous 1.33 (colored) to selected 1.3.2.2 (colored)

Introduce a weak alias method of exporting different implementations
of the same API.

For eg: the amd64 native implementation of invlpg() now becomes
amd64_invlpg() with a weak symbol export of invlpg(), while the XEN
implementation becomes xen_invlpg(), also weakly exported as invlpg()

Note that linking in both together without having an override function
named invlpg() would be a mistake, as we have limited control over
which of the two options would emerge as the finally exported invlpg()
resulting in a potential situation where the wrong function is finally
exported. This change avoids this situation.

We should however include an override function invlpg() in that case,
such that it is able to then pass on the call to the appropriate
backing function (amd64_invlpg() in the case of native, and
xen_invlpg() in the case of under XEN virtualisation) at runtime.

This change does not introduce such a function and therefore does not
alter builds to include native as well as XEN implementations in the
same binary. This will be done later, with the introduction of XEN
PVHVM mode, where precisely such a runtime switch is required.

There are no operational changes introduced by this change.

Revision 1.31.2.1 / (download) - annotate - [select for diffs], Sat Jul 28 04:37:26 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.31: +11 -3 lines
Diff to previous 1.31 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jul 21 06:09:13 2018 UTC (5 years, 8 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728
Changes since 1.32: +9 -1 lines
Diff to previous 1.32 (colored) to selected 1.3.2.2 (colored)

More ASLR. Randomize the location of the direct map at boot time on amd64.
This doesn't need "options KASLR" and works on GENERIC. Will soon be
enabled by default.

The location of the areas is abstracted in a slotspace structure. Ideally
we should always use this structure when touching the L4 slots, instead of
the current cocktail of global variables and constants.

machdep initializes the structure with the default values, and we then
randomize its dmap entry. Ideally machdep should randomize everything at
once, but in the case of the direct map its size is determined a little
later in the boot procedure, so we're forced to randomize its location
later too.

Revision 1.32 / (download) - annotate - [select for diffs], Sat Jul 14 14:29:40 2018 UTC (5 years, 8 months ago) by maxv
Branch: MAIN
Changes since 1.31: +3 -3 lines
Diff to previous 1.31 (colored) to selected 1.3.2.2 (colored)

Drop NENTRY() from the x86 kernels, use ENTRY(). With PMCs (and other hardware
tracing facilities) we have a much better ways of monitoring the CPU activity
than GPROF, without software modification.

Also I think GPROF has never worked, because the 'start' functions of both
i386 and amd64 use ENTRY(), and it would have caused a function call while the
kernel was not yet relocated.

Revision 1.27.8.1 / (download) - annotate - [select for diffs], Mon Feb 26 00:49:48 2018 UTC (6 years, 1 month ago) by snj
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.27: +8 -7 lines
Diff to previous 1.27 (colored) next main 1.28 (colored) to selected 1.3.2.2 (colored)

Pull up following revision(s) (requested by maxv in ticket #575):
	sys/arch/amd64/amd64/copy.S: 1.28 via patch
	sys/arch/amd64/amd64/cpufunc.S: 1.31
Don't fall through functions, explicitly jump instead.

Revision 1.21.12.2 / (download) - annotate - [select for diffs], Sun Dec 3 11:35:47 2017 UTC (6 years, 3 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.21.12.1: +158 -10 lines
Diff to previous 1.21.12.1 (colored) to branchpoint 1.21 (colored) next main 1.22 (colored) to selected 1.3.2.2 (colored)

update from HEAD

Revision 1.31 / (download) - annotate - [select for diffs], Wed Nov 1 09:17:28 2017 UTC (6 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, phil-wifi-base, pgoyette-compat-base, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.30: +8 -7 lines
Diff to previous 1.30 (colored) to selected 1.3.2.2 (colored)

Don't fall through functions, explicitly jump instead. While here don't
call smap_enable twice (harmless), and add END() markers.

Revision 1.30 / (download) - annotate - [select for diffs], Mon Oct 30 17:06:42 2017 UTC (6 years, 4 months ago) by maxv
Branch: MAIN
Changes since 1.29: +101 -4 lines
Diff to previous 1.29 (colored) to selected 1.3.2.2 (colored)

Always use END() markers when declaring functions in assembly, so that ld
can compute the size of the functions. A few remain.

While here, fix a bug in the INTRSTUB macro: we are falling through
resume_, but it is aligned, so it looks like we're executing the inter-
function padding - which probably happens to contain NOPs, but that's
still bad.

Revision 1.29 / (download) - annotate - [select for diffs], Sun Oct 15 11:31:00 2017 UTC (6 years, 5 months ago) by maxv
Branch: MAIN
Changes since 1.28: +9 -1 lines
Diff to previous 1.28 (colored) to selected 1.3.2.2 (colored)

Add setds and setes, will be useful in the future.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Oct 15 10:58:32 2017 UTC (6 years, 5 months ago) by maxv
Branch: MAIN
Changes since 1.27: +3 -1 lines
Diff to previous 1.27 (colored) to selected 1.3.2.2 (colored)

Add setusergs on Xen, and simplify.

Revision 1.25.10.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:09 2017 UTC (7 years, 2 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.25: +42 -2 lines
Diff to previous 1.25 (colored) next main 1.26 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.25.6.1 / (download) - annotate - [select for diffs], Mon Dec 5 10:54:49 2016 UTC (7 years, 3 months ago) by skrll
Branch: nick-nhusb
Changes since 1.25: +42 -2 lines
Diff to previous 1.25 (colored) next main 1.26 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.27 / (download) - annotate - [select for diffs], Sun Nov 27 14:49:21 2016 UTC (7 years, 4 months ago) by kamil
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, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, 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.26: +41 -1 lines
Diff to previous 1.26 (colored) to selected 1.3.2.2 (colored)

Add accessors for available x86 Debug Registers

There are 8 Debug Registers on i386 (available at least since 80386) and 16
on AMD64. Currently DR4 and DR5 are reserved on both cpu-families and
DR9-DR15 are still reserved on AMD64. Therefore add accessors for DR0-DR3,
DR6-DR7 for all ports.

Debug Registers x86:
 * DR0-DR3  Debug Address Registers
 * DR4-DR5  Reserved
 * DR6      Debug Status Register
 * DR7      Debug Control Register
 * DR8-DR15 Reserved

Access the registers is available only from a kernel (ring 0) as there is
needed top protected access. For this reason there is need to use special
XEN functions to get and set the registers in the XEN3 kernels.

XEN specific functions as defined in NetBSD:
 - HYPERVISOR_get_debugreg()
 - HYPERVISOR_set_debugreg()

This code extends the existing rdr6() and ldr6() accessor for additional:
 - rdr0() & ldr0()
 - rdr1() & ldr1()
 - rdr2() & ldr2()
 - rdr3() & ldr3()
 - rdr7() & ldr7()

Traditionally accessors for DR6 were passing vaddr_t argument, while it's
appropriate type for DR0-DR3, DR6-DR7 should be using u_long, however it's
not a big deal. The resulting functionality should be equivalent so stick
to this convention and use the vaddr_t type for all DR accessors.

There was already a function defined for rdr6() in XEN, but it had a nit on
AMD64 as it was casting HYPERVISOR_get_debugreg() to u_int (32-bit on
AMD64), truncating result. It still works for DR6, but for the sake of
simplicity always return full 64-bit value.

New accessors duplicate functionality of the dr0() function available on
i386 within the KSTACK_CHECK_DR0 option. dr0() is a specialized layer with
logic to set appropriate types of interrupts, now accessors are designed to
pass verbatim values from user-land (with simple sanity checks in the
kernel). At the moment there are no plans to make possible to coexist
KSTACK_CHECK_DR0 with debug registers for user applications (debuggers).

     options KSTACK_CHECK_DR0
     Detect kernel stack overflow using DR0 register.  This option uses DR0
     register exclusively so you can't use DR0 register for other purpose
     (e.g., hardware breakpoint) if you turn this on.

The KSTACK_CHECK_DR0 functionality was designed for i386 and never ported
to amd64.

Code tested on i386 and amd64 with kernels: GENERIC, XEN3_DOMU, XEN3_DOM0.

Sponsored by <The NetBSD Foundation>

Revision 1.26 / (download) - annotate - [select for diffs], Sun Nov 27 02:32:56 2016 UTC (7 years, 4 months ago) by kamil
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored) to selected 1.3.2.2 (colored)

Fix rdr6() function on amd64

According to the AMD64 SysV ABI the first returned value is passed in RAX,
not in RDI. Actually RDI is used for the first argument passed to a
function.

So far this function was dead code, it will be used for a ptrace(2)
feature to support CPU watchpoints.

The rdr6() function reads state of the DR6 register and returns its value.

Sponsored by <The NetBSD Foundation>

Revision 1.15.16.1 / (download) - annotate - [select for diffs], Mon Jun 1 14:43:47 2015 UTC (8 years, 9 months ago) by sborrill
Branch: netbsd-5-1
Changes since 1.15: +34 -1 lines
Diff to previous 1.15 (colored) next main 1.16 (colored) to selected 1.3.2.2 (colored)

Pull up the following revisions(s) (requested by msaitoh in ticket #1969):
	sys/arch/x86/include/cpufunc.h:	revision 1.13
	sys/arch/amd64/amd64/cpufunc.S:	revision 1.20-1.21 via patch
	sys/arch/i386/i386/cpufunc.S:	revision 1.16-1.17, 1.21 via patch

Backport rdmsr_safe() to access MSR safely.

Revision 1.15.20.1 / (download) - annotate - [select for diffs], Mon Jun 1 14:42:40 2015 UTC (8 years, 9 months ago) by sborrill
Branch: netbsd-5-2
Changes since 1.15: +34 -1 lines
Diff to previous 1.15 (colored) next main 1.16 (colored) to selected 1.3.2.2 (colored)

Pull up the following revisions(s) (requested by msaitoh in ticket #1969):
	sys/arch/x86/include/cpufunc.h:	revision 1.13
	sys/arch/amd64/amd64/cpufunc.S:	revision 1.20-1.21 via patch
	sys/arch/i386/i386/cpufunc.S:	revision 1.16-1.17, 1.21 via patch

Backport rdmsr_safe() to access MSR safely.

Revision 1.15.6.1 / (download) - annotate - [select for diffs], Mon Jun 1 14:38:31 2015 UTC (8 years, 9 months ago) by sborrill
Branch: netbsd-5
Changes since 1.15: +34 -1 lines
Diff to previous 1.15 (colored) next main 1.16 (colored) to selected 1.3.2.2 (colored)

Pull up the following revisions(s) (requested by msaitoh in ticket #1969):
	sys/arch/x86/include/cpufunc.h:		revision 1.13
	sys/arch/amd64/amd64/cpufunc.S:		revision 1.20-1.21 via patch
	sys/arch/i386/i386/cpufunc.S:		revision 1.16-1.17, 1.21 via patch

Backport rdmsr_safe() to access MSR safely.

Revision 1.21.12.1 / (download) - annotate - [select for diffs], Wed Aug 20 00:02:42 2014 UTC (9 years, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.21: +46 -2 lines
Diff to previous 1.21 (colored) to selected 1.3.2.2 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.21.2.1 / (download) - annotate - [select for diffs], Thu May 22 11:39:28 2014 UTC (9 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.21: +46 -2 lines
Diff to previous 1.21 (colored) next main 1.22 (colored) to selected 1.3.2.2 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.21.16.1 / (download) - annotate - [select for diffs], Sun May 18 17:44:54 2014 UTC (9 years, 10 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.21: +46 -2 lines
Diff to previous 1.21 (colored) next main 1.22 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.25 / (download) - annotate - [select for diffs], Wed Feb 12 23:24:09 2014 UTC (10 years, 1 month ago) by dsl
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, localcount-20160914
Branch point for: pgoyette-localcount, nick-nhusb
Changes since 1.24: +6 -2 lines
Diff to previous 1.24 (colored) to selected 1.3.2.2 (colored)

Change i386 to use x86/fpu.c instead of i386/isa/npx.c
This changes the trap10 and trap13 code to call directly into fpu.c,
  removing all the code for T_ARITHTRAP, T_XMM and T_FPUNDA from i386/trap.c
Not all of the code thate appeared to handle fpu traps was ever called!
Most of the changes just replace the include of machine/npx.h with x86/fpu.h
  (or remove it entirely).

Revision 1.24 / (download) - annotate - [select for diffs], Sun Feb 9 19:42:04 2014 UTC (10 years, 1 month ago) by dsl
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored) to selected 1.3.2.2 (colored)

Best if x86_stmxcsr executes stmxcsr.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Feb 9 17:07:41 2014 UTC (10 years, 1 month ago) by dsl
Branch: MAIN
Changes since 1.22: +5 -1 lines
Diff to previous 1.22 (colored) to selected 1.3.2.2 (colored)

Add x86_stmxcsr for amd64.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Dec 8 18:00:51 2013 UTC (10 years, 3 months ago) by dsl
Branch: MAIN
Changes since 1.21: +37 -1 lines
Diff to previous 1.21 (colored) to selected 1.3.2.2 (colored)

Add some definitions for cpu 'extended state'.
These are needed for support of the AVX SIMD instructions.
Nothing yet uses them.

Revision 1.21 / (download) - annotate - [select for diffs], Sat Sep 24 21:24:52 2011 UTC (12 years, 6 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, 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, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys, rmind-smpnet
Changes since 1.20: +2 -2 lines
Diff to previous 1.20 (colored) to selected 1.3.2.2 (colored)

White space fix.

Revision 1.20 / (download) - annotate - [select for diffs], Sat Sep 24 10:32:52 2011 UTC (12 years, 6 months ago) by jym
Branch: MAIN
Changes since 1.19: +34 -1 lines
Diff to previous 1.19 (colored) to selected 1.3.2.2 (colored)

Import rdmsr_safe(msr, *value) for x86 world. It allows reading MSRs
in a safe way by handling the fault that might trigger for certain
register <> CPU/arch combos.

Requested by Jukka. Patch adapted from one found in DragonflyBSD.

Revision 1.15.10.4 / (download) - annotate - [select for diffs], Sat Aug 27 15:37:22 2011 UTC (12 years, 7 months ago) by jym
Branch: jym-xensuspend
Changes since 1.15.10.3: +6 -1 lines
Diff to previous 1.15.10.3 (colored) to branchpoint 1.15 (colored) next main 1.16 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.

Revision 1.18.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:18:56 2011 UTC (12 years, 9 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.18: +6 -1 lines
Diff to previous 1.18 (colored) next main 1.19 (colored) to selected 1.3.2.2 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:37 2011 UTC (12 years, 9 months ago) by rmind
Branch: MAIN
CVS Tags: jym-xensuspend-nbase, jym-xensuspend-base
Changes since 1.18: +6 -1 lines
Diff to previous 1.18 (colored) to selected 1.3.2.2 (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.17.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:04:46 2011 UTC (12 years, 9 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.15.10.3 / (download) - annotate - [select for diffs], Mon Mar 28 23:58:09 2011 UTC (13 years ago) by jym
Branch: jym-xensuspend
Changes since 1.15.10.2: +13 -0 lines
Diff to previous 1.15.10.2 (colored) to branchpoint 1.15 (colored) to selected 1.3.2.2 (colored)

Cure sync hiccups. Code with compile errors is not really useful, heh.

Revision 1.15.10.2 / (download) - annotate - [select for diffs], Mon Mar 28 23:04:32 2011 UTC (13 years ago) by jym
Branch: jym-xensuspend
Changes since 1.15.10.1: +2 -2 lines
Diff to previous 1.15.10.1 (colored) to branchpoint 1.15 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD. TODO before merge:
- shortcut for suspend code in sysmon, when powerd(8) is not running.
Borrow ``xs_watch'' thread context?
- bug hunting in xbd + xennet resume. Rings are currently thrashed upon
resume, so current implementation force flush them on suspend. It's not
really needed.

Revision 1.16.4.2 / (download) - annotate - [select for diffs], Thu Mar 17 04:46:29 2011 UTC (13 years ago) by rmind
Branch: rmind-uvmplock
Changes since 1.16.4.1: +6 -1 lines
Diff to previous 1.16.4.1 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored) to selected 1.3.2.2 (colored)

- Fix tlbflushg() to behave like tlbflush(), if page global extension (PGE)
  is not (yet) enabled.  This fixes the issue of stale TLB entry, experienced
  early on boot, when PGE is not yet set on primary CPU.
- Rewrite i386/amd64 TLB interrupt handlers in C (only stubs are in assembly),
  which simplifies and unifies (under x86) code, plus fixes few bugs.
- cpu_attach: remove assignment to cpus_running, as primary CPU might not be
  attached first, which causes reset (and thus missed secondary CPUs).

Revision 1.16.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 20:49:14 2011 UTC (13 years ago) by rmind
Branch: rmind-uvmplock
Changes since 1.16: +15 -2 lines
Diff to previous 1.16 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.17.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 15:09:29 2011 UTC (13 years ago) by bouyer
Branch: bouyer-quota2
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.18 / (download) - annotate - [select for diffs], Tue Feb 22 05:07:36 2011 UTC (13 years, 1 month ago) by joerg
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, bouyer-quota2-nbase
Branch point for: cherry-xenmp
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored) to selected 1.3.2.2 (colored)

Be explicit about the member of the fld family wanted here.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Tue Aug 17 06:43:51 2010 UTC (13 years, 7 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.16: +14 -1 lines
Diff to previous 1.16 (colored) next main 1.17 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.8.2.4 / (download) - annotate - [select for diffs], Wed Aug 11 22:51:32 2010 UTC (13 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.8.2.3: +14 -1 lines
Diff to previous 1.8.2.3 (colored) to branchpoint 1.8 (colored) next main 1.9 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Jul 7 01:14:52 2010 UTC (13 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base7, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.16: +14 -1 lines
Diff to previous 1.16 (colored) to selected 1.3.2.2 (colored)

add the guts of TLS support on amd64.  based on joerg's patch,
reworked by me to support 32-bit processes as well.
we now keep %fs and %gs loaded with the user values
while in the kernel, which means we don't need to
reload them when returning to user mode.

Revision 1.8.2.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:01:58 2010 UTC (14 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.8.2.2: +3 -3 lines
Diff to previous 1.8.2.2 (colored) to branchpoint 1.8 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.15.10.1 / (download) - annotate - [select for diffs], Sun Nov 1 13:58:48 2009 UTC (14 years, 4 months ago) by jym
Branch: jym-xensuspend
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.16 / (download) - annotate - [select for diffs], Thu Oct 1 09:13:54 2009 UTC (14 years, 5 months ago) by skrll
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base, matt-premerge-20091211
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored) to selected 1.3.2.2 (colored)

Fix up mwait/monitor now that gas has been fixed.

Revision 1.8.2.2 / (download) - annotate - [select for diffs], Mon May 4 08:10:32 2009 UTC (14 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.8.2.1: +73 -73 lines
Diff to previous 1.8.2.1 (colored) to branchpoint 1.8 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Thu Sep 18 04:33:17 2008 UTC (15 years, 6 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.10.2.1: +2 -2 lines
Diff to previous 1.10.2.1 (colored) next main 1.11 (colored) to selected 1.3.2.2 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.7.6.2 / (download) - annotate - [select for diffs], Sun Jun 29 09:32:53 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.7.6.1: +1 -1 lines
Diff to previous 1.7.6.1 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.14.2.1 / (download) - annotate - [select for diffs], Fri Jun 27 15:11:16 2008 UTC (15 years, 9 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored) next main 1.15 (colored) to selected 1.3.2.2 (colored)

Sync with head.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Jun 24 16:32:53 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-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-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-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, mjf-devfs2-base, 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, matt-mips64-base2, jymxensuspend-base, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: netbsd-5-2, netbsd-5-1, netbsd-5, jym-xensuspend
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored) to selected 1.3.2.2 (colored)

getss -> x86_getss

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:30:05 2008 UTC (15 years, 9 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.10: +84 -73 lines
Diff to previous 1.10 (colored) to selected 1.3.2.2 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.7.8.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:04:39 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.7.8.1: +73 -73 lines
Diff to previous 1.7.8.1 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.7.6.1 / (download) - annotate - [select for diffs], Mon Jun 2 13:21:48 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.7: +90 -78 lines
Diff to previous 1.7 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.14 / (download) - annotate - [select for diffs], Sun May 25 15:56:57 2008 UTC (15 years, 10 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Branch point for: simonb-wapbl
Changes since 1.13: +73 -73 lines
Diff to previous 1.13 (colored) to selected 1.3.2.2 (colored)

enable profiling of assembly functions, except for x86_pause().
profiling that one causes the system with profiling on to become so slow
that we get spinlock timeouts.

Revision 1.7.8.1 / (download) - annotate - [select for diffs], Sun May 18 12:31:27 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.7: +22 -10 lines
Diff to previous 1.7 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.8.2.1 / (download) - annotate - [select for diffs], Fri May 16 02:21:48 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.8: +18 -10 lines
Diff to previous 1.8 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.13 / (download) - annotate - [select for diffs], Sun May 11 16:23:05 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Changes since 1.12: +6 -1 lines
Diff to previous 1.12 (colored) to selected 1.3.2.2 (colored)

Don't reload LDTR unless a new value, which only happens for USER_LDT.

Revision 1.12 / (download) - annotate - [select for diffs], Sat May 10 16:21:41 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.11: +3 -1 lines
Diff to previous 1.11 (colored) to selected 1.3.2.2 (colored)

Take skew into account for cpu_counter().

Revision 1.11 / (download) - annotate - [select for diffs], Sat May 10 16:12:32 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.10: +7 -3 lines
Diff to previous 1.10 (colored) to selected 1.3.2.2 (colored)

Improve x86 tsc handling:

- Ditch the cross-CPU calibration stuff. It didn't work properly, and it's
  near impossible to synchronize the CPUs in a running system, because bus
  traffic will interfere with any calibration attempt, messing up the
  timings.

- Only enable the TSC on CPUs where we are sure it does not drift. If we are
  On a known good CPU, give the TSC high timecounter quality, making it the
  default.

- When booting CPUs, detect TSC skew and account for it. Most Intel MP
  systems have synchronized counters, but that need not be true if the
  system has a complicated bus structure. As far as I know, AMD systems
  do not have synchronized TSCs and so we need to handle skew.

- While an AP is waiting to be set running, try and make the TSC drift by
  entering a reduced power state. If we detect drift, ensure that the TSC
  does not get a high timecounter quality. This should not happen and is
  only for safety.

- Make cpu_counter() stuff LKM safe.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Apr 28 22:47:37 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Branch point for: wrstuden-revivesa
Changes since 1.9: +5 -1 lines
Diff to previous 1.9 (colored) to selected 1.3.2.2 (colored)

Add support for kernel preeemption to the i386 and amd64 ports. Notes:

- I have seen one isolated panic in the x86 pmap, but otherwise i386
  seems stable with preemption enabled.

- amd64 is missing the FPU handling changes and it's not yet safe to
  enable it there.

- The usual level for kern.sched.kpreempt_pri will be 128 once enabled
  by default. For testing, setting it to 0 helps to shake out bugs.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:12 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
Changes since 1.8: +1 -8 lines
Diff to previous 1.8 (colored) to selected 1.3.2.2 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.8 / (download) - annotate - [select for diffs], Sun Apr 27 11:25:27 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Changes since 1.7: +5 -1 lines
Diff to previous 1.7 (colored) to selected 1.3.2.2 (colored)

+lcr2

Revision 1.1.14.4 / (download) - annotate - [select for diffs], Sun Mar 23 02:03:52 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.1.14.3: +4 -1 lines
Diff to previous 1.1.14.3 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

sync with HEAD

Revision 1.1.12.4 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:20 2008 UTC (16 years, 1 month ago) by mjf
Branch: mjf-devfs
Changes since 1.1.12.3: +7 -2 lines
Diff to previous 1.1.12.3 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.10.6 / (download) - annotate - [select for diffs], Mon Feb 11 14:59:26 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.10.5: +4 -1 lines
Diff to previous 1.1.10.5 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Feb 8 18:17:39 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-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, mjf-devfs2
Changes since 1.6: +4 -1 lines
Diff to previous 1.6 (colored) to selected 1.3.2.2 (colored)

breakpoint: set up a stack frame so not to confuse gdb.

Revision 1.1.10.5 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:14 2008 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.10.4: +4 -29 lines
Diff to previous 1.1.10.4 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.1.14.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:44:42 2008 UTC (16 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.1.14.2: +32 -47 lines
Diff to previous 1.1.14.2 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with HEAD

Revision 1.4.4.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:46:56 2008 UTC (16 years, 2 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.4: +4 -29 lines
Diff to previous 1.4 (colored) next main 1.5 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.6 / (download) - annotate - [select for diffs], Tue Jan 1 12:51:09 2008 UTC (16 years, 2 months ago) by yamt
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.5: +4 -2 lines
Diff to previous 1.5 (colored) to selected 1.3.2.2 (colored)

add x86_cpuid2, which can specify ecx register.

Revision 1.1.12.3 / (download) - annotate - [select for diffs], Thu Dec 27 00:42:48 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.1.12.2: +1 -28 lines
Diff to previous 1.1.12.2 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.3.2.2 / (download) - annotate - [selected], Wed Dec 26 21:38:41 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.3.2.1: +1 -28 lines
Diff to previous 1.3.2.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)

Sync with head.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Dec 20 23:46:10 2007 UTC (16 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.4: +1 -28 lines
Diff to previous 1.4 (colored) to selected 1.3.2.2 (colored)

- Make __cpu_simple_lock and similar real functions and patch at runtime.
- Remove old x86 atomic ops.
- Drop text alignment back to 16 on i386 (really, this time).
- Minor cleanup.

Revision 1.1.2.4 / (download) - annotate - [select for diffs], Sun Dec 9 19:34:15 2007 UTC (16 years, 3 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.1.2.3: +13 -13 lines
Diff to previous 1.1.2.3 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.12.2 / (download) - annotate - [select for diffs], Sat Dec 8 18:16:22 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.1.12.1: +29 -13 lines
Diff to previous 1.1.12.1 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.3.2.1 / (download) - annotate - [select for diffs], Sat Dec 8 17:56:13 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.3: +13 -13 lines
Diff to previous 1.3 (colored) to selected 1.3.2.2 (colored)

Sync with head.

Revision 1.1.10.4 / (download) - annotate - [select for diffs], Fri Dec 7 17:23:55 2007 UTC (16 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.10.3: +29 -13 lines
Diff to previous 1.1.10.3 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with head

Revision 1.4 / (download) - annotate - [select for diffs], Thu Dec 6 14:40:28 2007 UTC (16 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base2, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.3: +13 -13 lines
Diff to previous 1.3 (colored) to selected 1.3.2.2 (colored)

Correct argument shuffling in the string I/O functions.

Revision 1.1.6.4 / (download) - annotate - [select for diffs], Mon Dec 3 19:02:31 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.3: +1 -4 lines
Diff to previous 1.1.6.3 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.6.3 / (download) - annotate - [select for diffs], Mon Dec 3 18:34:36 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.2: +20 -7 lines
Diff to previous 1.1.6.2 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Tue Nov 27 19:35:23 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.1.2.2: +17 -1 lines
Diff to previous 1.1.2.2 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.3 / (download) - annotate - [select for diffs], Thu Nov 22 16:16:40 2007 UTC (16 years, 4 months ago) by bouyer
Branch: MAIN
CVS Tags: vmlocking2-base1, vmlocking-nbase
Branch point for: vmlocking2
Changes since 1.2: +17 -1 lines
Diff to previous 1.2 (colored) to selected 1.3.2.2 (colored)

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

Revision 1.1.12.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:46:06 2007 UTC (16 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.1: +1 -7 lines
Diff to previous 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.10.3 / (download) - annotate - [select for diffs], Thu Nov 15 11:42:29 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.10.2: +1 -7 lines
Diff to previous 1.1.10.2 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Wed Nov 14 19:04:01 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.1.2.1: +509 -0 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD.

Revision 1.1.8.2 / (download) - annotate - [select for diffs], Tue Nov 13 15:58:04 2007 UTC (16 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.1.8.1: +1 -7 lines
Diff to previous 1.1.8.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

Sync with HEAD

Revision 1.2 / (download) - annotate - [select for diffs], Mon Nov 12 18:42:00 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2, bouyer-xenamd64-base
Changes since 1.1: +1 -7 lines
Diff to previous 1.1 (colored) to selected 1.3.2.2 (colored)

Don't unconditionally clear the direction flag. The ABI says it must always
be clear when making a function call, and 'cld' takes about 50 clock cyles
on the P4.

Revision 1.1.14.2 / (download) - annotate - [select for diffs], Tue Nov 6 23:14:01 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.1.14.1: +515 -0 lines
Diff to previous 1.1.14.1 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with HEAD

Revision 1.1.10.2 / (download) - annotate - [select for diffs], Sat Oct 27 11:25:01 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.10.1: +515 -0 lines
Diff to previous 1.1.10.1 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.1.8.1 / (download) - annotate - [select for diffs], Wed Oct 17 21:38:13 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.1: +16 -0 lines
Diff to previous 1.1 (colored) to selected 1.3.2.2 (colored)

amd64 (aka x86-64) support for Xen. Based on the OpenBSD port done by
Mathieu Ropert in 2006.
DomU-only for now. An INSTALL_XEN3_DOMU kernel with a ramdisk will boot to
sysinst if you're lucky. Often it panics because a runable LWP has
a NULL stack (really, it's all of l->l_addr which is has been zeroed out
while the process was on the queue !)
TODO:
- bug fixes :)
- Most of the xpq_* functions should be shared with xen/i386
- The xen/i386 assembly bootstrap code should be remplaced with the C
  version in xenamd64/amd64/xpmap.c
- see if a config(5) trick could allow to merge xenamd64 back to xen or amd64.

Revision 1.1.6.2 / (download) - annotate - [select for diffs], Tue Oct 9 13:37:15 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.1.6.1: +515 -0 lines
Diff to previous 1.1.6.1 (colored) to branchpoint 1.1 (colored) to selected 1.3.2.2 (colored)

Sync with head.

Revision 1.1.4.2 / (download) - annotate - [select for diffs], Sun Oct 7 08:33:20 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.1.4.1: +515 -0 lines
Diff to previous 1.1.4.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.3.2.2 (colored)

sync with head.

Revision 1.1.14.1, Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.1: +0 -515 lines
FILE REMOVED

file cpufunc.S was added on branch matt-armv6 on 2007-11-06 23:14:01 +0000

Revision 1.1.10.1, Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1: +0 -515 lines
FILE REMOVED

file cpufunc.S was added on branch yamt-lazymbuf on 2007-10-27 11:25:01 +0000

Revision 1.1.6.1, Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.1: +0 -515 lines
FILE REMOVED

file cpufunc.S was added on branch vmlocking on 2007-10-09 13:37:14 +0000

Revision 1.1.4.1, Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.1: +0 -515 lines
FILE REMOVED

file cpufunc.S was added on branch yamt-x86pmap on 2007-10-07 08:33:20 +0000

Revision 1.1.2.1, Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.1: +0 -515 lines
FILE REMOVED

file cpufunc.S was added on branch jmcneill-pm on 2007-11-14 19:04:01 +0000

Revision 1.1 / (download) - annotate - [select for diffs], Wed Sep 26 19:48:34 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, vmlocking-base, jmcneill-base
Branch point for: yamt-x86pmap, yamt-lazymbuf, vmlocking, mjf-devfs, matt-armv6, jmcneill-pm, bouyer-xenamd64
Diff to selected 1.3.2.2 (colored)

x86 changes for pcc and LKMs.

- Replace most inline assembly with proper functions. As a side effect
  this reduces the size of amd64 GENERIC by about 120kB, and i386 by a
  smaller amount. Nearly all of the inlines did something slow, or something
  that does not need to be fast.
- Make curcpu() and curlwp functions proper, unless __GNUC__ && _KERNEL.
  In that case make them inlines. Makes curlwp LKM and preemption safe.
- Make bus_space and bus_dma more LKM friendly.
- Share a few more files between the ports.
- Other minor changes.

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>