The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.80 / (download) - annotate - [select for diffs], Mon Sep 12 02:21:11 2022 UTC (19 months ago) by knakahara
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, 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.79: +2 -2 lines
Diff to previous 1.79 (colored) to selected 1.27 (colored)

Update register name at fault.  Pointed out by hgutch@n.o, thanks.

In vetor.S:r1.78
====================
IDTVEC(handle_hypervisor_callback)
      movl    CPUVAR(ILEVEL),%edi
      pushq   %rdi /* for Xdoreti */
====================
So, use %edi as before.

Revision 1.79 / (download) - annotate - [select for diffs], Wed Sep 7 00:40:18 2022 UTC (19 months, 1 week ago) by knakahara
Branch: MAIN
Changes since 1.78: +114 -158 lines
Diff to previous 1.78 (colored) to selected 1.27 (colored)

NetBSD/x86: Raise the number of interrupt sources per CPU from 32 to 56.

There has been no objection for three years.
    https://mail-index.netbsd.org/port-amd64/2019/09/22/msg003012.html
Implemented by nonaka@n.o, updated by me.

Revision 1.78 / (download) - annotate - [select for diffs], Tue May 24 15:55:19 2022 UTC (22 months, 3 weeks ago) by bouyer
Branch: MAIN
Changes since 1.77: +5 -1 lines
Diff to previous 1.77 (colored) to selected 1.27 (colored)

Some devices (e.g. ixg in MSI-X mode) don't to have their handlers called
when no interrupt are pending. So add an extra ih_pending field
to struct intrhand, which is incremeted when the handler is not called because
of IPL level and reset to 0 when called. Check this in Xen's resume
assembly to call only handlers that are really pending.

Revision 1.77 / (download) - annotate - [select for diffs], Sun May 17 14:15:55 2020 UTC (3 years, 11 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.76: +6 -6 lines
Diff to previous 1.76 (colored) to selected 1.27 (colored)

Flag EOI on TLB shootdown IPIs after the shootdown has been processed.

Revision 1.76 / (download) - annotate - [select for diffs], Fri May 1 07:03:02 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.75: +4 -1 lines
Diff to previous 1.75 (colored) to selected 1.27 (colored)

Explicitly align to 8 bytes, found by kUBSan.

Reported-by: syzbot+f1e1561ed739db869d44@syzkaller.appspotmail.com

Revision 1.75 / (download) - annotate - [select for diffs], Mon Apr 27 16:55:50 2020 UTC (3 years, 11 months ago) by bouyer
Branch: MAIN
Changes since 1.74: +11 -5 lines
Diff to previous 1.74 (colored) to selected 1.27 (colored)

Limit the amount of code in TEXT_USER_BEGIN/TEXT_USER_END for
hypervisor_pvhvm_callback, for the benefit of SVS. Suggested by maxv@

Revision 1.74 / (download) - annotate - [select for diffs], Sat Apr 25 15:26:16 2020 UTC (3 years, 11 months ago) by bouyer
Branch: MAIN
Changes since 1.73: +38 -83 lines
Diff to previous 1.73 (colored) to selected 1.27 (colored)

Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor

Revision 1.73.6.6 / (download) - annotate - [select for diffs], Sat Apr 18 20:03:02 2020 UTC (3 years, 11 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73.6.5: +9 -1 lines
Diff to previous 1.73.6.5 (colored) to branchpoint 1.73 (colored) next main 1.74 (colored) to selected 1.27 (colored)

If possible, register a per-cpu callback via HVMOP_set_evtchn_upcall_vector.
From FreeBSD. This requires acking the interrupt in hypervisor_pvhvm_callback.

Don't try to use x86_cpu_idle_xen() for PVHVM, it cause the domU to hang.
FreeBSD doesn't seem to use it either.

Revision 1.73.6.5 / (download) - annotate - [select for diffs], Thu Apr 16 17:50:51 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73.6.4: +5 -2 lines
Diff to previous 1.73.6.4 (colored) to branchpoint 1.73 (colored) to selected 1.27 (colored)

amd64: Xhypervisor_pvhvm_callback has to be in text.user for SVS.
Thanks to maxv@ for helping me with this.
Enable SVS again.
While there, increase ci_idepth before calling do_hypervisor_callback,
and don't touch ci_idepth while looping over pending events.

Revision 1.73.6.4 / (download) - annotate - [select for diffs], Thu Apr 16 08:46:34 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73.6.3: +3 -3 lines
Diff to previous 1.73.6.3 (colored) to branchpoint 1.73 (colored) to selected 1.27 (colored)

Reorganise sources to make it possible to include Xen PVHVM support in
native kernels. Among others:
- move xen/include/amd64/hypercall.h to amd64/include/xen and
  xen/include/i386/hypercall.h to i386/include/xen
- exclude some native files from the build for xenpv
- add xen to "machine" config statement for amd64 and i386
- split arch/xen/conf/files.xen to arch/xen/conf/files.xen (for pv drivers)
  and arch/xen/conf/files.xen.pv (for full pv support)
- add GENERIC_XENHVM kernel config which includes GENERIC and add Xen PV
  drivers.

Revision 1.63.2.3 / (download) - annotate - [select for diffs], Mon Apr 13 08:03:30 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.63.2.2: +4 -0 lines
Diff to previous 1.63.2.2 (colored) to branchpoint 1.63 (colored) next main 1.64 (colored) to selected 1.27 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.73.6.3 / (download) - annotate - [select for diffs], Sun Apr 12 17:25:52 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73.6.2: +21 -76 lines
Diff to previous 1.73.6.2 (colored) to branchpoint 1.73 (colored) to selected 1.27 (colored)

Get rid of xen-specific ci_x* interrupt handling:
- use the general SIR mechanism, reserving 3 more slots for IPL_VM, IPL_SCHED
  and IPL_HIGH
- remove specific handling from C sources, or change to ipending
- convert IPL number to SIR number in various places
- Remove XUNMASK/XPENDING in assembly or change to IUNMASK/IPENDING
- remove Xen-specific ci_xsources, ci_xmask, ci_xunmask, ci_xpending from
  struct cpu_info
- for now remove a KASSERT that there are no pending interrupts in
  idle_block(). We can get there with some software interrupts pending
  in autoconf XXX needs to be looked at.

Revision 1.73.6.2 / (download) - annotate - [select for diffs], Sat Apr 11 11:56:51 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73.6.1: +3 -16 lines
Diff to previous 1.73.6.1 (colored) to branchpoint 1.73 (colored) to selected 1.27 (colored)

Merge back hypervisor_callback and hypervisor_pvhvm_callback, there's no
issues calling Xdoreti in the PV case.

Revision 1.73.6.1 / (download) - annotate - [select for diffs], Fri Apr 10 14:41:59 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.73: +15 -3 lines
Diff to previous 1.73 (colored) to selected 1.27 (colored)

spllower(): Also check Xen pending events
hypervisor_pvhvm_callback(): exit via Xdoreti, so that pending interrupts
are checked.
disable __HAVE_FAST_SOFTINTS only for XENPV, it now works for PVHVM.
We still have to disable PREEMPTION, until we support MULTIPROCESSOR

Revision 1.63.2.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:25 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.63.2.1: +11 -2 lines
Diff to previous 1.63.2.1 (colored) to branchpoint 1.63 (colored) to selected 1.27 (colored)

Merge changes from current as of 20200406

Revision 1.73 / (download) - annotate - [select for diffs], Mon Dec 30 23:32:29 2019 UTC (4 years, 3 months ago) by thorpej
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, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: bouyer-xenpvh
Changes since 1.72: +9 -4 lines
Diff to previous 1.72 (colored) to selected 1.27 (colored)

Fix a problem with intr_unmask() that can cause a forever-loop:
- When handling the source-is-masked case in the interrupt vector, set the
  interrupt bit in a new ci_imasked field and ensure the bit is cleared
  from ci_ipending.
- In intr_unmask(), transfer the bit from ci_imasked to ci_ipending for
  non-level-sensitive interrupts (the PIC does the work for us in the
  level-sensitive case), and only force pending interrupts to be processed
  in this case.  (In all cases, make sure the now-unmasked bit is cleared
  from ci_imasked.)

Before, the bit was left in ci_ipending so as not to use edge-triggered
interrupts while the source is masked, but Xspllower() relies on the
pending bits getting cleared.

Tested by forcing all wm(4) interrupts on my test system though an
intr_mask() / softint / intr_unmask() cycle and exercising the network
heavily.

Revision 1.72 / (download) - annotate - [select for diffs], Sun Dec 22 15:09:39 2019 UTC (4 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.71: +5 -1 lines
Diff to previous 1.71 (colored) to selected 1.27 (colored)

Add intr_mask() and corresponding intr_unmask() calls that allow specific
interrupt lines / sources to be masked as needed (rather than making a
set of sources by IPL as with spl*()).

Revision 1.71 / (download) - annotate - [select for diffs], Sun Nov 17 14:07:00 2019 UTC (4 years, 5 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.70: +5 -1 lines
Diff to previous 1.70 (colored) to selected 1.27 (colored)

Disable KCOV - by raising the interrupt level - in the TLB IPI handler,
because this is only noise.

Revision 1.63.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:47 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.63: +113 -53 lines
Diff to previous 1.63 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.49.2.4 / (download) - annotate - [select for diffs], Sat Mar 9 17:10:20 2019 UTC (5 years, 1 month ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Changes since 1.49.2.3: +46 -1 lines
Diff to previous 1.49.2.3 (colored) to branchpoint 1.49 (colored) next main 1.50 (colored) to selected 1.27 (colored)

Pull up following revision(s) via patch (requested by nonaka in ticket #1210):

	sys/dev/hyperv/vmbusvar.h: revision 1.1
	sys/dev/hyperv/hvs.c: revision 1.1
	sys/dev/hyperv/if_hvn.c: revision 1.1
	sys/dev/hyperv/vmbusic.c: revision 1.1
	sys/arch/x86/x86/lapic.c: revision 1.69
	sys/arch/x86/isa/clock.c: revision 1.34
	sys/arch/x86/include/intrdefs.h: revision 1.22
	sys/arch/i386/conf/GENERIC: revision 1.1201
	sys/arch/x86/x86/hyperv.c: revision 1.1
	sys/arch/x86/include/cpu.h: revision 1.105
	sys/arch/x86/x86/x86_machdep.c: revision 1.124
	sys/arch/i386/conf/GENERIC: revision 1.1203
	sys/arch/amd64/amd64/genassym.cf: revision 1.74
	sys/arch/i386/conf/GENERIC: revision 1.1204
	sys/arch/amd64/conf/GENERIC: revision 1.520
	sys/arch/x86/x86/hypervreg.h: revision 1.1
	sys/arch/amd64/amd64/vector.S: revision 1.69
	sys/dev/hyperv/hvshutdown.c: revision 1.1
	sys/dev/hyperv/hvshutdown.c: revision 1.2
	sys/dev/usb/if_urndisreg.h: file removal
	sys/arch/x86/x86/cpu.c: revision 1.167
	sys/arch/x86/conf/files.x86: revision 1.107
	sys/dev/usb/if_urndis.c: revision 1.20
	sys/dev/hyperv/vmbusicreg.h: revision 1.1
	sys/dev/hyperv/hvheartbeat.c: revision 1.1
	sys/dev/hyperv/vmbusicreg.h: revision 1.2
	sys/dev/hyperv/hvheartbeat.c: revision 1.2
	sys/dev/hyperv/files.hyperv: revision 1.1
	sys/dev/ic/rndisreg.h: revision 1.1
	sys/arch/i386/i386/genassym.cf: revision 1.111
	sys/dev/ic/rndisreg.h: revision 1.2
	sys/dev/hyperv/hyperv_common.c: revision 1.1
	sys/dev/hyperv/hvtimesync.c: revision 1.1
	sys/dev/hyperv/hypervreg.h: revision 1.1
	sys/dev/hyperv/hvtimesync.c: revision 1.2
	sys/dev/hyperv/vmbusicvar.h: revision 1.1
	sys/dev/hyperv/if_hvnreg.h: revision 1.1
	sys/arch/x86/x86/lapic.c: revision 1.70
	sys/arch/amd64/amd64/vector.S: revision 1.70
	sys/dev/ic/ndisreg.h: revision 1.1
	sys/arch/amd64/conf/GENERIC: revision 1.516
	sys/dev/hyperv/hypervvar.h: revision 1.1
	sys/arch/amd64/conf/GENERIC: revision 1.518
	sys/arch/amd64/conf/GENERIC: revision 1.519
	sys/arch/i386/conf/files.i386: revision 1.400
	sys/dev/acpi/vmbus_acpi.c: revision 1.1
	sys/dev/hyperv/vmbus.c: revision 1.1
	sys/dev/hyperv/vmbus.c: revision 1.2
	sys/arch/x86/x86/intr.c: revision 1.144
	sys/arch/i386/i386/vector.S: revision 1.83
	sys/arch/amd64/conf/files.amd64: revision 1.112

separate RNDIS definitions from urndis(4) for use with Hyper-V NetVSC.

 -

Added Microsoft Hyper-V support.  It ported from OpenBSD and FreeBSD.
graphical console is not work on Gen.2 VM yet. To use the serial console,
enter "consdev com,0x3f8,115200" on efiboot.

 -

Add __diagused.

 -

PR/53984: Partial revert of modify lapic_calibrate_timer() in lapic.c r1.69.

 -

Update Hyper-V related drivers description.

 -

Remove unused definition.

 -

Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly
discussed on irc.
NFCI intended.

 -

commented out hvkvp entry.

 -

fix typo. pointed out by pgoyette@n.o.

 -

Use IDTVEC instead of NENTRY for handle_hyperv_hypercall.

 -

Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly
discussed on irc.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Mar 7 10:16:07 2019 UTC (5 years, 1 month ago) by nonaka
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, isaki-audio2-base, isaki-audio2
Changes since 1.69: +4 -4 lines
Diff to previous 1.69 (colored) to selected 1.27 (colored)

Use IDTVEC instead of NENTRY for handle_hyperv_hypercall.

Revision 1.69 / (download) - annotate - [select for diffs], Fri Feb 15 08:54:01 2019 UTC (5 years, 2 months ago) by nonaka
Branch: MAIN
Changes since 1.68: +46 -1 lines
Diff to previous 1.68 (colored) to selected 1.27 (colored)

Added Microsoft Hyper-V support.  It ported from OpenBSD and FreeBSD.

graphical console is not work on Gen.2 VM yet. To use the serial console,
enter "consdev com,0x3f8,115200" on efiboot.

Revision 1.68 / (download) - annotate - [select for diffs], Thu Feb 14 08:18:25 2019 UTC (5 years, 2 months ago) by cherry
Branch: MAIN
Changes since 1.67: +2 -2 lines
Diff to previous 1.67 (colored) to selected 1.27 (colored)

Welcome XENPVHVM mode.

It is UP only, has xbd(4) and xennet(4) as PV drivers.

The console is com0 at isa and the native portion is very
rudimentary AT architecture, so is probably suboptimal to
run without PV support.

Revision 1.67 / (download) - annotate - [select for diffs], Wed Feb 13 05:01:57 2019 UTC (5 years, 2 months ago) by cherry
Branch: MAIN
Changes since 1.66: +62 -47 lines
Diff to previous 1.66 (colored) to selected 1.27 (colored)

In preparation for debut-ing PVHVM mode:

 - Make the struct intrstub uniform across native and XEN.
 - Introduce vector callback entrypoints for PVHVM mode.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Feb 11 14:59:32 2019 UTC (5 years, 2 months ago) by cherry
Branch: MAIN
Changes since 1.65: +5 -5 lines
Diff to previous 1.65 (colored) to selected 1.27 (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.60.2.5 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:31 2018 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.60.2.4: +2 -2 lines
Diff to previous 1.60.2.4 (colored) to branchpoint 1.60 (colored) next main 1.61 (colored) to selected 1.27 (colored)

Sync with HEAD, resolve a few conflicts

Revision 1.65 / (download) - annotate - [select for diffs], Tue Dec 25 06:50:11 2018 UTC (5 years, 3 months ago) by cherry
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226
Changes since 1.64: +2 -2 lines
Diff to previous 1.64 (colored) to selected 1.27 (colored)

Excise XEN specific code out of x86/x86/intr.c into xen/x86/xen_intr.c

While at it, separate the source function tracking so that the interrupt
paths are truly independant.

Use weak symbol exporting to provision for future PVHVM co-existence
of both files, but with independant paths. Introduce assembler code
such that in a unified scenario, native interrupts get first priority
in spllower(), followed by XEN event callbacks. IPL management and
semantics are unchanged - native handlers and xen callbacks are
expected to maintain their ipl related semantics.

In summary, after this commit, native and XEN now have completely
unrelated interrupt handling mechanisms, including
intr_establish_xname() and assembler stubs and intr handler
management.

Happy Christmas!

Revision 1.60.2.4 / (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.60.2.3: +3 -3 lines
Diff to previous 1.60.2.3 (colored) to branchpoint 1.60 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.64 / (download) - annotate - [select for diffs], Sat Jul 14 14:29:40 2018 UTC (5 years, 9 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.63: +3 -3 lines
Diff to previous 1.63 (colored) to selected 1.27 (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.60.2.3 / (download) - annotate - [select for diffs], Mon Jun 25 07:25:38 2018 UTC (5 years, 9 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.60.2.2: +3 -1 lines
Diff to previous 1.60.2.2 (colored) to branchpoint 1.60 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.63 / (download) - annotate - [select for diffs], Wed Jun 20 11:45:25 2018 UTC (5 years, 9 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.62: +3 -1 lines
Diff to previous 1.62 (colored) to selected 1.27 (colored)

Put these arrays in .rodata, they aren't supposed to be executable.

Revision 1.60.2.2 / (download) - annotate - [select for diffs], Sat Apr 7 04:12:11 2018 UTC (6 years ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.60.2.1: +11 -11 lines
Diff to previous 1.60.2.1 (colored) to branchpoint 1.60 (colored) to selected 1.27 (colored)

Sync with HEAD.  77 conflicts resolved - all of them $NetBSD$

Revision 1.49.2.3 / (download) - annotate - [select for diffs], Thu Apr 5 18:15:02 2018 UTC (6 years ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.49.2.2: +11 -11 lines
Diff to previous 1.49.2.2 (colored) to branchpoint 1.49 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by christos in ticket #696):

	sys/arch/amd64/amd64/vector.S: revision 1.62 (patch)
	sys/arch/x86/include/intr.h: revision 1.55
	sys/arch/i386/i386/vector.S: revision 1.77
	sys/arch/i386/i386/db_interface.c: revision 1.82 (patch)
	sys/arch/amd64/amd64/spl.S: revision 1.34 (patch)
	sys/arch/amd64/amd64/db_interface.c: revision 1.33 (patch)
	sys/arch/x86/x86/intr.c: revision 1.125
	sys/arch/i386/i386/spl.S: revision 1.43 (patch)
	sys/arch/i386/i386/machdep.c: revision 1.805 (patch)
	sys/arch/x86/x86/lapic.c: revision 1.66 (patch)

Rename the DDB IPI IDT vectors for consistency. ok maxv@

Rename Xpreempt{recurse,resume} -> X{recurse,resume}_preempt so that
they fit the pattern. Also the debugger trap sniffer matches them
without adding special entries...

XXX: pullup-8.

Revision 1.62 / (download) - annotate - [select for diffs], Tue Apr 3 07:20:52 2018 UTC (6 years ago) by christos
Branch: MAIN
CVS Tags: pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407
Changes since 1.61: +11 -11 lines
Diff to previous 1.61 (colored) to selected 1.27 (colored)

Rename the DDB IPI IDT vectors for consistency. ok maxv@

Revision 1.49.2.2 / (download) - annotate - [select for diffs], Thu Mar 22 16:59:03 2018 UTC (6 years ago) by martin
Branch: netbsd-8
Changes since 1.49.2.1: +87 -47 lines
Diff to previous 1.49.2.1 (colored) to branchpoint 1.49 (colored) to selected 1.27 (colored)

Pull up the following revisions, requested by maxv in ticket #652:

	sys/arch/amd64/amd64/amd64_trap.S	upto 1.39 (partial, patch)
	sys/arch/amd64/amd64/db_machdep.c	1.6 (patch)
	sys/arch/amd64/amd64/genassym.cf	1.65,1.66,1.67 (patch)
	sys/arch/amd64/amd64/locore.S		upto 1.159 (partial, patch)
	sys/arch/amd64/amd64/machdep.c		1.299-1.302 (patch)
	sys/arch/amd64/amd64/trap.c		upto 1.113 (partial, patch)
	sys/arch/amd64/amd64/amd64/vector.S	upto 1.61 (partial, patch)
	sys/arch/amd64/conf/GENERIC		1.477,1.478 (patch)
	sys/arch/amd64/conf/kern.ldscript	1.26 (patch)
	sys/arch/amd64/include/frameasm.h	upto 1.37 (partial, patch)
	sys/arch/amd64/include/param.h		1.25 (patch)
	sys/arch/amd64/include/pmap.h		1.41,1.43,1.44 (patch)
	sys/arch/x86/conf/files.x86		1.91,1.93 (patch)
	sys/arch/x86/include/cpu.h		1.88,1.89 (patch)
	sys/arch/x86/include/pmap.h		1.75 (patch)
	sys/arch/x86/x86/cpu.c			1.144,1.146,1.148,1.149 (patch)
	sys/arch/x86/x86/pmap.c			upto 1.289 (partial, patch)
	sys/arch/x86/x86/vm_machdep.c		1.31,1.32 (patch)
	sys/arch/x86/x86/x86_machdep.c		1.104,1.106,1.108 (patch)
	sys/arch/x86/x86/svs.c			1.1-1.14
	sys/arch/xen/conf/files.compat		1.30 (patch)

Backport SVS. Not enabled yet.

Revision 1.60.2.1 / (download) - annotate - [select for diffs], Thu Mar 22 01:44:41 2018 UTC (6 years ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.60: +28 -28 lines
Diff to previous 1.60 (colored) to selected 1.27 (colored)

Synch with HEAD, resolve conflicts

Revision 1.61 / (download) - annotate - [select for diffs], Fri Mar 16 08:48:34 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-0330, pgoyette-compat-0322
Changes since 1.60: +28 -28 lines
Diff to previous 1.60 (colored) to selected 1.27 (colored)

Rename "handle_" -> "Xhandle_", and add the function names (introduced by
SVS) in db_machdep.c.

Should fix the DDB part of PR/53060.

Revision 1.49.2.1 / (download) - annotate - [select for diffs], Wed Mar 7 14:50:56 2018 UTC (6 years, 1 month ago) by martin
Branch: netbsd-8
Changes since 1.49: +2 -6 lines
Diff to previous 1.49 (colored) to selected 1.27 (colored)

Pull up the following revisions (via patch), requested by maxv in ticket #610:

sys/arch/amd64/amd64/amd64_trap.S	1.8,1.10,1.12 (partial),1.13-1.15,
					1.19 (partial),1.20,1.21,1.22,1.24
					(via patch)
sys/arch/amd64/amd64/locore.S		1.129 (partial),1.132 (via patch)
sys/arch/amd64/amd64/trap.c		1.97 (partial),1.111 (via patch)
sys/arch/amd64/amd64/vector.S		1.54,1.55 (via patch)
sys/arch/amd64/include/frameasm.h	1.21,1.23 (via patch)
sys/arch/x86/x86/cpu.c			1.138 (via patch)
sys/arch/xen/conf/Makefile.xen		1.45 (via patch)

Rename and reorder several things in amd64_trap.S.
Compile amd64_trap.S as a file.
Introduce nmitrap and doubletrap.
Have the CPU clear PSL_D automatically in the syscall entry point.

Revision 1.60 / (download) - annotate - [select for diffs], Sat Feb 17 19:26:20 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.59: +34 -46 lines
Diff to previous 1.59 (colored) to selected 1.27 (colored)

Define legacy_stubs in a macro.

Revision 1.59 / (download) - annotate - [select for diffs], Sat Feb 17 18:51:53 2018 UTC (6 years, 1 month ago) by maxv
Branch: MAIN
Changes since 1.58: +4 -4 lines
Diff to previous 1.58 (colored) to selected 1.27 (colored)

Rename i8259_stubs -> legacy_stubs. We will want the entries to have the
same name, eg:

	legacy_stubs
		-> Xintr_legacy0, Xrecurse_legacy0, Xresume_legacy0
		-> Xintr_legacy1, Xrecurse_legacy1, Xresume_legacy1
		...

Revision 1.58 / (download) - annotate - [select for diffs], Fri Feb 9 08:42:26 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.57: +55 -274 lines
Diff to previous 1.57 (colored) to selected 1.27 (colored)

Define INTRSTUB_ARRAY, simplifies a lot.

Revision 1.57 / (download) - annotate - [select for diffs], Sat Jan 27 18:17:57 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.56: +5 -5 lines
Diff to previous 1.56 (colored) to selected 1.27 (colored)

Declare and use INTR_RECURSE_ENTRY, an optimized version of INTRENTRY.
When processing deferred interrupts, we are always entering the new
handler in kernel mode, so there is no point performing the userland
checks.

Saves several instructions.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Jan 21 11:21:40 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.55: +86 -47 lines
Diff to previous 1.55 (colored) to selected 1.27 (colored)

Unmap the kernel from userland in SVS, and leave only the needed
trampolines. As explained below, SVS should now completely mitigate
Meltdown on GENERIC kernels, even though it needs some more tweaking
for GENERIC_KASLR.

Until now the kernel entry points looked like:

	FUNC(intr)
		pushq	$ERR
		pushq	$TRAPNO
		INTRENTRY
		... handle interrupt ...
		INTRFASTEXIT
	END(intr)

With this change they are split and become:

	FUNC(handle)
		... handle interrupt ...
		INTRFASTEXIT
	END(handle)

		TEXT_USER_BEGIN
	FUNC(intr)
		pushq	$ERR
		pushq	$TRAPNO
		INTRENTRY
		jmp	handle
	END(intr)
		TEXT_USER_END

A new section is introduced, .text.user, that contains minimal kernel
entry/exit points. In order to choose what to put in this section, two
macros are introduced, TEXT_USER_BEGIN and TEXT_USER_END.

The section is mapped in userland with normal 4K pages.

In GENERIC, the section is 4K-page-aligned and embedded in .text, which
is mapped with large pages. That is to say, when an interrupt comes in,
the CPU has the user page tables loaded and executes the 'intr' functions
on 4K pages; after calling SVS_ENTER (in INTRENTRY) these 4K pages become
2MB large pages, and remain so when executing in kernel mode.

In GENERIC_KASLR, the section is 4K-page-aligned and independent from the
other kernel texts. The prekern just picks it up and maps it at a random
address.

In GENERIC, SVS should now completely mitigate Meltdown: what we put in
.text.user is not secret.

In GENERIC_KASLR, SVS would have to be improved a bit more: the
'jmp handle' instruction is actually secret, since it leaks the address
of the section we are jumping into. By exploiting Meltdown on Intel, this
theoretically allows a local user to reconstruct the address of the first
text section. But given that our KASLR produces several texts, and that
each section is not correlated with the others, the level of protection
KASLR provides is still good.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Jan 20 14:27:15 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.54: +1 -3 lines
Diff to previous 1.54 (colored) to selected 1.27 (colored)

Compile amd64_trap.S as a file instead of including it.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Jan 20 14:08:08 2018 UTC (6 years, 2 months ago) by maxv
Branch: MAIN
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored) to selected 1.27 (colored)

Start with .text not to inherit the last section of amd64_trap.S, and
remove outdated #define.

Revision 1.41.2.3 / (download) - annotate - [select for diffs], Sun Dec 3 11:35:47 2017 UTC (6 years, 4 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.41.2.2: +377 -115 lines
Diff to previous 1.41.2.2 (colored) to branchpoint 1.41 (colored) next main 1.42 (colored) to selected 1.27 (colored)

update from HEAD

Revision 1.53 / (download) - annotate - [select for diffs], Wed Nov 8 18:29:04 2017 UTC (6 years, 5 months ago) by maxv
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.52: +4 -2 lines
Diff to previous 1.52 (colored) to selected 1.27 (colored)

Don't fall through.

Revision 1.52 / (download) - annotate - [select for diffs], Mon Oct 30 17:06:42 2017 UTC (6 years, 5 months ago) by maxv
Branch: MAIN
Changes since 1.51: +7 -3 lines
Diff to previous 1.51 (colored) to selected 1.27 (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.44.10.4 / (download) - annotate - [select for diffs], Mon Aug 28 17:51:28 2017 UTC (6 years, 7 months ago) by skrll
Branch: nick-nhusb
Changes since 1.44.10.3: +267 -9 lines
Diff to previous 1.44.10.3 (colored) to branchpoint 1.44 (colored) next main 1.45 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.51 / (download) - annotate - [select for diffs], Tue Aug 15 09:08:39 2017 UTC (6 years, 8 months ago) by maxv
Branch: MAIN
CVS Tags: nick-nhusb-base-20170825
Changes since 1.50: +5 -5 lines
Diff to previous 1.50 (colored) to selected 1.27 (colored)

Rename intrddb -> intrddbipi, like i386.

Revision 1.50.2.2 / (download) - annotate - [select for diffs], Sun Jul 16 14:02:49 2017 UTC (6 years, 9 months ago) by cherry
Branch: perseant-stdc-iso10646
Changes since 1.50.2.1: +976 -0 lines
Diff to previous 1.50.2.1 (colored) to branchpoint 1.50 (colored) next main 1.51 (colored) to selected 1.27 (colored)

2302716

Revision 1.50.2.1, Sun Jul 16 14:02:48 2017 UTC (6 years, 9 months ago) by cherry
Branch: perseant-stdc-iso10646
Changes since 1.50: +0 -976 lines
FILE REMOVED

file vector.S was added on branch perseant-stdc-iso10646 on 2017-07-16 14:02:49 +0000

Revision 1.50 / (download) - annotate - [select for diffs], Sun Jul 16 14:02:48 2017 UTC (6 years, 9 months ago) by cherry
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base
Branch point for: perseant-stdc-iso10646
Changes since 1.49: +5 -3 lines
Diff to previous 1.49 (colored) to selected 1.27 (colored)

Unify the xen and native x86/ interrupt setup functions and
spl traversal data structures.

This is towards PVHVM.

Revision 1.49 / (download) - annotate - [select for diffs], Tue May 23 08:54:38 2017 UTC (6 years, 10 months ago) by nonaka
Branch: MAIN
CVS Tags: netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: netbsd-8
Changes since 1.48: +261 -5 lines
Diff to previous 1.48 (colored) to selected 1.27 (colored)

x86: Add preliminary x2APIC support.

x2APIC is used only when x2APIC is enabled in BIOS/UEFI.
LAPIC ID is not supported above 256.

Revision 1.45.2.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:09 2017 UTC (7 years, 3 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.45: +11 -7 lines
Diff to previous 1.45 (colored) next main 1.46 (colored) to selected 1.27 (colored)

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

Revision 1.44.10.3 / (download) - annotate - [select for diffs], Mon Dec 5 10:54:49 2016 UTC (7 years, 4 months ago) by skrll
Branch: nick-nhusb
Changes since 1.44.10.2: +9 -5 lines
Diff to previous 1.44.10.2 (colored) to branchpoint 1.44 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.48 / (download) - annotate - [select for diffs], Fri Nov 25 14:12:55 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, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.47: +9 -5 lines
Diff to previous 1.47 (colored) to selected 1.27 (colored)

Move the virtual address of the LAPIC page out of the data segment on amd64
and i386. The old design was error-prone, and it didn't allow us to map the
data segment with large pages.

Now, the VA is allocated dynamically in the pmap bootstrap code, and entered
manually later. We go from using &local_apic to using *local_apic_va, and we
therefore need one more level of indirection in the asm code.

Discussed on tech-kern.

Revision 1.44.10.2 / (download) - annotate - [select for diffs], Wed Oct 5 20:55:23 2016 UTC (7 years, 6 months ago) by skrll
Branch: nick-nhusb
Changes since 1.44.10.1: +55 -61 lines
Diff to previous 1.44.10.1 (colored) to branchpoint 1.44 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.47 / (download) - annotate - [select for diffs], Fri Aug 19 19:04:57 2016 UTC (7 years, 7 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104, nick-nhusb-base-20161004, localcount-20160914
Changes since 1.46: +1 -8 lines
Diff to previous 1.46 (colored) to selected 1.27 (colored)

Unused.

Revision 1.46 / (download) - annotate - [select for diffs], Sun Aug 7 10:17:32 2016 UTC (7 years, 8 months ago) by maxv
Branch: MAIN
Changes since 1.45: +55 -54 lines
Diff to previous 1.45 (colored) to selected 1.27 (colored)

KNF a little.

Revision 1.44.10.1 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:28 2015 UTC (8 years, 3 months ago) by skrll
Branch: nick-nhusb
Changes since 1.44: +43 -43 lines
Diff to previous 1.44 (colored) to selected 1.27 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.45 / (download) - annotate - [select for diffs], Sun Nov 22 13:41:24 2015 UTC (8 years, 4 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226
Branch point for: pgoyette-localcount
Changes since 1.44: +43 -43 lines
Diff to previous 1.44 (colored) to selected 1.27 (colored)

KNF a bit, so I don't get scared each time I open a file

Revision 1.41.2.2 / (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.41.2.1: +23 -336 lines
Diff to previous 1.41.2.1 (colored) to branchpoint 1.41 (colored) to selected 1.27 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.38.2.4 / (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.38.2.3: +23 -336 lines
Diff to previous 1.38.2.3 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored) to selected 1.27 (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.44 / (download) - annotate - [select for diffs], Tue Jun 25 00:27:22 2013 UTC (10 years, 9 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-pagecache-base9, 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-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
Branch point for: nick-nhusb
Changes since 1.43: +1 -364 lines
Diff to previous 1.43 (colored) to selected 1.27 (colored)

Split these to improve diffability.

Revision 1.43 / (download) - annotate - [select for diffs], Sat Jun 22 08:48:48 2013 UTC (10 years, 9 months ago) by uebayasi
Branch: MAIN
Changes since 1.42: +60 -10 lines
Diff to previous 1.42 (colored) to selected 1.27 (colored)

Use END()/IDTVEC_END() to set ELF symbol size.  Set some type info too.

Revision 1.38.2.3 / (download) - annotate - [select for diffs], Wed Jan 16 05:32:39 2013 UTC (11 years, 3 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.38.2.2: +2 -2 lines
Diff to previous 1.38.2.2 (colored) to branchpoint 1.38 (colored) to selected 1.27 (colored)

sync with (a bit old) head

Revision 1.41.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:00:56 2012 UTC (11 years, 4 months ago) by tls
Branch: tls-maxphys
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored) to selected 1.27 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.42 / (download) - annotate - [select for diffs], Fri Nov 2 08:33:16 2012 UTC (11 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, khorben-n900, agc-symver-base, agc-symver
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored) to selected 1.27 (colored)

comment

Revision 1.38.2.2 / (download) - annotate - [select for diffs], Tue Oct 30 17:18:44 2012 UTC (11 years, 5 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.38.2.1: +60 -26 lines
Diff to previous 1.38.2.1 (colored) to branchpoint 1.38 (colored) to selected 1.27 (colored)

sync with head

Revision 1.28.6.1.6.1 / (download) - annotate - [select for diffs], Tue Jun 12 20:44:07 2012 UTC (11 years, 10 months ago) by riz
Branch: netbsd-5-1
CVS Tags: netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE
Changes since 1.28.6.1: +65 -30 lines
Diff to previous 1.28.6.1 (colored) next main 1.28.6.2 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by spz in ticket #1772):
	sys/arch/amd64/amd64/trap.c: revision 1.71 via patch
	sys/arch/amd64/amd64/vector.S: revision 1.41 via patch
	sys/arch/amd64/include/frameasm.h: patch

Treat traps in kernel mode during the 'return to user' iret sequence
as user faults.
Based heavily in the i386 code with the correct opcode bytes inserted.
iret path tested, arranging for segment register errors is harder.
User %fs and %gs (32bit apps) are loaded much earlier and any errors
will generate kernel panics - there is probably code to try to stop
the invalid values being set.
If we get a fault setting the user %gs, or on a iret that is returning
to userspace, we must do a 'swapgs' to reload the kernel %gs_base.
Also save the %ds, %es, %fs, %gs selector values in the frame so
they can be restored if we finally return to user (probably after
an application SIGSEGV handler has fixed the error).
Without this any such fault leaves the kernel running with the wrong
%gs offset and it will most likely fault again early in trap().
Repeats until the stack tramples on something important.
iret change works, invalid %gs is a little harder to arrange.

Revision 1.28.6.1.2.1 / (download) - annotate - [select for diffs], Tue Jun 12 20:43:59 2012 UTC (11 years, 10 months ago) by riz
Branch: netbsd-5-0
Changes since 1.28.6.1: +65 -30 lines
Diff to previous 1.28.6.1 (colored) next main 1.28.6.2 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by spz in ticket #1772):
	sys/arch/amd64/amd64/trap.c: revision 1.71 via patch
	sys/arch/amd64/amd64/vector.S: revision 1.41 via patch
	sys/arch/amd64/include/frameasm.h: patch

Treat traps in kernel mode during the 'return to user' iret sequence
as user faults.
Based heavily in the i386 code with the correct opcode bytes inserted.
iret path tested, arranging for segment register errors is harder.
User %fs and %gs (32bit apps) are loaded much earlier and any errors
will generate kernel panics - there is probably code to try to stop
the invalid values being set.
If we get a fault setting the user %gs, or on a iret that is returning
to userspace, we must do a 'swapgs' to reload the kernel %gs_base.
Also save the %ds, %es, %fs, %gs selector values in the frame so
they can be restored if we finally return to user (probably after
an application SIGSEGV handler has fixed the error).
Without this any such fault leaves the kernel running with the wrong
%gs offset and it will most likely fault again early in trap().
Repeats until the stack tramples on something important.
iret change works, invalid %gs is a little harder to arrange.

Revision 1.28.6.2 / (download) - annotate - [select for diffs], Tue Jun 12 20:43:47 2012 UTC (11 years, 10 months ago) by riz
Branch: netbsd-5
CVS Tags: 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
Changes since 1.28.6.1: +65 -30 lines
Diff to previous 1.28.6.1 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by spz in ticket #1772):
	sys/arch/amd64/amd64/trap.c: revision 1.71 via patch
	sys/arch/amd64/amd64/vector.S: revision 1.41 via patch
	sys/arch/amd64/include/frameasm.h: patch

Treat traps in kernel mode during the 'return to user' iret sequence
as user faults.
Based heavily in the i386 code with the correct opcode bytes inserted.
iret path tested, arranging for segment register errors is harder.
User %fs and %gs (32bit apps) are loaded much earlier and any errors
will generate kernel panics - there is probably code to try to stop
the invalid values being set.
If we get a fault setting the user %gs, or on a iret that is returning
to userspace, we must do a 'swapgs' to reload the kernel %gs_base.
Also save the %ds, %es, %fs, %gs selector values in the frame so
they can be restored if we finally return to user (probably after
an application SIGSEGV handler has fixed the error).
Without this any such fault leaves the kernel running with the wrong
%gs offset and it will most likely fault again early in trap().
Repeats until the stack tramples on something important.
iret change works, invalid %gs is a little harder to arrange.

Revision 1.38.8.2 / (download) - annotate - [select for diffs], Sun Jun 3 21:45:10 2012 UTC (11 years, 10 months ago) by jdc
Branch: netbsd-6
CVS Tags: 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, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus
Changes since 1.38.8.1: +136 -88 lines
Diff to previous 1.38.8.1 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored) to selected 1.27 (colored)

Pull up revisions:
  src/sys/arch/amd64/include/frameasm.h revision 1.17-1.19
  src/sys/arch/amd64/amd64/vector.S revision 1.40-1.41
  src/sys/arch/amd64/amd64/trap.c revision 1.71
(requested by dsl in ticket #280).

Move all the XEN differences to a single conditional.
Merge the XEN/non-XEN versions of INTRFASTEXIT and
  INTR_RECURSE_HWFRAME by using extra defines.
Split INTRENTRY so that code can insert extra instructions
  inside user/kernel conditional.

Add a ';' that got deleted in a slight tidyup.

Rejig the way TRAP() and ZTRAP() are defined and add Z/TRAP_NJ() that
  excludes the 'jmp alltraps'.
Use the _NJ versions for trap entries with non-standard code.
Move all the KDTRACE_HOOKS code into a single block inside the
  IDTVEC(trap03) code. This removes a mis-predicted from every
  trap when KDTRACE_HOOKS are enabled.
Add a few blank lines, need some comments as well :-)
No functional changes intended.

Let the user of INTRENTRY_L() place a label on the 'swapgs' used
  when faulting from user space.

If we get a fault setting the user %gs, or on a iret that is returning
to userspace, we must do a 'swapgs' to reload the kernel %gs_base.
Also save the %ds, %es, %fs, %gs selector values in the frame so
they can be restored if we finally return to user (probably after
an application SIGSEGV handler has fixed the error).
Without this any such fault leaves the kernel running with the wrong
%gs offset and it will most likely fault again early in trap().
Repeats until the stack tramples on something important.
iret change works, invalid %gs is a little harder to arrange.

Treat traps in kernel mode during the 'return to user' iret sequence
as user faults.
Based heavily in the i386 code with the correct opcode bytes inserted.
iret path tested, arranging for segment register errors is harder.
User %fs and %gs (32bit apps) are loaded much earlier and any errors
will generate kernel panics - there is probably code to try to stop
the invalid values being set.

Revision 1.38.6.2 / (download) - annotate - [select for diffs], Sat Jun 2 11:08:47 2012 UTC (11 years, 10 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.38.6.1: +136 -88 lines
Diff to previous 1.38.6.1 (colored) to branchpoint 1.38 (colored) next main 1.39 (colored) to selected 1.27 (colored)

sync to latest -current.

Revision 1.38.2.1 / (download) - annotate - [select for diffs], Wed May 23 10:07:39 2012 UTC (11 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.38: +79 -65 lines
Diff to previous 1.38 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.41 / (download) - annotate - [select for diffs], Tue May 22 21:10:26 2012 UTC (11 years, 10 months ago) by dsl
Branch: MAIN
CVS Tags: yamt-pagecache-base6, jmcneill-usbmp-base10
Branch point for: tls-maxphys
Changes since 1.40: +60 -26 lines
Diff to previous 1.40 (colored) to selected 1.27 (colored)

If we get a fault setting the user %gs, or on a iret that is returning
to userspace, we must do a 'swapgs' to reload the kernel %gs_base.
Also save the %ds, %es, %fs, %gs selector values in the frame so
they can be restored if we finally return to user (probably after
an application SIGSEGV handler has fixed the error).
Without this any such fault leaves the kernel running with the wrong
%gs offset and it will most likely fault again early in trap().
Repeats until the stack tramples on something important.
iret change works, invalid %gs is a little harder to arrange.

Revision 1.40 / (download) - annotate - [select for diffs], Mon May 7 21:09:29 2012 UTC (11 years, 11 months ago) by dsl
Branch: MAIN
CVS Tags: yamt-pagecache-base5
Changes since 1.39: +78 -64 lines
Diff to previous 1.39 (colored) to selected 1.27 (colored)

Rejig the way TRAP() and ZTRAP() are defined and add Z/TRAP_NJ() that
  excludes the 'jmp alltraps'.
Use the _NJ versions for trap entries with non-standard code.
Move all the KDTRACE_HOOKS code into a single block inside the
  IDTVEC(trap03) code. This removes a mis-predicted from every
  trap when KDTRACE_HOOKS are enabled.
Add a few blank lines, need some comments as well :-)
No functional changes intended.

Revision 1.38.6.1 / (download) - annotate - [select for diffs], Sun Apr 29 23:04:36 2012 UTC (11 years, 11 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 (colored) to selected 1.27 (colored)

sync to latest -current.

Revision 1.38.8.1 / (download) - annotate - [select for diffs], Mon Apr 23 16:34:16 2012 UTC (11 years, 11 months ago) by riz
Branch: netbsd-6
Changes since 1.38: +1 -1 lines
Diff to previous 1.38 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by jym in ticket #194):
	sys/arch/amd64/amd64/vector.S: revision 1.39
Alignment fault traps push the error code automatically, so don't use ZTRAP!

Revision 1.39 / (download) - annotate - [select for diffs], Sat Apr 21 18:52:36 2012 UTC (11 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: jmcneill-usbmp-base9
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 (colored) to selected 1.27 (colored)

Alignment fault traps push the error code automatically, so don't use ZTRAP!

Revision 1.29.4.5 / (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.29.4.4: +8 -156 lines
Diff to previous 1.29.4.4 (colored) to branchpoint 1.29 (colored) next main 1.30 (colored) to selected 1.27 (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.37.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.37: +8 -156 lines
Diff to previous 1.37 (colored) next main 1.38 (colored) to selected 1.27 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:38 2011 UTC (12 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, jym-xensuspend-nbase, jym-xensuspend-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6, jmcneill-usbmp
Changes since 1.37: +8 -156 lines
Diff to previous 1.37 (colored) to selected 1.27 (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.36.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:04:47 2011 UTC (12 years, 10 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored) next main 1.37 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.29.4.4 / (download) - annotate - [select for diffs], Mon Mar 28 23:58:10 2011 UTC (13 years ago) by jym
Branch: jym-xensuspend
Changes since 1.29.4.3: +47 -10 lines
Diff to previous 1.29.4.3 (colored) to branchpoint 1.29 (colored) to selected 1.27 (colored)

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

Revision 1.29.4.3 / (download) - annotate - [select for diffs], Mon Mar 28 23:04:34 2011 UTC (13 years ago) by jym
Branch: jym-xensuspend
Changes since 1.29.4.2: +9 -9 lines
Diff to previous 1.29.4.2 (colored) to branchpoint 1.29 (colored) to selected 1.27 (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.37 / (download) - annotate - [select for diffs], Fri Mar 18 15:18:16 2011 UTC (13 years, 1 month ago) by joerg
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored) to selected 1.27 (colored)

Remove static branch prediction hints. They pessimize code for all CPUs
but Pentium IV. Discussed with ad@ and dsl@

Revision 1.33.2.4 / (download) - annotate - [select for diffs], Thu Mar 17 04:46:29 2011 UTC (13 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.33.2.3: +6 -91 lines
Diff to previous 1.33.2.3 (colored) to branchpoint 1.33 (colored) next main 1.34 (colored) to selected 1.27 (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.33.2.3 / (download) - annotate - [select for diffs], Sat Mar 5 20:49:15 2011 UTC (13 years, 1 month ago) by rmind
Branch: rmind-uvmplock
Changes since 1.33.2.2: +14 -18 lines
Diff to previous 1.33.2.2 (colored) to branchpoint 1.33 (colored) to selected 1.27 (colored)

sync with head

Revision 1.36 / (download) - annotate - [select for diffs], Wed Jan 12 23:12:11 2011 UTC (13 years, 3 months ago) by joerg
Branch: MAIN
CVS Tags: uebayasi-xip-base7, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: jruoho-x86intr
Changes since 1.35: +8 -8 lines
Diff to previous 1.35 (colored) to selected 1.27 (colored)

Allow use of traditional CPP to be set on a per platform base in sys.mk.
Honour this for dependency processing in bsd.dep.mk.  Switch i386 and
amd64 assembly to use ISO C90 preprocessor concat and drop the
-traditional-cpp on this platform.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Dec 20 00:25:24 2010 UTC (13 years, 4 months ago) by matt
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Changes since 1.34: +6 -8 lines
Diff to previous 1.34 (colored) to selected 1.27 (colored)

Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits.  Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.

Revision 1.31.2.2 / (download) - annotate - [select for diffs], Tue Aug 17 06:43:52 2010 UTC (13 years, 8 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.31.2.1: +1 -3 lines
Diff to previous 1.31.2.1 (colored) to branchpoint 1.31 (colored) next main 1.32 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.19.10.5 / (download) - annotate - [select for diffs], Wed Aug 11 22:51:33 2010 UTC (13 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.19.10.4: +2 -4 lines
Diff to previous 1.19.10.4 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.34 / (download) - annotate - [select for diffs], Wed Jul 7 01:14:52 2010 UTC (13 years, 9 months ago) by chs
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.33: +2 -4 lines
Diff to previous 1.33 (colored) to selected 1.27 (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.31.2.1 / (download) - annotate - [select for diffs], Fri Apr 30 14:39:04 2010 UTC (13 years, 11 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.31: +42 -1 lines
Diff to previous 1.31 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.33.2.2 / (download) - annotate - [select for diffs], Mon Apr 26 17:06:21 2010 UTC (13 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.33.2.1: +14 -20 lines
Diff to previous 1.33.2.1 (colored) to branchpoint 1.33 (colored) to selected 1.27 (colored)

Slight simplification to TLB shootdown handler on i386 and amd64.

Revision 1.33.2.1 / (download) - annotate - [select for diffs], Mon Apr 26 04:48:49 2010 UTC (13 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.33: +39 -96 lines
Diff to previous 1.33 (colored) to selected 1.27 (colored)

Partly rewrite amd64 TLB shutdown handler for the changes in x86 pmap.
At this point, branch seems to pass preliminar stress tests on amd64.

Revision 1.19.10.4 / (download) - annotate - [select for diffs], Thu Mar 11 15:01:58 2010 UTC (14 years, 1 month ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.19.10.3: +42 -1 lines
Diff to previous 1.19.10.3 (colored) to branchpoint 1.19 (colored) to selected 1.27 (colored)

sync with head

Revision 1.33 / (download) - annotate - [select for diffs], Tue Feb 23 06:27:40 2010 UTC (14 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.32: +41 -1 lines
Diff to previous 1.32 (colored) to selected 1.27 (colored)

dtrace kernel hooks

ok darran@

Revision 1.32 / (download) - annotate - [select for diffs], Tue Feb 23 00:23:36 2010 UTC (14 years, 1 month ago) by cegger
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored) to selected 1.27 (colored)

include opt_xen.h

Revision 1.29.4.2 / (download) - annotate - [select for diffs], Sun Nov 1 13:58:49 2009 UTC (14 years, 5 months ago) by jym
Branch: jym-xensuspend
Changes since 1.29.4.1: +0 -0 lines
Diff to previous 1.29.4.1 (colored) to branchpoint 1.29 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.29.4.1 / (download) - annotate - [select for diffs], Thu Jul 23 23:31:35 2009 UTC (14 years, 8 months ago) by jym
Branch: jym-xensuspend
Changes since 1.29: +56 -11 lines
Diff to previous 1.29 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.19.10.3 / (download) - annotate - [select for diffs], Sat Jul 18 14:52:52 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.19.10.2: +56 -11 lines
Diff to previous 1.19.10.2 (colored) to branchpoint 1.19 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Jul 9 21:43:16 2009 UTC (14 years, 9 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, uebayasi-xip-base, matt-premerge-20091211, jymxensuspend-base
Branch point for: uebayasi-xip
Changes since 1.30: +9 -1 lines
Diff to previous 1.30 (colored) to selected 1.27 (colored)

- Fix rare crashe in the intr_lapic_tlb_bcast() handler: save and setup
  %fs on i386, %gs on amd64 registers, before using them.  Otherwise, it
  might be invalid/garbage, eg. IPI can interrupt userspace.

- Explicitly initialize per-CPU emap generation number.

Thanks <drochner> for reporting and testing of patch.

Revision 1.30 / (download) - annotate - [select for diffs], Sun Jun 28 15:18:50 2009 UTC (14 years, 9 months ago) by rmind
Branch: MAIN
Changes since 1.29: +48 -11 lines
Diff to previous 1.29 (colored) to selected 1.27 (colored)

Ephemeral mapping (emap) implementation.  Concept is based on the idea that
activity of other threads will perform the TLB flush for the processes using
emap as a side effect.  To track that, global and per-CPU generation numbers
are used.  This idea was suggested by Andrew Doran; various improvements to
it by me.  Notes:

- For now, zero-copy on pipe is not yet enabled.
- TCP socket code would likely need more work.
- Additional UVM loaning improvements are needed.

Proposed on <tech-kern>, silence there.
Quickly reviewed by <ad>.

Revision 1.19.10.2 / (download) - annotate - [select for diffs], Mon May 4 08:10:32 2009 UTC (14 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.19.10.1: +52 -31 lines
Diff to previous 1.19.10.1 (colored) to branchpoint 1.19 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.28.4.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:15:54 2009 UTC (15 years, 2 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.28: +1 -2 lines
Diff to previous 1.28 (colored) next main 1.29 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.19.6.3 / (download) - annotate - [select for diffs], Sat Jan 17 13:27:49 2009 UTC (15 years, 3 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.19.6.2: +0 -1 lines
Diff to previous 1.19.6.2 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Sat Dec 13 01:12:58 2008 UTC (15 years, 4 months ago) by haad
Branch: haad-dm
Changes since 1.28: +1 -2 lines
Diff to previous 1.28 (colored) next main 1.29 (colored) to selected 1.27 (colored)

Update haad-dm branch to haad-dm-base2.

Revision 1.28.6.1 / (download) - annotate - [select for diffs], Tue Nov 25 18:24:31 2008 UTC (15 years, 4 months ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, 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, 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
Branch point for: netbsd-5-1, netbsd-5-0
Changes since 1.28: +1 -2 lines
Diff to previous 1.28 (colored) to selected 1.27 (colored)

Pull up following revision(s) (requested by ad in ticket #126):
	sys/arch/amd64/amd64/vector.S: revision 1.29
trap07: do NOT enable interrupts before calling fpudna or we could be
preempted.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Nov 25 16:25:29 2008 UTC (15 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, mjf-devfs2-base, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: jym-xensuspend
Changes since 1.28: +1 -2 lines
Diff to previous 1.28 (colored) to selected 1.27 (colored)

trap07: do NOT enable interrupts before calling fpudna or we could be
preempted.

Revision 1.21.2.2 / (download) - annotate - [select for diffs], Thu Sep 18 04:33:17 2008 UTC (15 years, 7 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.21.2.1: +6 -3 lines
Diff to previous 1.21.2.1 (colored) next main 1.22 (colored) to selected 1.27 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.27.2.1 / (download) - annotate - [select for diffs], Thu Jul 3 18:37:51 2008 UTC (15 years, 9 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.27: +6 -3 lines
Diff to previous 1.27 (colored) next main 1.28 (colored)

Sync with head.

Revision 1.19.6.2 / (download) - annotate - [select for diffs], Wed Jul 2 19:08:15 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.19.6.1: +5 -2 lines
Diff to previous 1.19.6.1 (colored) to branchpoint 1.19 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Jun 29 21:00:08 2008 UTC (15 years, 9 months ago) by bouyer
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-base, netbsd-5-base, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5, haad-dm
Changes since 1.27: +6 -3 lines
Diff to previous 1.27 (colored)

Proper FPU exeptions support for Xen. Should fix FPU issues reported by
various users.

Revision 1.21.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.21: +47 -32 lines
Diff to previous 1.21 (colored) to selected 1.27 (colored)

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

Revision 1.19.8.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:04:40 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.19.8.1: +47 -28 lines
Diff to previous 1.19.8.1 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored) to selected 1.27 (colored)

sync with head

Revision 1.19.6.1 / (download) - annotate - [select for diffs], Mon Jun 2 13:21:48 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.19: +60 -40 lines
Diff to previous 1.19 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.27 / (download) - annotate - [selected], Sun Jun 1 21:24:15 2008 UTC (15 years, 10 months ago) by ad
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.26: +5 -1 lines
Diff to previous 1.26 (colored)

Make trap counters per-cpu, like syscalls.

Revision 1.26 / (download) - annotate - [select for diffs], Fri May 30 12:17:11 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.25: +19 -3 lines
Diff to previous 1.25 (colored) to selected 1.27 (colored)

PR kern/38663 Kernel preemption can't be enabled on x86 because of amd64
FPU handling

Adjust FPU trap handling to be preemption safe.

Revision 1.25 / (download) - annotate - [select for diffs], Fri May 30 12:11:44 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.24: +22 -21 lines
Diff to previous 1.24 (colored) to selected 1.27 (colored)

Shuffle copyright.

Revision 1.24 / (download) - annotate - [select for diffs], Fri May 30 12:09:59 2008 UTC (15 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.23: +3 -5 lines
Diff to previous 1.23 (colored) to selected 1.27 (colored)

Avoid mispredicted branches.

Revision 1.23 / (download) - annotate - [select for diffs], Sun May 25 16:08:41 2008 UTC (15 years, 10 months ago) by bouyer
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 (colored) to selected 1.27 (colored)

Fix pasto: CLI -> STI

Revision 1.19.8.1 / (download) - annotate - [select for diffs], Sun May 18 12:31:28 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.19: +17 -16 lines
Diff to previous 1.19 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.19.10.1 / (download) - annotate - [select for diffs], Fri May 16 02:21:49 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.19: +17 -16 lines
Diff to previous 1.19 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.22 / (download) - annotate - [select for diffs], Tue May 13 14:12:31 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Changes since 1.21: +1 -5 lines
Diff to previous 1.21 (colored) to selected 1.27 (colored)

PR port-amd64/38478 (panic on boot when attaching cpu17)

Don't 'sti' before returning from an interrupt that is masked in software.
We could recurse and burn stack.

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

Remove clause 3 and 4 from TNF licenses

Revision 1.20 / (download) - annotate - [select for diffs], Mon Apr 28 19:47:36 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.19: +17 -5 lines
Diff to previous 1.19 (colored) to selected 1.27 (colored)

Make the trap stubs preemption safe.

Revision 1.14.2.3 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:20 2008 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.14.2.2: +32 -1 lines
Diff to previous 1.14.2.2 (colored) to branchpoint 1.14 (colored) next main 1.15 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.7.2.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:19 2008 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.5: +42 -11 lines
Diff to previous 1.7.2.5 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.27 (colored)

sync with head

Revision 1.10.24.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:44:48 2008 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.10.24.1: +192 -81 lines
Diff to previous 1.10.24.1 (colored) to branchpoint 1.10 (colored) next main 1.11 (colored) to selected 1.27 (colored)

sync with HEAD

Revision 1.17.4.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:47:03 2008 UTC (16 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.17: +42 -11 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.19 / (download) - annotate - [select for diffs], Tue Jan 1 19:49:06 2008 UTC (16 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, matt-armv6-base, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, bouyer-xeni386-nbase, bouyer-xeni386-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, mjf-devfs2
Changes since 1.18: +32 -1 lines
Diff to previous 1.18 (colored) to selected 1.27 (colored)

make the nmi handler safer.

XXX should use IST.

Revision 1.14.2.2 / (download) - annotate - [select for diffs], Thu Dec 27 00:42:51 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.14.2.1: +11 -11 lines
Diff to previous 1.14.2.1 (colored) to branchpoint 1.14 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Wed Dec 26 21:38:42 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.16.2.1: +11 -11 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored) to selected 1.27 (colored)

Sync with head.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Dec 21 19:18:14 2007 UTC (16 years, 3 months ago) by dsl
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.17: +11 -11 lines
Diff to previous 1.17 (colored) to selected 1.27 (colored)

Change the xen CLI() and STI() defines to only use one scratch register.
As well as saving an instruction, in one place it saves a push/pop pair.

Revision 1.10.22.5 / (download) - annotate - [select for diffs], Sun Dec 9 19:34:18 2007 UTC (16 years, 4 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.10.22.4: +6 -117 lines
Diff to previous 1.10.22.4 (colored) to branchpoint 1.10 (colored) next main 1.11 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.14.2.1 / (download) - annotate - [select for diffs], Sat Dec 8 18:16:25 2007 UTC (16 years, 4 months ago) by mjf
Branch: mjf-devfs
Changes since 1.14: +160 -80 lines
Diff to previous 1.14 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Sat Dec 8 17:56:14 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking2
Changes since 1.16: +3 -5 lines
Diff to previous 1.16 (colored) to selected 1.27 (colored)

Sync with head.

Revision 1.7.2.5 / (download) - annotate - [select for diffs], Fri Dec 7 17:23:59 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.4: +160 -80 lines
Diff to previous 1.7.2.4 (colored) to branchpoint 1.7 (colored) to selected 1.27 (colored)

sync with head

Revision 1.17 / (download) - annotate - [select for diffs], Mon Dec 3 20:21:33 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-base2, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.16: +3 -5 lines
Diff to previous 1.16 (colored) to selected 1.27 (colored)

Merge from vmlocking.

Revision 1.10.6.10 / (download) - annotate - [select for diffs], Mon Dec 3 19:02:38 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.9: +142 -2 lines
Diff to previous 1.10.6.9 (colored) to branchpoint 1.10 (colored) next main 1.11 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.10.6.9 / (download) - annotate - [select for diffs], Mon Dec 3 18:34:40 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.8: +20 -7 lines
Diff to previous 1.10.6.8 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Dec 3 15:33:10 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: vmlocking2-base1, vmlocking-nbase
Branch point for: vmlocking2
Changes since 1.15: +4 -113 lines
Diff to previous 1.15 (colored) to selected 1.27 (colored)

Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.

Revision 1.10.22.4 / (download) - annotate - [select for diffs], Tue Nov 27 19:35:27 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.10.22.3: +201 -10 lines
Diff to previous 1.10.22.3 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Nov 22 16:16:43 2007 UTC (16 years, 4 months ago) by bouyer
Branch: MAIN
Changes since 1.14: +201 -10 lines
Diff to previous 1.14 (colored) to selected 1.27 (colored)

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

Revision 1.10.6.8 / (download) - annotate - [select for diffs], Fri Nov 16 20:31:19 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.7: +3 -5 lines
Diff to previous 1.10.6.7 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

- Don't bother entering the debugger for WARNING: SPL NOT LOWERED ...
  It's nearly impossible to debug at that point. Just patch things
  up and continue.
- Don't assign to ci_ilevel to drop the IPL, it can cause deadlock.
  Use spllower() instead.

Revision 1.12.4.6 / (download) - annotate - [select for diffs], Fri Nov 16 17:18:01 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.4.5: +32 -4 lines
Diff to previous 1.12.4.5 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored) to selected 1.27 (colored)

Initial domain0 support for xenamd64. The kernel boots multiuser, but
xen tools have not been tried yet.
In this process, cleanup some more the page table bootstrap, and properly
handle event counters for soft interrupts.

Revision 1.12.4.5 / (download) - annotate - [select for diffs], Thu Nov 15 19:20:30 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.4.4: +3 -3 lines
Diff to previous 1.12.4.4 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

Pass the correct pointer to do_hypervisor_callback(), fixes the system
vs user time reports.

Revision 1.10.24.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:14:11 2007 UTC (16 years, 5 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.10: +132 -13 lines
Diff to previous 1.10 (colored) to selected 1.27 (colored)

sync with HEAD

Revision 1.7.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:25:07 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.3: +38 -17 lines
Diff to previous 1.7.2.3 (colored) to branchpoint 1.7 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.10.22.3 / (download) - annotate - [select for diffs], Fri Oct 26 15:42:08 2007 UTC (16 years, 5 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.10.22.2: +36 -16 lines
Diff to previous 1.10.22.2 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.12.4.4 / (download) - annotate - [select for diffs], Thu Oct 25 23:59:22 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.4.3: +52 -28 lines
Diff to previous 1.12.4.3 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

Finish sync with HEAD. Especially use the new x86 pmap for xenamd64.
For this:
- rename pmap_pte_set() to pmap_pte_testset()
- make pmap_pte_set() a function or macro for non-atomic PTE write
- define and use pmap_pa2pte()/pmap_pte2pa() to read/write PTE entries
- define pmap_pte_flush() which is a nop in x86 case, and flush the
  MMUops queue in the Xen case

Revision 1.10.6.7 / (download) - annotate - [select for diffs], Tue Oct 23 20:11:40 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.6: +38 -18 lines
Diff to previous 1.10.6.6 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with head.

Revision 1.12.4.3 / (download) - annotate - [select for diffs], Sun Oct 21 19:12:29 2007 UTC (16 years, 5 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.4.2: +2 -4 lines
Diff to previous 1.12.4.2 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

Check for ASTs on exit from interrupt.

Revision 1.12.4.2 / (download) - annotate - [select for diffs], Thu Oct 18 21:52:34 2007 UTC (16 years, 6 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.4.1: +5 -3 lines
Diff to previous 1.12.4.1 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

Pass the right address to do_hypervisor_callback()/xen_failsafe_handler()
for struct intrframe*.

Revision 1.14 / (download) - annotate - [select for diffs], Thu Oct 18 15:28:33 2007 UTC (16 years, 6 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: +36 -16 lines
Diff to previous 1.13 (colored) to selected 1.27 (colored)

merge yamt-x86pmap branch.

- reduce differences between amd64 and i386.  notably, share pmap.c
  between them.  it makes several i386 pmap improvements available to
  amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff.
- implement deferred pmap switching for amd64.
- remove LARGEPAGES option.  always use large pages if available.
  also, make it work on amd64.

Revision 1.12.4.1 / (download) - annotate - [select for diffs], Wed Oct 17 21:38:16 2007 UTC (16 years, 6 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12: +168 -9 lines
Diff to previous 1.12 (colored) to selected 1.27 (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.13 / (download) - annotate - [select for diffs], Wed Oct 17 19:53:02 2007 UTC (16 years, 6 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4
Changes since 1.12: +1 -1 lines
Diff to previous 1.12 (colored) to selected 1.27 (colored)

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.10.6.6 / (download) - annotate - [select for diffs], Tue Oct 9 15:22:02 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.5: +3 -2 lines
Diff to previous 1.10.6.5 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with head.

Revision 1.12.2.4 / (download) - annotate - [select for diffs], Mon Oct 8 16:48:02 2007 UTC (16 years, 6 months ago) by ad
Branch: yamt-x86pmap
Changes since 1.12.2.3: +3 -3 lines
Diff to previous 1.12.2.3 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored) to selected 1.27 (colored)

intr_lapic_tlb_mcast: ci_tlbstate is a 32-bit int.

Revision 1.12.2.3 / (download) - annotate - [select for diffs], Sun Oct 7 12:51:15 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.12.2.2: +0 -2 lines
Diff to previous 1.12.2.2 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

remove some #ifdef _LOCORE and use genassym instead.

Revision 1.10.14.1 / (download) - annotate - [select for diffs], Wed Oct 3 19:22:10 2007 UTC (16 years, 6 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.10: +102 -3 lines
Diff to previous 1.10 (colored) next main 1.11 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.10.22.2 / (download) - annotate - [select for diffs], Tue Oct 2 18:26:41 2007 UTC (16 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.10.22.1: +3 -2 lines
Diff to previous 1.10.22.1 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.12.2.2 / (download) - annotate - [select for diffs], Sun Sep 30 15:57:03 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.12.2.1: +3 -3 lines
Diff to previous 1.12.2.1 (colored) to branchpoint 1.12 (colored) to selected 1.27 (colored)

Xintr_lapic_tlb_mcast: fix size of cpumasks.

Revision 1.12.2.1 / (download) - annotate - [select for diffs], Sun Sep 30 15:32:22 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.12: +36 -14 lines
Diff to previous 1.12 (colored) to selected 1.27 (colored)

implement deferred pmap switching for amd64, and make amd64 use
x86 shared pmap code.  it makes several i386 pmap improvements available
to amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Sep 17 21:41:54 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, vmlocking-base, ppcoea-renovation-base
Branch point for: yamt-x86pmap, bouyer-xenamd64
Changes since 1.11: +3 -2 lines
Diff to previous 1.11 (colored) to selected 1.27 (colored)

Don't subtract CR4_PGE from %cr4, just clear it. Otherwise bad things could
happen if we are unlucky and interrupt tlbflushg().

Revision 1.10.22.1 / (download) - annotate - [select for diffs], Mon Sep 3 16:47:01 2007 UTC (16 years, 7 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.10: +101 -3 lines
Diff to previous 1.10 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.7.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:22:34 2007 UTC (16 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.2: +101 -3 lines
Diff to previous 1.7.2.2 (colored) to branchpoint 1.7 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.10.18.1 / (download) - annotate - [select for diffs], Mon Sep 3 10:18:12 2007 UTC (16 years, 7 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.10: +101 -3 lines
Diff to previous 1.10 (colored) next main 1.11 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Aug 29 23:38:02 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base5
Changes since 1.10: +101 -3 lines
Diff to previous 1.10 (colored) to selected 1.27 (colored)

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.6.5 / (download) - annotate - [select for diffs], Wed Aug 29 22:42:56 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.4: +2 -2 lines
Diff to previous 1.10.6.4 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Fix error in previous.

Revision 1.10.6.4 / (download) - annotate - [select for diffs], Wed Aug 29 22:36:07 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.3: +16 -32 lines
Diff to previous 1.10.6.3 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

In the TLB shootdown handlers, don't ack the request until the invalidation
is complete. We could end up loading bogus translations due to a speculative
load if the calling CPU recycles a PDE/PTE, and these may not be shot down
before the handler returns. Pointed out by yamt. I think this is very
unlikely to happen but it's better to be on the safe side. To be revisted
later, as the invalidations are time consuming and it would be nice to
release the caller sooner rather than later.

Revision 1.10.6.3 / (download) - annotate - [select for diffs], Sun Aug 26 06:56:30 2007 UTC (16 years, 7 months ago) by yamt
Branch: vmlocking
Changes since 1.10.6.2: +1 -3 lines
Diff to previous 1.10.6.2 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

netisr.h is no longer necessary.

Revision 1.10.6.2 / (download) - annotate - [select for diffs], Thu Aug 23 12:09:00 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.10.6.1: +15 -16 lines
Diff to previous 1.10.6.1 (colored) to branchpoint 1.10 (colored) to selected 1.27 (colored)

Misc. fixes to previous.

Revision 1.10.6.1 / (download) - annotate - [select for diffs], Tue Aug 21 23:58:49 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.10: +118 -72 lines
Diff to previous 1.10 (colored) to selected 1.27 (colored)

amd64 changes, as yet untested:

- Adapt to vmlocking branch.
- Apply TLB shootdown and pv allocation changes to the pmap.
- Make it build.

Revision 1.7.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:05:41 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.1: +4 -3 lines
Diff to previous 1.7.2.1 (colored) to branchpoint 1.7 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.10 / (download) - annotate - [select for diffs], Fri Feb 9 21:55:01 2007 UTC (17 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, yamt-idlelwp, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, post-newlock2-merge, 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, ppcoea-renovation, nick-csl-alignment, matt-armv6, jmcneill-pm
Changes since 1.9: +4 -3 lines
Diff to previous 1.9 (colored) to selected 1.27 (colored)

Merge newlock2 to head.

Revision 1.8.20.3 / (download) - annotate - [select for diffs], Sun Jan 14 13:57:13 2007 UTC (17 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.8.20.2: +4 -4 lines
Diff to previous 1.8.20.2 (colored) to branchpoint 1.8 (colored) next main 1.9 (colored) to selected 1.27 (colored)

- Restore previous locking behaviour in cpu_switch(). Seems to fix what
  look like corrupted trap frames.
- Micro-optimisation for AST check/clear.

Revision 1.8.20.2 / (download) - annotate - [select for diffs], Fri Jan 12 01:00:40 2007 UTC (17 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.8.20.1: +3 -1 lines
Diff to previous 1.8.20.1 (colored) to branchpoint 1.8 (colored) to selected 1.27 (colored)

Sync with head.

Revision 1.7.2.1 / (download) - annotate - [select for diffs], Sat Dec 30 20:45:22 2006 UTC (17 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7: +3 -1 lines
Diff to previous 1.7 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.8.22.1 / (download) - annotate - [select for diffs], Sun Dec 10 07:15:46 2006 UTC (17 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored) next main 1.9 (colored) to selected 1.27 (colored)

sync with head.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Dec 8 15:05:18 2006 UTC (17 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, newlock2-nbase, newlock2-base
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored) to selected 1.27 (colored)

- pass intrframe by-pointer, not by-value.
- make i386 and xen use per-cpu interrupt stack.

xen part is reviewed by Manuel Bouyer.

Revision 1.8.20.1 / (download) - annotate - [select for diffs], Fri Oct 20 19:26:48 2006 UTC (17 years, 6 months ago) by ad
Branch: newlock2
Changes since 1.8: +2 -1 lines
Diff to previous 1.8 (colored) to selected 1.27 (colored)

Make ASTs per-LWP.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Dec 11 12:16:21 2005 UTC (18 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-splraiseipl-base2, yamt-splraiseipl-base, 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, simonb-timecounters, simonb-timcounters-final, rpaulo-netinet-merge-pcb-base, rpaulo-netinet-merge-pcb, peter-altq-base, peter-altq, 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-splraiseipl, newlock2
Changes since 1.7: +1 -1 lines
Diff to previous 1.7 (colored) to selected 1.27 (colored)

merge ktrace-lwp.

Revision 1.2.2.5 / (download) - annotate - [select for diffs], Thu Nov 10 13:50:24 2005 UTC (18 years, 5 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.4: +1 -14 lines
Diff to previous 1.2.2.4 (colored) next main 1.3 (colored) to selected 1.27 (colored)

Sync with HEAD. Here we go again...

Revision 1.7 / (download) - annotate - [select for diffs], Tue May 31 00:45:02 2005 UTC (18 years, 10 months ago) by chs
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.6: +1 -14 lines
Diff to previous 1.6 (colored) to selected 1.27 (colored)

remove vestigal {,e}intr{names,cnt} symbols now that vmstat doesn't need them.

Revision 1.2.2.4 / (download) - annotate - [select for diffs], Tue Nov 2 07:50:21 2004 UTC (19 years, 5 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.3: +1 -11 lines
Diff to previous 1.2.2.3 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Oct 23 21:24:05 2004 UTC (19 years, 5 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.5: +1 -11 lines
Diff to previous 1.5 (colored) to selected 1.27 (colored)

to determine if an interrupt needs to grab the kernel lock or not,
check interrupt's own ipl rather than cpu's current ipl.

Revision 1.2.2.3 / (download) - annotate - [select for diffs], Tue Sep 21 13:12:07 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.2: +1 -1 lines
Diff to previous 1.2.2.2 (colored) to selected 1.27 (colored)

Fix the sync with head I botched.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Sat Sep 18 14:31:13 2004 UTC (19 years, 7 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.1: +0 -0 lines
Diff to previous 1.2.2.1 (colored) to selected 1.27 (colored)

Sync with HEAD.

Revision 1.2.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:31:30 2004 UTC (19 years, 8 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2: +11 -8 lines
Diff to previous 1.2 (colored) to selected 1.27 (colored)

Sync with HEAD

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jun 28 09:13:11 2004 UTC (19 years, 9 months ago) by fvdl
Branch: MAIN
Changes since 1.4: +6 -5 lines
Diff to previous 1.4 (colored) to selected 1.27 (colored)

Updaing ci_ilevel and testing ci_ipending must be done with all interrupts
off, or priority inversion can occur, which can lead to IPI deadlocks.
Leaves interrupts off for a bit longer, sadly, but with no noticeable
effects on the systems I tested on.

From YAMAMOTO Takashi.

Revision 1.4 / (download) - annotate - [select for diffs], Tue Jun 15 11:28:23 2004 UTC (19 years, 10 months ago) by fvdl
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored) to selected 1.27 (colored)

A double fault always pushes a 0.

Revision 1.3 / (download) - annotate - [select for diffs], Wed Aug 20 21:48:51 2003 UTC (20 years, 8 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
Changes since 1.2: +5 -3 lines
Diff to previous 1.2 (colored) to selected 1.27 (colored)

Pass pointers to frames from assembly, do not use the 'frame on stack
as argument passed by value' trick, as gcc 3.3.x makes (valid) assumptions
about the stack that will not be true. Costs 2 instructions per trap/syscall
on i386, 4 per interrupt for MP. One instruction per trap/syscall on amd64,
2 per interrupt for MP. I expect gcc 3.3.1 to make up for this by better
optimization (it'd better..)

While here, make amd64 compile again by using subr_mbr_disk.c

Revision 1.2 / (download) - annotate - [select for diffs], Sun May 4 23:46:41 2003 UTC (20 years, 11 months ago) by fvdl
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.1: +209 -102 lines
Diff to previous 1.1 (colored) to selected 1.27 (colored)

Follow i386, and mask deferred level-triggered interrupts at the ioapic.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Apr 26 18:39:33 2003 UTC (20 years, 11 months ago) by fvdl
Branch: MAIN
Diff to selected 1.27 (colored)

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>