CVS log for src/sys/arch/amd64/amd64/locore.S
Up to [cvs.NetBSD.org] / src / sys / arch / amd64 / amd64
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.225: download - view: text, markup, annotated - select for diffs
Wed Jul 31 20:05:28 2024 UTC (3 months ago) by andvar
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.224: preferred, colored
Changes since revision 1.224: +2 -2
lines
s/brinds/brings/ in comments.
Revision 1.214.4.2: download - view: text, markup, annotated - select for diffs
Wed Oct 18 15:19:09 2023 UTC (12 months, 2 weeks ago) by martin
Branches: netbsd-10
CVS tags: 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
Diff to: previous 1.214.4.1: preferred, colored; branchpoint 1.214: preferred, colored; next MAIN 1.215: preferred, colored
Changes since revision 1.214.4.1: +2 -2
lines
Pull up following revision(s) (requested by bouyer in ticket #427):
sys/arch/xen/include/hypervisor.h: revision 1.58
sys/arch/i386/i386/locore.S: revision 1.197
sys/arch/amd64/amd64/locore.S: revision 1.224
Xen's start_info_t is larger than 512 bytes these days, so bump the copy
size to a whole PAGE_SIZE, and CTASSERT() that start_info_t is smaller.
Luckily we didn't use yet the parts skipped
Revision 1.224: download - view: text, markup, annotated - select for diffs
Mon Oct 16 17:29:30 2023 UTC (12 months, 3 weeks ago) by bouyer
Branches: MAIN
CVS tags: thorpej-ifq-base,
thorpej-ifq,
thorpej-altq-separation-base,
thorpej-altq-separation,
perseant-exfatfs-base-20240630,
perseant-exfatfs-base,
perseant-exfatfs
Diff to: previous 1.223: preferred, colored
Changes since revision 1.223: +2 -2
lines
Xen's start_info_t is larger than 512 bytes these days, so bump the copy
size to a whole PAGE_SIZE, and CTASSERT() that start_info_t is smaller.
Luckily we didn't use yet the parts skipped
Revision 1.223: download - view: text, markup, annotated - select for diffs
Sun Jul 16 19:55:43 2023 UTC (15 months, 3 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.222: preferred, colored
Changes since revision 1.222: +15 -1
lines
x86: Sprinkle extensive commentary about %fs/%gs initialization.
Plus some other side quests like the three-stage GDT metamorphosis
lifecycle.
No functional change intended.
Revision 1.222: download - view: text, markup, annotated - select for diffs
Sat Jun 24 05:31:04 2023 UTC (16 months, 1 week ago) by msaitoh
Branches: MAIN
Diff to: previous 1.221: preferred, colored
Changes since revision 1.221: +2 -2
lines
Fix typo in comment.
Revision 1.221: download - view: text, markup, annotated - select for diffs
Sun May 14 09:05:39 2023 UTC (17 months, 3 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.220: preferred, colored
Changes since revision 1.220: +8 -8
lines
x86/locore.S: Nix trailing whitespace.
Revision 1.214.4.1: download - view: text, markup, annotated - select for diffs
Sat May 13 13:26:57 2023 UTC (17 months, 3 weeks ago) by martin
Branches: netbsd-10
Diff to: previous 1.214: preferred, colored
Changes since revision 1.214: +149 -1
lines
Pull up following revision(s) (requested by manu in ticket #159):
share/man/man8/man8.x86/boot.8: revision 1.27
sys/arch/i386/stand/efiboot/version: revision 1.3
share/man/man8/man8.x86/boot.8: revision 1.28
share/man/man8/man8.x86/boot.8: revision 1.29
sys/arch/i386/stand/lib/exec.c: revision 1.79
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13
sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6
sys/arch/i386/stand/efiboot/boot.c: revision 1.22
sys/arch/amd64/amd64/locore.S: revision 1.219
sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12
sys/arch/amd64/conf/files.amd64: revision 1.121
sys/arch/amd64/conf/std.amd64: revision 1.13
share/man/man8/man8.x86/pxeboot.8: revision 1.6
sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4
sys/arch/amd64/amd64/locore.S: revision 1.220
share/man/man8/man8.x86/dosboot.8: revision 1.4
share/man/man4/options.4: revision 1.524
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load
address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can
clash with previous UEFI memory allocation, as described here:
http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI
boostrap will copy the kernel image. Possible values are:
default - the default and prior behavior, copy at 0x200000.
none - do not copy and use the kernel image where it was loaded.
address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable.
It first discover where it was loaded in memory, and if this is
different than the expected 0x200000, hhe the kernel relocates
itself and start over at the right address.
Merge x86 boot options in x86/boot(8) and add undocumented UEFI options
We were supposed to keep the option list in x86/boot(8), x86/dosoot(8)
and x86/pxeboot(8) in sync, but it did not happen, hence it may work
better with all the options in x86/boot(8). Also add the undocumented
UEFI boot options.
Add a SELFRELOC kernel option for the sake of documentation clarity.
Instead of telling that x86/boot(8) reloc command needs a kernel able
to self relocate, we can tell it needs a kernel built with the
SELFRELOC option. This keeps the reader from wondering what could
make a kernel able to self relocate.
Remove XXX todo marker left by mistake
Raise the version for new feature (here reloc command)
Suggested by Masanobu SAITOH
Revision 1.185.2.1: download - view: text, markup, annotated - select for diffs
Sat May 13 11:45:53 2023 UTC (17 months, 3 weeks ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE
Diff to: previous 1.185: preferred, colored; next MAIN 1.186: preferred, colored
Changes since revision 1.185: +149 -1
lines
Pull up following revision(s) (requested by manu in ticket #1632):
share/man/man8/man8.x86/boot.8: revision 1.27
sys/arch/i386/stand/efiboot/version: revision 1.3
share/man/man8/man8.x86/boot.8: revision 1.28 (via patch)
share/man/man8/man8.x86/boot.8: revision 1.29 (via patch)
sys/arch/i386/stand/lib/exec.c: revision 1.79
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13
sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6
sys/arch/i386/stand/efiboot/boot.c: revision 1.22
sys/arch/amd64/amd64/locore.S: revision 1.219
sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12
sys/arch/amd64/conf/files.amd64: revision 1.121
sys/arch/amd64/conf/std.amd64: revision 1.13
share/man/man8/man8.x86/pxeboot.8: revision 1.6
sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4
sys/arch/amd64/amd64/locore.S: revision 1.220
share/man/man8/man8.x86/dosboot.8: revision 1.4
share/man/man4/options.4: revision 1.524
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load
address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can
clash with previous UEFI memory allocation, as described here:
http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI
boostrap will copy the kernel image. Possible values are:
default - the default and prior behavior, copy at 0x200000.
none - do not copy and use the kernel image where it was loaded.
address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable.
It first discover where it was loaded in memory, and if this is
different than the expected 0x200000, hhe the kernel relocates
itself and start over at the right address.
Merge x86 boot options in x86/boot(8) and add undocumented UEFI options
We were supposed to keep the option list in x86/boot(8), x86/dosoot(8)
and x86/pxeboot(8) in sync, but it did not happen, hence it may work
better with all the options in x86/boot(8). Also add the undocumented
UEFI boot options.
Add a SELFRELOC kernel option for the sake of documentation clarity.
Instead of telling that x86/boot(8) reloc command needs a kernel able
to self relocate, we can tell it needs a kernel built with the
SELFRELOC option. This keeps the reader from wondering what could
make a kernel able to self relocate.
Remove XXX todo marker left by mistake
Raise the version for new feature (here reloc command)
Suggested by Masanobu SAITOH
Revision 1.220: download - view: text, markup, annotated - select for diffs
Fri May 5 00:34:41 2023 UTC (18 months ago) by manu
Branches: MAIN
Diff to: previous 1.219: preferred, colored
Changes since revision 1.219: +6 -1
lines
Add a SELFRELOC kernel option for the sake of documentation clarity.
Instead of telling that x86/boot(8) reloc command needs a kernel able
to self relocate, we can tell it needs a kernel built with the
SELFRELOC option. This keeps the reader from wondering what could
make a kernel able to self relocate.
Revision 1.219: download - view: text, markup, annotated - select for diffs
Thu Apr 20 00:42:23 2023 UTC (18 months, 2 weeks ago) by manu
Branches: MAIN
Diff to: previous 1.218: preferred, colored
Changes since revision 1.218: +144 -1
lines
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load
address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can
clash with previous UEFI memory allocation, as described here:
http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI
boostrap will copy the kernel image. Possible values are:
default - the default and prior behavior, copy at 0x200000.
none - do not copy and use the kernel image where it was loaded.
address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable.
It first discover where it was loaded in memory, and if this is
different than the expected 0x200000, hhe the kernel relocates
itself and start over at the right address.
Revision 1.218: download - view: text, markup, annotated - select for diffs
Fri Mar 3 14:32:48 2023 UTC (20 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.217: preferred, colored
Changes since revision 1.217: +2 -17
lines
Revert "x86: Add kthread_fpu_enter/exit support, take two."
kthread_fpu_enter/exit changes broke some hardware, unclear why, to
investigate before fixing and reapplying these changes.
Revision 1.217: download - view: text, markup, annotated - select for diffs
Wed Mar 1 08:38:50 2023 UTC (20 months, 1 week ago) by riastradh
Branches: MAIN
Diff to: previous 1.216: preferred, colored
Changes since revision 1.216: +27 -3
lines
x86: Expand on comments on ordering around stores to ci_curlwp.
No functional change intended.
PR kern/57240
Revision 1.216: download - view: text, markup, annotated - select for diffs
Sat Feb 25 18:04:42 2023 UTC (20 months, 1 week ago) by riastradh
Branches: MAIN
Diff to: previous 1.215: preferred, colored
Changes since revision 1.215: +17 -2
lines
x86: Add kthread_fpu_enter/exit support, take two.
This time, make sure to restore the FPU state when switching to a
kthread in the middle of kthread_fpu_enter/exit.
This adds a single predicted-taken branch for the case of kthreads
that are not in kthread_fpu_enter/exit, so it incurs a penalty only
for threads that actually use it. Since it avoids FPU state
switching in kthreads that do use the FPU, namely cgd worker threads,
this should be a net performance win on systems using it and have
negligible impact otherwise.
XXX pullup-10
Revision 1.215: download - view: text, markup, annotated - select for diffs
Mon Dec 26 17:46:00 2022 UTC (22 months, 1 week ago) by christos
Branches: MAIN
Diff to: previous 1.214: preferred, colored
Changes since revision 1.214: +2 -2
lines
sysret -> sysretl for new binutils
Revision 1.214: download - view: text, markup, annotated - select for diffs
Wed Sep 7 00:40:18 2022 UTC (2 years, 1 month ago) by knakahara
Branches: MAIN
CVS tags: netbsd-10-base,
bouyer-sunxi-drm-base,
bouyer-sunxi-drm
Branch point for: netbsd-10
Diff to: previous 1.213: preferred, colored
Changes since revision 1.213: +4 -4
lines
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.213: download - view: text, markup, annotated - select for diffs
Sun Jun 12 11:36:42 2022 UTC (2 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.212: preferred, colored
Changes since revision 1.212: +11 -1
lines
XenPV: in cpu_switchto(), reset ci_xen_clockf_usermode/ci_xen_clockf_pc,
in case a clock interrupt is deffered while we're switching lwp.
Fix a (rare) panic:
panic: kernel diagnostic assertion "p != NULL" failed: file "/usr/src/sys/kern/kern_clock.c", line 438
seen when xen_timer_handler() is called from the splx() at the end of
mi_switch()
Revision 1.212: download - view: text, markup, annotated - select for diffs
Wed Nov 10 15:59:07 2021 UTC (2 years, 11 months ago) by msaitoh
Branches: MAIN
Diff to: previous 1.211: preferred, colored
Changes since revision 1.211: +2 -2
lines
s/annouce/announce/ in comment.
Revision 1.211: download - view: text, markup, annotated - select for diffs
Fri Aug 13 20:26:07 2021 UTC (3 years, 2 months ago) by andvar
Branches: MAIN
Diff to: previous 1.210: preferred, colored
Changes since revision 1.210: +2 -2
lines
s/struture/structure/ s/structre/structure/
Revision 1.210: download - view: text, markup, annotated - select for diffs
Sun Jun 21 16:57:18 2020 UTC (4 years, 4 months ago) by bouyer
Branches: 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
Diff to: previous 1.209: preferred, colored
Changes since revision 1.209: +11 -2
lines
On amd64, Xen PV calls syscalls and traps with events enabled.
Disable events on entry to be safe.
It should have been mostly safe for most cases, but for FPU traps
we need to reload the FPU state if we got interrupted at trap entry.
Hopefully fixes:
panic: kernel diagnostic assertion "curlwp->l_md.md_flags & MDL_FPU_IN_CPU" failed: file "/home/source/ab/HEAD/src/sys/arch/x86/x86/fpu.c", line 524
when running tests.
Revision 1.209: download - view: text, markup, annotated - select for diffs
Wed May 27 19:33:40 2020 UTC (4 years, 5 months ago) by ad
Branches: MAIN
Diff to: previous 1.208: preferred, colored
Changes since revision 1.208: +1 -56
lines
- Add a couple of wrapper functions around STOS and MOVS and use them to zero
and copy PTEs in preference to memset()/memcpy().
- Remove related SSE / pageidlezero stuff.
Revision 1.208: download - view: text, markup, annotated - select for diffs
Tue May 5 06:32:43 2020 UTC (4 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.207: preferred, colored
Changes since revision 1.207: +5 -4
lines
Fix KASAN, init_xen_early must be called after kasan_early_init.
Revision 1.207: download - view: text, markup, annotated - select for diffs
Sat May 2 19:01:08 2020 UTC (4 years, 6 months ago) by christos
Branches: MAIN
Diff to: previous 1.206: preferred, colored
Changes since revision 1.206: +4 -4
lines
Fix build without XEN
Revision 1.206: download - view: text, markup, annotated - select for diffs
Sat May 2 16:44:34 2020 UTC (4 years, 6 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.205: preferred, colored
Changes since revision 1.205: +84 -5
lines
Introduce Xen PVH support in GENERIC.
This is compiled in with
options XENPVHVM
x86 changes:
- add Xen section and xen pvh entry points to locore.S. Set vm_guest
to VM_GUEST_XENPVH in this entry point.
Most of the boot procedure (especially page table setup and switch to
paged mode) is shared with native.
- change some x86_delay() to delay_func(), which points to x86_delay() for
native/HVM, and xen_delay() for PVH
Xen changes:
- remove Xen bits from init_x86_64_ksyms() and init386_ksyms()
and move to xen_init_ksyms(), used for both PV and PVH
- set ISA no-legacy-devices property for PVH
- factor out code from Xen's cpu_bootconf() to xen_bootconf()
in xen_machdep.c
- set up a specific pvh_consinit() which starts with printk()
(which uses a simple hypercall that is available early) and switch to
xencons when we can use pmap_kenter_pa().
Revision 1.205: download - view: text, markup, annotated - select for diffs
Sat May 2 16:28:37 2020 UTC (4 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.204: preferred, colored
Changes since revision 1.204: +6 -1
lines
Call kasan_early_init earlier, to unbreak KASAN after the recent RNG
changes. Will also prevent further trouble.
Revision 1.204: download - view: text, markup, annotated - select for diffs
Thu Apr 30 17:21:12 2020 UTC (4 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.203: preferred, colored
Changes since revision 1.203: +1 -11
lines
The labels are already global, drop unused.
Revision 1.203: download - view: text, markup, annotated - select for diffs
Thu Apr 30 17:17:33 2020 UTC (4 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.202: preferred, colored
Changes since revision 1.202: +21 -1
lines
Switch to templates.
Revision 1.202: download - view: text, markup, annotated - select for diffs
Sun Apr 26 14:07:43 2020 UTC (4 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.201: preferred, colored
Changes since revision 1.201: +3 -1
lines
Put the template functions in the rodata section; they get hotpatched
into other places, but never execute directly.
Revision 1.201: download - view: text, markup, annotated - select for diffs
Sat Apr 25 15:26:16 2020 UTC (4 years, 6 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.200: preferred, colored
Changes since revision 1.200: +4 -2
lines
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.200.4.2: download - view: text, markup, annotated - select for diffs
Thu Apr 16 09:45:56 2020 UTC (4 years, 6 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.200.4.1: preferred, colored; branchpoint 1.200: preferred, colored; next MAIN 1.201: preferred, colored
Changes since revision 1.200.4.1: +2 -2
lines
More #ifndef XEN -> #ifndef XENPV
Revision 1.166.2.3: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:03:30 2020 UTC (4 years, 6 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.166.2.2: preferred, colored; branchpoint 1.166: preferred, colored; next MAIN 1.167: preferred, colored
Changes since revision 1.166.2.2: +18 -37
lines
Mostly merge changes from HEAD upto 20200411
Revision 1.200.4.1: download - view: text, markup, annotated - select for diffs
Wed Apr 8 17:59:16 2020 UTC (4 years, 6 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.200: preferred, colored
Changes since revision 1.200: +3 -1
lines
Remove VM_GUEST_XEN and define only Xen subtypes:
VM_GUEST_XENPV
VM_GUEST_XENPVH
VM_GUEST_XENHVM
VM_GUEST_XENPVHVM
Set vm_guest in the start routine, if it is hypervisor-specific (e.g Xen PV).
If vm_guest was not set early and we detect Xen in identify_hypervisor(),
assume it is VM_GUEST_XENHVM. Refine to VM_GUEST_PVXENHVM in
hypervisor_match().
Revision 1.166.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:07:25 2020 UTC (4 years, 6 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.166.2.1: preferred, colored; branchpoint 1.166: preferred, colored
Changes since revision 1.166.2.1: +11 -23
lines
Merge changes from current as of 20200406
Revision 1.195.2.1: download - view: text, markup, annotated - select for diffs
Fri Jan 17 21:47:22 2020 UTC (4 years, 9 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.195: preferred, colored; next MAIN 1.196: preferred, colored
Changes since revision 1.195: +3 -764
lines
Sync with head.
Revision 1.200: download - view: text, markup, annotated - select for diffs
Wed Jan 15 18:47:23 2020 UTC (4 years, 9 months ago) by ad
Branches: 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
Branch point for: bouyer-xenpvh
Diff to: previous 1.199: preferred, colored
Changes since revision 1.199: +1 -5
lines
Back out the cpu_switchto() workaround now that it's no longer needed.
Revision 1.199: download - view: text, markup, annotated - select for diffs
Mon Jan 13 11:40:15 2020 UTC (4 years, 9 months ago) by ad
Branches: MAIN
Diff to: previous 1.198: preferred, colored
Changes since revision 1.198: +5 -1
lines
It looks like Xen cpu_hatch() calls cpu_switchto() with prevlwp=NULL,
instead of calling idle_loop() directly. I can't test a change to
cpu_hatch() right now so allow for prevlwp=NULL.
Revision 1.198: download - view: text, markup, annotated - select for diffs
Thu Jan 9 00:42:24 2020 UTC (4 years, 9 months ago) by manu
Branches: MAIN
Diff to: previous 1.197: preferred, colored
Changes since revision 1.197: +1 -758
lines
Rollback multiboot2 for amd64, as requested by core
Revision 1.197: download - view: text, markup, annotated - select for diffs
Wed Jan 8 20:59:18 2020 UTC (4 years, 9 months ago) by skrll
Branches: MAIN
Diff to: previous 1.196: preferred, colored
Changes since revision 1.196: +3 -3
lines
oldlwp is always non-NULL in cpu_switchto so remove the test for NULL.
Revision 1.196: download - view: text, markup, annotated - select for diffs
Wed Jan 8 17:38:41 2020 UTC (4 years, 9 months ago) by ad
Branches: MAIN
Diff to: previous 1.195: preferred, colored
Changes since revision 1.195: +1 -5
lines
Hopefully fix some problems seen with MP support on non-x86, in particular
where curcpu() is defined as curlwp->l_cpu:
- mi_switch(): undo the ~2007ish optimisation to unlock curlwp before
calling cpu_switchto(). It's not safe to let other actors mess with the
LWP (in particular l->l_cpu) while it's still context switching. This
removes l->l_ctxswtch.
- Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since
it's now covered by the LWP's lock.
- Ditch lwp_exit_switchaway() and just call mi_switch() instead. Everything
is in cache anyway so it wasn't buying much by trying to avoid saving old
state. This means cpu_switchto() will never be called with prevlwp ==
NULL.
- Remove some KERNEL_LOCK handling which hasn't been needed for years.
Revision 1.195: download - view: text, markup, annotated - select for diffs
Sun Dec 15 02:58:21 2019 UTC (4 years, 10 months ago) by manu
Branches: MAIN
CVS tags: ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.194: preferred, colored
Changes since revision 1.194: +1 -1
lines
Fix typo that caused two instructions to be commented out
Oddly, that did not break booting.
Revision 1.194: download - view: text, markup, annotated - select for diffs
Sun Dec 15 02:56:40 2019 UTC (4 years, 10 months ago) by manu
Branches: MAIN
Diff to: previous 1.193: preferred, colored
Changes since revision 1.193: +2 -2
lines
Restore multiboot 2 header in amd64 kernel
The header must appear below 32k offset in the kernel file, but we
have to make sure it does not load at low addresses, otherwise we
break BIOS boot.
.text section used to load at 0x200000, we just load multiboot section
there, and have .text loaded just after.
Revision 1.193: download - view: text, markup, annotated - select for diffs
Tue Dec 10 02:06:07 2019 UTC (4 years, 10 months ago) by manu
Branches: MAIN
Diff to: previous 1.192: preferred, colored
Changes since revision 1.192: +758 -1
lines
Add multiboot 2 support to amd64 kernel
Revision 1.192: download - view: text, markup, annotated - select for diffs
Fri Nov 22 23:36:25 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.191: preferred, colored
Changes since revision 1.191: +8 -16
lines
- On-demand zeroing pages with MOVNTI is crazy. It empties L1/L2/L3.
- Disable zeroing in the idle loop. That needs a cache-friendly strategy.
Result: 3 to 4% reduction in kernel build time on my test system.
Inspired by a discussion with Mateusz Guzik and David Maxwell.
Revision 1.191: download - view: text, markup, annotated - select for diffs
Thu Nov 21 19:27:54 2019 UTC (4 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.190: preferred, colored
Changes since revision 1.190: +2 -2
lines
x86: abort pageidlezero unconditionally if there is something to run.
Revision 1.190: download - view: text, markup, annotated - select for diffs
Thu Nov 14 16:23:52 2019 UTC (4 years, 11 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-20191119
Diff to: previous 1.189: preferred, colored
Changes since revision 1.189: +10 -1
lines
Add support for Kernel Memory Sanitizer (kMSan). It detects uninitialized
memory used by the kernel at run time, and just like kASan and kCSan, it
is an excellent feature. It has already detected 38 uninitialized variables
in the kernel during my testing, which I have since discreetly fixed.
We use two shadows:
- "shad", to track uninitialized memory with a bit granularity (1:1).
Each bit set to 1 in the shad corresponds to one uninitialized bit of
real kernel memory.
- "orig", to track the origin of the memory with a 4-byte granularity
(1:1). Each uint32_t cell in the orig indicates the origin of the
associated uint32_t of real kernel memory.
The memory consumption of these shadows is consequent, so at least 4GB of
RAM is recommended to run kMSan.
The compiler inserts calls to specific __msan_* functions on each memory
access, to manage both the shad and the orig and detect uninitialized
memory accesses that change the execution flow (like an "if" on an
uninitialized variable).
We mark as uninit several types of memory buffers (stack, pools, kmem,
malloc, uvm_km), and check each buffer passed to copyout, copyoutstr,
bwrite, if_transmit_lock and DMA operations, to detect uninitialized memory
that leaves the system. This allows us to detect kernel info leaks in a way
that is more efficient and also more user-friendly than KLEAK.
Contrary to kASan, kMSan requires comprehensive coverage, ie we cannot
tolerate having one non-instrumented function, because this could cause
false positives. kMSan cannot instrument ASM functions, so I converted
most of them to __asm__ inlines, which kMSan is able to instrument. Those
that remain receive special treatment.
Contrary to kASan again, kMSan uses a TLS, so we must context-switch this
TLS during interrupts. We use different contexts depending on the interrupt
level.
The orig tracks precisely the origin of a buffer. We use a special encoding
for the orig values, and pack together in each uint32_t cell of the orig:
- a code designating the type of memory (Stack, Pool, etc), and
- a compressed pointer, which points either (1) to a string containing
the name of the variable associated with the cell, or (2) to an area
in the kernel .text section which we resolve to a symbol name + offset.
This encoding allows us not to consume extra memory for associating
information with each cell, and produces a precise output, that can tell
for example the name of an uninitialized variable on the stack, the
function in which it was pushed on the stack, and the function where we
accessed this uninitialized variable.
kMSan is available with LLVM, but not with GCC.
The code is organized in a way that is similar to kASan and kCSan, so it
means that other architectures than amd64 can be supported.
Revision 1.189: download - view: text, markup, annotated - select for diffs
Sat Oct 12 06:31:03 2019 UTC (5 years ago) by maxv
Branches: MAIN
Diff to: previous 1.188: preferred, colored
Changes since revision 1.188: +5 -22
lines
Rewrite the FPU code on x86. This greatly simplifies the logic and removes
the dependency on IPL_HIGH. NVMM is updated accordingly. Posted on
port-amd64 a week ago.
Bump the kernel version to 9.99.16.
Revision 1.188: download - view: text, markup, annotated - select for diffs
Fri Oct 4 11:47:07 2019 UTC (5 years, 1 month ago) by maxv
Branches: MAIN
Diff to: previous 1.187: preferred, colored
Changes since revision 1.187: +2 -2
lines
Rename fpu_eagerswitch to fpu_switch, and add fpu_xstate_reload to
simplify.
Revision 1.187: download - view: text, markup, annotated - select for diffs
Thu Oct 3 05:06:29 2019 UTC (5 years, 1 month ago) by maxv
Branches: MAIN
Diff to: previous 1.186: preferred, colored
Changes since revision 1.186: +2 -5
lines
Remove the LazyFPU code, as posted 5 months ago on port-amd64@.
Revision 1.186: download - view: text, markup, annotated - select for diffs
Wed Aug 21 16:35:10 2019 UTC (5 years, 2 months ago) by maxv
Branches: MAIN
Diff to: previous 1.185: preferred, colored
Changes since revision 1.185: +4 -12
lines
Switch from printf to panic. These messages were notorious for being
unreadable, and at least a clean panic allows the user to inspect the
system via DDB. Also simplify the output, EAX gets overwritten with
the error code so it indicates nothing meaningful.
Revision 1.166.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:05:47 2019 UTC (5 years, 4 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +114 -117
lines
Sync with HEAD
Revision 1.185: download - view: text, markup, annotated - select for diffs
Sat May 18 13:32:12 2019 UTC (5 years, 5 months ago) by maxv
Branches: 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
Branch point for: netbsd-9
Diff to: previous 1.184: preferred, colored
Changes since revision 1.184: +17 -25
lines
Two changes in the CPU mitigations:
* Micro-optimize: put every mitigation in the same branch. This removes
two branches in each exc/int return path, and removes all branches in
the syscall return path.
* Modify the SpectreV2 mitigation to be compatible with SpectreV4. I
recently realized that both couldn't be enabled at the same time on
Intel. This is because initially, when there was just SpectreV2, we
could reset the whole IA32_SPEC_CTRL MSR. But then Intel added another
bit in it for SpectreV4, so it isn't right to reset it entirely
anymore. SSBD needs to stay.
Revision 1.184: download - view: text, markup, annotated - select for diffs
Sat May 18 07:58:58 2019 UTC (5 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.183: preferred, colored
Changes since revision 1.183: +2 -1
lines
Set the symbol type for intrfastexit, so that tools like tprof can find
the symbol name.
Revision 1.183: download - view: text, markup, annotated - select for diffs
Wed May 15 18:27:51 2019 UTC (5 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.182: preferred, colored
Changes since revision 1.182: +1 -3
lines
Enable EagerFPU on Xen PV. Should work as-is. Sent on port-amd64@.
Revision 1.182: download - view: text, markup, annotated - select for diffs
Wed May 15 17:31:41 2019 UTC (5 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.181: preferred, colored
Changes since revision 1.181: +1 -29
lines
Change the way SVS is disabled. Now you have to pass "boot -3" from the
bootloader. The machdep.svs.enabled sysctl becomes read-only, and just
indicates whether SVS is enabled.
Sent on port-amd64@.
Revision 1.123.6.9: download - view: text, markup, annotated - select for diffs
Tue May 14 17:12:19 2019 UTC (5 years, 5 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE,
netbsd-8-2-RELEASE,
netbsd-8-1-RELEASE,
netbsd-8-1-RC1
Diff to: previous 1.123.6.8: preferred, colored; branchpoint 1.123: preferred, colored; next MAIN 1.124: preferred, colored
Changes since revision 1.123.6.8: +18 -1
lines
Pull up following revision(s) (requested by maxv in ticket #1269):
sys/arch/amd64/amd64/locore.S: revision 1.181 (adapted)
sys/arch/amd64/amd64/amd64_trap.S: revision 1.47 (adapted)
sys/arch/x86/include/specialreg.h: revision 1.144 (adapted)
sys/arch/amd64/include/frameasm.h: revision 1.43 (adapted)
sys/arch/x86/x86/spectre.c: revision 1.27 (adapted)
Mitigation for INTEL-SA-00233: Microarchitectural Data Sampling (MDS).
It requires a microcode update, now available on the Intel website. The
microcode modifies the behavior of the VERW instruction, and makes it flush
internal CPU buffers. We hotpatch the return-to-userland path to add VERW.
Two sysctls are added:
machdep.mds.mitigated = {0/1} user-settable
machdep.mds.method = {string} constructed by the kernel
The kernel will automatically enable the mitigation if the updated
microcode is present. If the new microcode is not present, the user can
load it via cpuctl, and set machdep.mds.mitigated=1.
Revision 1.181: download - view: text, markup, annotated - select for diffs
Tue May 14 16:59:25 2019 UTC (5 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.180: preferred, colored
Changes since revision 1.180: +18 -1
lines
Mitigation for INTEL-SA-00233: Microarchitectural Data Sampling (MDS).
It requires a microcode update, now available on the Intel website. The
microcode modifies the behavior of the VERW instruction, and makes it flush
internal CPU buffers. We hotpatch the return-to-userland path to add VERW.
Two sysctls are added:
machdep.mds.mitigated = {0/1} user-settable
machdep.mds.method = {string} constructed by the kernel
The kernel will automatically enable the mitigation if the updated
microcode is present. If the new microcode is not present, the user can
load it via cpuctl, and set machdep.mds.mitigated=1.
Revision 1.180: download - view: text, markup, annotated - select for diffs
Sat Mar 9 08:42:25 2019 UTC (5 years, 8 months ago) by maxv
Branches: MAIN
CVS tags: isaki-audio2-base,
isaki-audio2
Diff to: previous 1.179: preferred, colored
Changes since revision 1.179: +18 -18
lines
Start replacing the x86 PTE bits.
Revision 1.179: download - view: text, markup, annotated - select for diffs
Thu Mar 7 13:26:24 2019 UTC (5 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.178: preferred, colored
Changes since revision 1.178: +3 -3
lines
Drop PG_RO, PG_KR and PG_PROT, they are useless and create confusion.
Revision 1.178: download - view: text, markup, annotated - select for diffs
Thu Feb 14 08:18:25 2019 UTC (5 years, 8 months ago) by cherry
Branches: MAIN
Diff to: previous 1.177: preferred, colored
Changes since revision 1.177: +2 -2
lines
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.177: download - view: text, markup, annotated - select for diffs
Wed Feb 13 05:36:59 2019 UTC (5 years, 8 months ago) by cherry
Branches: MAIN
Diff to: previous 1.176: preferred, colored
Changes since revision 1.176: +9 -5
lines
Rig the hypercall callback page such that when the kernel happens to
run without a XEN domain loader having previously overwritten the
hypercall page with its hypercall trampoline machine code, we still
get to detect its presence by calling the xen_version hypercall stub.
We use this hack to detect the presence or absence of the hypervisor,
without relying on the MSR support on HVM domains.
This works as an added sanity check that the hypercall page
registration has indeed succeeded in HVM mode.
Revision 1.176: download - view: text, markup, annotated - select for diffs
Mon Feb 11 14:59:32 2019 UTC (5 years, 8 months ago) by cherry
Branches: MAIN
Diff to: previous 1.175: preferred, colored
Changes since revision 1.175: +17 -15
lines
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.175: download - view: text, markup, annotated - select for diffs
Sat Feb 2 12:32:54 2019 UTC (5 years, 9 months ago) by cherry
Branches: MAIN
Diff to: previous 1.174: preferred, colored
Changes since revision 1.174: +3 -3
lines
Switch NetBSD/xen to use XEN api tag RELEASE-4.11.1
The headers for this api are in sys/external/mit/xen-include-public/dist/
Revision 1.157.2.9: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:55:24 2018 UTC (6 years, 2 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.157.2.8: preferred, colored; branchpoint 1.157: preferred, colored; next MAIN 1.158: preferred, colored
Changes since revision 1.157.2.8: +1 -8
lines
Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
Revision 1.174: download - view: text, markup, annotated - select for diffs
Sun Aug 12 15:31:01 2018 UTC (6 years, 2 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226,
pgoyette-compat-1126,
pgoyette-compat-1020,
pgoyette-compat-0930,
pgoyette-compat-0906
Diff to: previous 1.173: preferred, colored
Changes since revision 1.173: +1 -8
lines
More ASLR: randomize the location of the PTE area. The PTE slot is not
created in locore anymore, but a little later; by using the already
entered L4 page, rather than the recursive slot itself (which doesn't
exist yet).
In the prekern we still map the slot - the prekern behaves as an external
locore -, because we need it as part of the randomization/relocation
work. The kernel then removes this slot, and regenerates a randomized
one.
Tested on GENERIC and GENERIC_KASLR, Xen doesn't have it and dom0 still
boots fine.
Revision 1.157.2.8: download - view: text, markup, annotated - select for diffs
Sat Jul 28 04:37:26 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.7: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.7: +53 -35
lines
Sync with HEAD
Revision 1.173: download - view: text, markup, annotated - select for diffs
Thu Jul 26 09:29:08 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-0728
Diff to: previous 1.172: preferred, colored
Changes since revision 1.172: +6 -1
lines
Rework dbregs, to switch the registers during context switches, and not on
each user->kernel transition via userret. Reloads of DR6/DR7 are expensive
on both native and xen.
Revision 1.172: download - view: text, markup, annotated - select for diffs
Sat Jul 21 06:09:13 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
Diff to: previous 1.171: preferred, colored
Changes since revision 1.171: +2 -1
lines
More ASLR. Randomize the location of the direct map at boot time on amd64.
This doesn't need "options KASLR" and works on GENERIC. Will soon be
enabled by default.
The location of the areas is abstracted in a slotspace structure. Ideally
we should always use this structure when touching the L4 slots, instead of
the current cocktail of global variables and constants.
machdep initializes the structure with the default values, and we then
randomize its dmap entry. Ideally machdep should randomize everything at
once, but in the case of the direct map its size is determined a little
later in the boot procedure, so we're forced to randomize its location
later too.
Revision 1.171: download - view: text, markup, annotated - select for diffs
Sat Jul 14 14:29:40 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
Diff to: previous 1.170: preferred, colored
Changes since revision 1.170: +3 -3
lines
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.170: download - view: text, markup, annotated - select for diffs
Thu Jul 12 19:48:16 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
Diff to: previous 1.169: preferred, colored
Changes since revision 1.169: +21 -1
lines
Handle NMIs correctly when SVS is enabled. We store the kernel's CR3 at the
top of the NMI stack, and we unconditionally switch to it, because we don't
know with which page tables we received the NMI. Hotpatch the whole thing as
usual.
This restores the ability to use PMCs on Intel CPUs.
Revision 1.123.6.8: download - view: text, markup, annotated - select for diffs
Tue Jul 10 15:35:26 2018 UTC (6 years, 3 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RELEASE
Diff to: previous 1.123.6.7: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.7: +13 -15
lines
Pull up the following, requested by maxv in ticket #910:
sys/arch/amd64/amd64/locore.S r1.167 (patch)
sys/arch/i386/i386/locore.S r1.158 (patch)
sys/arch/x86/x86/fpu.c r1.44 (patch)
Don't switch the FPU when leaving a softint. This fixes
several problems when EagerFPU is enabled.
Revision 1.169: download - view: text, markup, annotated - select for diffs
Mon Jul 9 18:52:04 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
Diff to: previous 1.168: preferred, colored
Changes since revision 1.168: +1 -7
lines
Don't push/pop %rdx, we don't care about preserving its value.
Revision 1.168: download - view: text, markup, annotated - select for diffs
Mon Jul 9 18:43:05 2018 UTC (6 years, 3 months ago) by maxv
Branches: MAIN
Diff to: previous 1.167: preferred, colored
Changes since revision 1.167: +18 -20
lines
Small optimization: don't execute the Meltdown/SpectreV2 cswitch code if
we're leaving a softint. We were executing the softint with the LWP's
context, so no need to switch the SVS/IBRS contexts, we already are in
the desired contexts.
Revision 1.167: download - view: text, markup, annotated - select for diffs
Fri Jun 29 19:21:43 2018 UTC (6 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.166: preferred, colored
Changes since revision 1.166: +13 -13
lines
Call fpu_eagerswitch a little later, after we make sure newlwp is not
pinned.
Because if it is, the fpu state of the lwp we are context-switching to
is already installed on the current cpu, so no point re-installing it.
Or, it isn't, and in this case we don't want to install it.
This wrong re-installation can occur when we leave a softint.
It may fix bugs in places that call fpusave_lwp with spl != IPL_HIGH,
and that expect the fpu state to stay in memory. As far as I can tell
only cpu_lwp_free meets these conditions, and as far as I can tell
again, there it's harmless.
Should help PR/53399.
Revision 1.157.2.7: download - view: text, markup, annotated - select for diffs
Mon Jun 25 07:25:38 2018 UTC (6 years, 4 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.6: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.6: +14 -2
lines
Sync with HEAD
Revision 1.123.6.7: download - view: text, markup, annotated - select for diffs
Sat Jun 23 11:39:01 2018 UTC (6 years, 4 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RC2
Diff to: previous 1.123.6.6: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.6: +15 -1
lines
Pull up the following, via patch, requested by maxv in ticket #897:
sys/arch/amd64/amd64/locore.S 1.166 (patch)
sys/arch/i386/i386/locore.S 1.157 (patch)
sys/arch/x86/include/cpu.h 1.92 (patch)
sys/arch/x86/include/fpu.h 1.9 (patch)
sys/arch/x86/x86/fpu.c 1.33-1.39 (patch)
sys/arch/x86/x86/identcpu.c 1.72 (patch)
sys/arch/x86/x86/vm_machdep.c 1.34 (patch)
sys/arch/x86/x86/x86_machdep.c 1.116,1.117 (patch)
Support eager fpu switch, to work around INTEL-SA-00145.
Provide a sysctl machdep.fpu_eager, which gets automatically
initialized to 1 on affected CPUs.
Revision 1.166: download - view: text, markup, annotated - select for diffs
Thu Jun 14 14:36:46 2018 UTC (6 years, 4 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-base,
pgoyette-compat-0625
Branch point for: phil-wifi
Diff to: previous 1.165: preferred, colored
Changes since revision 1.165: +14 -2
lines
Add some code to support eager fpu switch, INTEL-SA-00145. We restore the
FPU state of the lwp right away during context switches. This guarantees
that when the CPU executes in userland, the FPU doesn't contain secrets.
Maybe we also need to clear the FPU in setregs(), not sure about this one.
Can be enabled/disabled via:
machdep.fpu_eager = {0/1}
Not yet turned on automatically on affected CPUs (Intel Family 6).
More generally it would be good to turn it on automatically when XSAVEOPT
is supported, because in this case there is probably a non-negligible
performance gain; but we need to fix PR/52966.
Revision 1.123.6.6: download - view: text, markup, annotated - select for diffs
Sat May 5 15:00:29 2018 UTC (6 years, 6 months ago) by martin
Branches: netbsd-8
Diff to: previous 1.123.6.5: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.5: +6 -6
lines
Pull up following revision(s) (requested by maxv in ticket #786):
sys/arch/amd64/amd64/locore.S: revision 1.164,1.165
Adjust Xsyscall_svs to not use movq for 64bit immediates either.
Do not use movq for loading arbitrary 64bit immediates. The ISA
restricts it to 32bit immediates.
Revision 1.157.2.6: download - view: text, markup, annotated - select for diffs
Wed May 2 07:20:02 2018 UTC (6 years, 6 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.5: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.5: +4 -4
lines
Synch with HEAD
Revision 1.165: download - view: text, markup, annotated - select for diffs
Mon Apr 23 22:53:04 2018 UTC (6 years, 6 months ago) by joerg
Branches: MAIN
CVS tags: pgoyette-compat-0521,
pgoyette-compat-0502
Diff to: previous 1.164: preferred, colored
Changes since revision 1.164: +4 -4
lines
Adjust Xsyscall_svs to not use movq for 64bit immediates either.
Revision 1.157.2.5: download - view: text, markup, annotated - select for diffs
Sun Apr 22 07:20:17 2018 UTC (6 years, 6 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.4: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.4: +3 -3
lines
Sync with HEAD
Revision 1.164: download - view: text, markup, annotated - select for diffs
Sat Apr 21 23:25:01 2018 UTC (6 years, 6 months ago) by joerg
Branches: MAIN
CVS tags: pgoyette-compat-0422
Diff to: previous 1.163: preferred, colored
Changes since revision 1.163: +3 -3
lines
Do not use movq for loading arbitrary 64bit immediates. The ISA
restricts it to 32bit immediates.
Revision 1.157.2.4: download - view: text, markup, annotated - select for diffs
Sat Apr 7 04:12:11 2018 UTC (6 years, 7 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.3: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.3: +1 -1
lines
Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
Revision 1.157.2.3: download - view: text, markup, annotated - select for diffs
Fri Mar 30 10:09:07 2018 UTC (6 years, 7 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.2: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.2: +3 -1
lines
Extract compat_14 stuff into its own module
Revision 1.163: download - view: text, markup, annotated - select for diffs
Fri Mar 30 09:53:08 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-0415,
pgoyette-compat-0407
Diff to: previous 1.162: preferred, colored
Changes since revision 1.162: +3 -1
lines
Add #ifndef XEN, xen doesn't have speculation_barrier.
Revision 1.157.2.2: download - view: text, markup, annotated - select for diffs
Fri Mar 30 06:20:11 2018 UTC (6 years, 7 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157.2.1: preferred, colored; branchpoint 1.157: preferred, colored
Changes since revision 1.157.2.1: +42 -1
lines
Resolve conflicts between branch and HEAD
Revision 1.162: download - view: text, markup, annotated - select for diffs
Thu Mar 29 07:21:24 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-0330
Diff to: previous 1.161: preferred, colored
Changes since revision 1.161: +9 -1
lines
Allow IBRS to be disabled dynamically.
Revision 1.161: download - view: text, markup, annotated - select for diffs
Wed Mar 28 19:56:40 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
Diff to: previous 1.160: preferred, colored
Changes since revision 1.160: +5 -1
lines
The call to svs_lwp_switch can clobber %rdi/%rsi, so restore them before
calling speculation_barrier.
Revision 1.160: download - view: text, markup, annotated - select for diffs
Wed Mar 28 16:02:49 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
Diff to: previous 1.159: preferred, colored
Changes since revision 1.159: +30 -1
lines
Add the IBRS mitigation for SpectreV2 on amd64.
Different operations are performed during context transitions:
user->kernel: IBRS <- 1
kernel->user: IBRS <- 0
And during context switches:
user->user: IBPB <- 0
kernel->user: IBPB <- 0
[user->kernel:IBPB <- 0 this one may not be needed]
We use two macros, IBRS_ENTER and IBRS_LEAVE, to set the IBRS bit. The
thing is hotpatched for better performance, like SVS.
The idea is that IBRS is a "privileged" bit, which is set to 1 in kernel
mode and 0 in user mode. To protect the branch predictor between user
processes (which are of the same privilege), we use the IBPB barrier.
The Intel manual also talks about (MWAIT/HLT)+HyperThreading, and says
that when using either of the two instructions IBRS must be disabled for
better performance on the core. I'm not totally sure about this part, so
I'm not adding it now.
IBRS is available only when the Intel microcode update is applied. The
mitigation must be enabled manually with machdep.spectreV2.mitigated.
Tested by msaitoh a week ago (but I adapted a few things since). Probably
more changes to come.
Revision 1.123.6.5: download - view: text, markup, annotated - select for diffs
Thu Mar 22 16:59:03 2018 UTC (6 years, 7 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RC1
Diff to: previous 1.123.6.4: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.4: +241 -99
lines
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.157.2.1: download - view: text, markup, annotated - select for diffs
Thu Mar 22 01:44:41 2018 UTC (6 years, 7 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +3 -6
lines
Synch with HEAD, resolve conflicts
Revision 1.159: download - view: text, markup, annotated - select for diffs
Tue Mar 20 18:27:58 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-0322
Diff to: previous 1.158: preferred, colored
Changes since revision 1.158: +3 -4
lines
(Re)Fix handling of segment register faults. My previous attempt did fix
faults occuring when reloading %es/%ds/%fs/%gs, but it did not fix faults
occuring when executing 'iretq', because before iretq we needed to do +16
in %rsp, and the resulting stack layout was not the one kernuser_reenter()
expected (tf_trapno and tf_err were not there).
So now: pop tf_trapno and tf_err right away in intrfastexit(), and update
the layout in kernuser_reenter() accordingly. The resulting code is
actually simpler.
Tested by "hardcoding" an iretq fault; the process correctly receives a
SIGSEGV.
(Note that segment register faults do not happen in the wild, you really
need to try hard to trigger one.)
Revision 1.158: download - view: text, markup, annotated - select for diffs
Tue Mar 20 14:26:49 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
Diff to: previous 1.157: preferred, colored
Changes since revision 1.157: +1 -3
lines
Remove the sysretq fault handler. It is broken with SVS, and not really
needed anyway. Initially I had added it so that if such a fault was
received the kernel would panic "cleanly" instead of crashing in a
potentially undefined way.
I'll re-add this handler later.
Revision 1.123.6.4: download - view: text, markup, annotated - select for diffs
Tue Mar 13 15:47:44 2018 UTC (6 years, 7 months ago) by martin
Branches: netbsd-8
Diff to: previous 1.123.6.3: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.3: +3 -2
lines
Pullup the following revisions via patch, requested by maxv in ticket #629:
sys/arch/amd64/amd64/genassym.cf 1.63,1.64
sys/arch/amd64/amd64/locore.S 1.144
sys/arch/amd64/amd64/machdep.c 1.281-1.283
sys/arch/i386/i386/genassym.cf 1.105-1.106
sys/arch/i386/i386/locore.S 1.155
sys/arch/i386/i386/machdep.c 1.802 (adapted),1.803
sys/arch/x86/include/cpu.h 1.85
sys/arch/x86/x86/intr.c 1.115-1.116
sys/arch/x86/x86/pmap.c 1.275
sys/arch/x86/x86/sys_machdep.c 1.45
sys/arch/xen/x86/cpu.c 1.117
Stop sharing the double-fault stack.
Merge the TSS structures into one single cpu_tss structure, and
allocate it dynamically.
Revision 1.123.6.3: download - view: text, markup, annotated - select for diffs
Wed Mar 7 14:50:56 2018 UTC (6 years, 8 months ago) by martin
Branches: netbsd-8
Diff to: previous 1.123.6.2: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.2: +15 -1
lines
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.157: download - view: text, markup, annotated - select for diffs
Sun Feb 25 12:37:16 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-base,
pgoyette-compat-0315
Branch point for: pgoyette-compat
Diff to: previous 1.156: preferred, colored
Changes since revision 1.156: +21 -11
lines
Fix handling of segment register faults when running with SVS. The behavior
is changed also in the non-SVS case.
I've put a documentation in amd64_trap.S. Basically, the problem with SVS
is that if iret faults, we already have a full trapframe pushed on the
stack and the CPU will push another frame on this stack (nested), but it
hits the redzone below the stack since it is still running with the user
page table loaded.
To fix that, we pop a good part of the trapframe earlier in intrfastexit.
If iret faults, the current %rsp has enough room for an iret frame, and
the CPU can push that without problem. We then switch back to the outer
iret frame (the frame the CPU was trying to pop by executing iret, but that
it didn't pop for real because iret faulted), call INTRENTRY, and handle
the trap as if it had been received from userland directly.
Revision 1.156: download - view: text, markup, annotated - select for diffs
Sat Feb 24 17:12:10 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.155: preferred, colored
Changes since revision 1.155: +19 -26
lines
Use %rax instead of %r15 in the non-SVS case, to reduce the diff against
SVS. In SVS we use %rax instead of %r15 because the following instructions
cannot be encoded:
movq %r15,SVS_UTLS+UTLS_SCRATCH
movq SVS_UTLS+UTLS_RSP0,%r15
Revision 1.155: download - view: text, markup, annotated - select for diffs
Thu Feb 22 14:57:11 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.154: preferred, colored
Changes since revision 1.154: +3 -5
lines
Adapt previous; put #ifdef SVS around the declaration directly.
Revision 1.154: download - view: text, markup, annotated - select for diffs
Thu Feb 22 14:08:48 2018 UTC (6 years, 8 months ago) by martin
Branches: MAIN
Diff to: previous 1.153: preferred, colored
Changes since revision 1.153: +5 -1
lines
Protect the SVS part of SYSCALL_ENTRY by #ifdef SVS to make non-SVS
kernels compile again.
Revision 1.153: download - view: text, markup, annotated - select for diffs
Thu Feb 22 10:42:10 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.152: preferred, colored
Changes since revision 1.152: +25 -9
lines
Make the machdep.svs_enabled sysctl writable, and add the kernel code
needed to disable SVS at runtime.
We set 'svs_enabled' to false, and hotpatch the kernel entry/exit points
to eliminate the context switch code.
We need to make sure there is no remote CPU that is executing the code we
are hotpatching. So we use two barriers:
* After the first one each CPU is guaranteed to be executing in
svs_disable_cpu with interrupts disabled (this way it can't leave this
place).
* After the second one it is guaranteed that SVS is disabled, so we flush
the cache, enable interrupts and continue execution normally.
Between the two barriers, cpu0 will disable SVS (svs_enabled=false and
hotpatch), and each CPU will restore the generic syscall entry point.
Three notes:
* We should call svs_pgg_update(true) afterwards, to put back PG_G on
the kernel pages (for better performance). This will be done in another
commit.
* The fact that we disable interrupts does not prevent us from receiving
an NMI, and it would be problematic. So we need to add some code to
verify that PMCs are disabled before hotpatching. This will be done
in another commit.
* In svs_disable() we expect each CPU to be online. We need to add a
check to make sure they indeed are.
The sysctl allows only a 1->0 transition. There is no point in doing 0->1
transitions anyway, and it would be complicated to implement because we
need to re-synchronize the CPU user page tables with the current ones (we
lost track of them in the last 1->0 transition).
Revision 1.152: download - view: text, markup, annotated - select for diffs
Thu Feb 22 08:56:51 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.151: preferred, colored
Changes since revision 1.151: +102 -30
lines
Add a dynamic detection for SVS.
The SVS_* macros are now compiled as skip-noopt. When the system boots, if
the cpu is from Intel, they are hotpatched to their real content.
Typically:
jmp 1f
int3
int3
int3
... int3 ...
1:
gets hotpatched to:
movq SVS_UTLS+UTLS_KPDIRPA,%rax
movq %rax,%cr3
movq CPUVAR(KRSP0),%rsp
These two chunks of code being of the exact same size. We put int3 (0xCC)
to make sure we never execute there.
In the non-SVS (ie non-Intel) case, all it costs is one jump. Given that
the SVS_* macros are small, this jump will likely leave us in the same
icache line, so it's pretty fast.
The syscall entry point is special, because there we use a scratch uint64_t
not in curcpu but in the UTLS page, and it's difficult to hotpatch this
properly. So instead of hotpatching we declare the entry point as an ASM
macro, and define two functions: syscall and syscall_svs, the latter being
the one used in the SVS case.
While here 'syscall' is optimized not to contain an SVS_ENTER - this way
we don't even need to do a jump on the non-SVS case.
When adding pages in the user page tables, make sure we don't have PG_G,
now that it's dynamic.
A read-only sysctl is added, machdep.svs_enabled, that tells whether the
kernel uses SVS or not.
More changes to come, svs_init() is not very clean.
Revision 1.151: download - view: text, markup, annotated - select for diffs
Sun Feb 18 14:07:29 2018 UTC (6 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.150: preferred, colored
Changes since revision 1.150: +5 -1
lines
Add svs_enabled, which defaults to 'true' when SVS is compiled (no dynamic
detection yet).
Revision 1.150: download - view: text, markup, annotated - select for diffs
Sat Jan 27 17:54:13 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.149: preferred, colored
Changes since revision 1.149: +2 -2
lines
Use testb, faster.
Revision 1.149: download - view: text, markup, annotated - select for diffs
Mon Jan 22 08:14:09 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.148: preferred, colored
Changes since revision 1.148: +1 -4
lines
Ah, remove duplicate SVS_LEAVE. Fixes 32bit binaries. While here remove
duplicate 'cli', but that's harmless.
Revision 1.148: download - view: text, markup, annotated - select for diffs
Sun Jan 21 11:21:40 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.147: preferred, colored
Changes since revision 1.147: +107 -85
lines
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.147: download - view: text, markup, annotated - select for diffs
Thu Jan 18 07:25:34 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.146: preferred, colored
Changes since revision 1.146: +22 -7
lines
Unmap the kernel heap from the user page tables (SVS).
This implementation is optimized and organized in such a way that we
don't need to copy the kernel stack to a safe place during user<->kernel
transitions. We create two VAs that point to the same physical page; one
will be mapped in userland and is offset in order to contain only the
trapframe, the other is mapped in the kernel and maps the entire stack.
Sent on tech-kern@ a week ago.
Revision 1.146: download - view: text, markup, annotated - select for diffs
Thu Jan 11 09:00:04 2018 UTC (6 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.145: preferred, colored
Changes since revision 1.145: +2 -2
lines
Declare new SVS_* variants: SVS_ENTER_NOSTACK and SVS_LEAVE_NOSTACK. Use
SVS_ENTER_NOSTACK in the syscall entry point, and put it before the code
that touches curlwp. (curlwp is located in the direct map.)
Then, disable __HAVE_CPU_UAREA_ROUTINES (to be removed later). This moves
the kernel stack into pmap_kernel(), and not the direct map. That's a
change I've always wanted to make: because of the direct map we can't add
a redzone on the stack, and basically, a stack overflow can go very far
in memory without being detected (as far as erasing all of the system's
memory).
Finally, unmap the direct map from userland.
Revision 1.145: download - view: text, markup, annotated - select for diffs
Sun Jan 7 16:10:16 2018 UTC (6 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.144: preferred, colored
Changes since revision 1.144: +12 -1
lines
Add a new option, SVS (for Separate Virtual Space), that unmaps kernel
pages when running in userland. For now, only the PTE area is unmapped.
Sent on tech-kern@.
Revision 1.144: download - view: text, markup, annotated - select for diffs
Thu Jan 4 13:36:30 2018 UTC (6 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.143: preferred, colored
Changes since revision 1.143: +3 -2
lines
Allocate the TSS area dynamically. This way cpu_info and cpu_tss can be
put in separate pages.
Revision 1.70.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:35:47 2017 UTC (6 years, 11 months ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.70.2.1: preferred, colored; branchpoint 1.70: preferred, colored; next MAIN 1.71: preferred, colored
Changes since revision 1.70.2.1: +602 -480
lines
update from HEAD
Revision 1.143: download - view: text, markup, annotated - select for diffs
Sun Nov 26 15:00:16 2017 UTC (6 years, 11 months ago) by maxv
Branches: MAIN
CVS tags: tls-maxphys-base-20171202
Diff to: previous 1.142: preferred, colored
Changes since revision 1.142: +2 -2
lines
Update a comment, and use testw instead.
Revision 1.142: download - view: text, markup, annotated - select for diffs
Sun Nov 26 14:54:43 2017 UTC (6 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.141: preferred, colored
Changes since revision 1.141: +42 -42
lines
Hide a bunch of raw symbols.
Revision 1.141: download - view: text, markup, annotated - select for diffs
Tue Nov 21 09:58:09 2017 UTC (6 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.140: preferred, colored
Changes since revision 1.140: +1 -4
lines
Remove unused symbol - it is aligned to 4096 and this reduces the number
of possible locations for .bss in KASLR kernels.
Revision 1.140: download - view: text, markup, annotated - select for diffs
Sat Oct 28 20:57:17 2017 UTC (7 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.139: preferred, colored
Changes since revision 1.139: +2 -2
lines
Use FLAT_RING3_CS64 (defined in Xen public headers) instead of numeric
value.
Revision 1.139: download - view: text, markup, annotated - select for diffs
Sat Oct 28 20:06:31 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.138: preferred, colored
Changes since revision 1.138: +4 -0
lines
It appears that Xen remaps the userland %cs to 0xE033. So add it to the
checklist. Otherwise we're going through Luexit32: %fs gets reloaded,
which sets the FS.base to NULL, which will cause the thread to page-fault
next time it accesses its TLS (as seen in PR/52662).
This fix is not very clean, and it would be nice to understand why Xen
remaps %cs. But I'm committing it now anyway, so that people can test.
Revision 1.138: download - view: text, markup, annotated - select for diffs
Sat Oct 21 08:08:26 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.137: preferred, colored
Changes since revision 1.137: +9 -1
lines
Use labels instead of disassembling *(%rip). intrfastexit is now the
only place where the segregs can fault.
Revision 1.137: download - view: text, markup, annotated - select for diffs
Sat Oct 21 06:55:54 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.136: preferred, colored
Changes since revision 1.136: +6 -3
lines
Improve our segregs model. Pass 3/3.
Treat %gs the same way we treat %ds/%es/%fs: restore it in INTRFASTEXIT
on 32bit LWPs.
On Xen however, its behavior does not change, because we need to do an
hypercall before INTR_RESTORE_GPRS, and that's too complicated for now.
As a side effect, this change fixes a bug in the ACPI wakeup code; %fs/%gs
were not restored on 32bit LWPs, and chances are they would segfault
shortly afterwards.
Support for USER_LDT on amd64 is almost complete now.
Revision 1.136: download - view: text, markup, annotated - select for diffs
Thu Oct 19 20:27:12 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.135: preferred, colored
Changes since revision 1.135: +3 -3
lines
Use cmpw.
Revision 1.135: download - view: text, markup, annotated - select for diffs
Thu Oct 19 19:05:53 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.134: preferred, colored
Changes since revision 1.134: +4 -3
lines
Improve our segregs model. Pass 2/3.
Treat %fs the same way we treat %ds and %es. For a new 32bit LWP %fs is
set to GUDATA32_SEL, and always updated in INTRFASTEXIT.
This solves an important issue we had until now: we couldn't handle the
faults generated by the "movw $val,%fs" instructions, because they were
deep into the kernel context. Now %fs can fault only in INTRFASTEXIT,
which is safe.
Note that it also fixes a bug I believe affected the kernel: on AMD CPUs,
setting %fs to zero does not flush the internal register state, and
therefore we could leak the %fs base address when context-switching. This
being said, I couldn't trigger the issue on the AMD cpu I have. Whatever,
it's fixed now, since we first set %fs to GUDATA32 - which does flush the
register state.
Revision 1.134: download - view: text, markup, annotated - select for diffs
Thu Oct 19 18:36:31 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.133: preferred, colored
Changes since revision 1.133: +31 -16
lines
Improve our segregs model. Pass 1/3.
Right now, we are saving and restoring %ds/%es each time we enter/leave the
kernel. However, we let %fs/%gs live in the kernel space, and we rely on
the fact that when switching to an LWP, %fs/%gs are set right away (via
cpu_switchto or setregs).
It has two drawbacks: we are taking care of %ds/%es while they are
deprecated (useless) on 64bit LWPs, and we are restricting %fs/%gs while
they still have a meaning on 32bit LWPs.
Therefore, handle 32bit and 64bit LWPs differently:
* 64bit LWPs use fixed segregs, which are not taken care of.
* 32bit LWPs have dynamic segregs, always saved/restored.
For now, only %ds and %es are changed; %fs and %gs will be in the next
passes.
The trapframe is constructed as usual. In INTRFASTEXIT, we restore %ds/%es
depending on the %cs value. If %cs contains one of the two standard 64bit
selectors, don't do anything. Otherwise, restore everything.
When doing a context switch, just restore %ds/%es to their default values.
On a 32bit LWP they will be overwritten by INTRFASTEXIT; on a 64bit LWP
they won't be updated.
In the ACPI wakeup code, restore %ds/%es to the default 64bit user value.
Revision 1.133: download - view: text, markup, annotated - select for diffs
Tue Oct 17 07:48:10 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.132: preferred, colored
Changes since revision 1.132: +2 -2
lines
Move %ds and %es into the GDT on 64bit LWPs.
Revision 1.132: download - view: text, markup, annotated - select for diffs
Tue Oct 17 07:33:44 2017 UTC (7 years ago) by maxv
Branches: MAIN
Diff to: previous 1.131: preferred, colored
Changes since revision 1.131: +2 -1
lines
Have the cpu clear PSL_D automatically when entering the kernel via a
syscall. Then, don't clear PSL_D and PSL_AC in the syscall entry point,
they are now both cleared by the cpu (faster). However they still need to
be manually cleared in the interrupt/trap entry points.
Revision 1.131: download - view: text, markup, annotated - select for diffs
Sat Sep 30 11:43:57 2017 UTC (7 years, 1 month ago) by maxv
Branches: MAIN
Diff to: previous 1.130: preferred, colored
Changes since revision 1.130: +4 -2
lines
Add a bootspace structure. It describes the physical and virtual space
layout created by the early kernel bootstrap code. Start using it, and
eliminate several references to KERNBASE and other global symbols. While
here clean up xen-i386, it's really tiring.
Revision 1.130: download - view: text, markup, annotated - select for diffs
Thu Sep 28 17:35:08 2017 UTC (7 years, 1 month ago) by maxv
Branches: MAIN
Diff to: previous 1.129: preferred, colored
Changes since revision 1.129: +7 -4
lines
Clean up, and initialize the lwp0 fields in init_x86_64.
Revision 1.129: download - view: text, markup, annotated - select for diffs
Fri Sep 15 17:32:12 2017 UTC (7 years, 1 month ago) by maxv
Branches: MAIN
Diff to: previous 1.128: preferred, colored
Changes since revision 1.128: +28 -13
lines
Declare INTRFASTEXIT as a function, so that there is only one iretq in the
kernel. Then, check %rip against the address of this iretq instead of
disassembling (%rip) - which could fault again, or point at some random
address which happens to contain the iretq opcode. The same is true for gs
below, but I'll fix that in another commit.
Revision 1.123.6.2: download - view: text, markup, annotated - select for diffs
Mon Sep 4 20:41:28 2017 UTC (7 years, 2 months ago) by snj
Branches: netbsd-8
CVS tags: matt-nb8-mediatek-base,
matt-nb8-mediatek
Diff to: previous 1.123.6.1: preferred, colored; branchpoint 1.123: preferred, colored
Changes since revision 1.123.6.1: +1 -9
lines
Pull up following revision(s) (requested by maxv in ticket #257):
sys/compat/linux/arch/amd64/linux_machdep.c: 1.52
sys/arch/amd64/amd64/copy.S: 1.21-1.24
sys/arch/amd64/amd64/locore.S: 1.125
sys/arch/amd64/amd64/machdep.c: 1.256
Fix a bug in ucas_32 and ucas_64. There is a branch where they don't
initialize %rax.
--
style, reduces an incoming diff
00
Split comment, otherwise it is misleading. kcopy operates on kernel
memory, and must *not* be used with userland pages.
--
Move incq outside of the copy section. No functional change, reduces
my smap diff.
--
Remove dumb debug code and outdated comment.
--
Don't forget to clean l_md.md_flags, otherwise there may be MDL_COMPAT32,
in which case the kernel would always use iret (slower).
Revision 1.128: download - view: text, markup, annotated - select for diffs
Thu Aug 31 10:30:58 2017 UTC (7 years, 2 months ago) by maxv
Branches: MAIN
Diff to: previous 1.127: preferred, colored
Changes since revision 1.127: +2 -0
lines
Add a layer of mitigation against the intel sysret vuln: restore %gs when
sysretq faults. Right now we try to make sure that %rip is canonical by
performing sanity checks in several places, but I've already found missing
checks two times already, and there may be others.
By performing an additional swapgs here, we are turning ring0 exploits to
simple DoSes - which are still security bugs, but of a lower impact.
Revision 1.127: download - view: text, markup, annotated - select for diffs
Thu Aug 31 09:27:28 2017 UTC (7 years, 2 months ago) by maxv
Branches: MAIN
Diff to: previous 1.126: preferred, colored
Changes since revision 1.126: +4 -13
lines
Construct the trap frame with interrupts disabled, for safety, just like
the rest of the interrupt entry points.
Revision 1.77.2.8: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:51:27 2017 UTC (7 years, 2 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.7: preferred, colored; branchpoint 1.77: preferred, colored; next MAIN 1.78: preferred, colored
Changes since revision 1.77.2.7: +26 -45
lines
Sync with HEAD
Revision 1.126: download - view: text, markup, annotated - select for diffs
Thu Aug 10 12:49:11 2017 UTC (7 years, 2 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20170825
Diff to: previous 1.125: preferred, colored
Changes since revision 1.125: +1 -2
lines
Don't include opt_compat_ibcs2.h. No idea what it was doing in amd64,
since it never got implemented there.
Revision 1.125: download - view: text, markup, annotated - select for diffs
Tue Aug 8 17:00:42 2017 UTC (7 years, 2 months ago) by maxv
Branches: MAIN
Diff to: previous 1.124: preferred, colored
Changes since revision 1.124: +1 -9
lines
Remove dumb debug code and outdated comment.
Revision 1.66.2.2: download - view: text, markup, annotated - select for diffs
Tue Aug 8 12:00:35 2017 UTC (7 years, 3 months ago) by martin
Branches: netbsd-6
Diff to: previous 1.66.2.1: preferred, colored; branchpoint 1.66: preferred, colored; next MAIN 1.67: preferred, colored
Changes since revision 1.66.2.1: +1 -22
lines
Pull up following revision(s) (requested by maxv in ticket #1464):
sys/arch/i386/i386/trap.c: revision 1.288 (patch)
sys/arch/i386/i386/machdep.c: revision 1.783 (patch)
sys/arch/i386/i386/locore.S: revision 1.146 (patch)
sys/arch/amd64/amd64/locore.S: revision 1.122,1.124 (patch)
sys/arch/amd64/amd64/machdep.c revision 1.254 (patch)
sys/arch/amd64/amd64/trap.c: revision 1.95-1.96 (patch)
Remove the osyscall call gate and emulate it. There is a
one-instruction race in it that could panic the kernel.
Restore the ability to run netbsd 1.0 32-bit executables by checking
for the relevant lcall instruction in the trap handler and treating it
as a syscall.
Revision 1.66.2.1.6.1: download - view: text, markup, annotated - select for diffs
Tue Aug 8 11:59:16 2017 UTC (7 years, 3 months ago) by martin
Branches: netbsd-6-1
Diff to: previous 1.66.2.1: preferred, colored; next MAIN 1.66.2.2: preferred, colored
Changes since revision 1.66.2.1: +1 -22
lines
Pull up following revision(s) (requested by maxv in ticket #1464):
sys/arch/i386/i386/trap.c: revision 1.288 (patch)
sys/arch/i386/i386/machdep.c: revision 1.783 (patch)
sys/arch/i386/i386/locore.S: revision 1.146 (patch)
sys/arch/amd64/amd64/locore.S: revision 1.122,1.124 (patch)
sys/arch/amd64/amd64/machdep.c revision 1.254 (patch)
sys/arch/amd64/amd64/trap.c: revision 1.95-1.96 (patch)
Remove the osyscall call gate and emulate it. There is a
one-instruction race in it that could panic the kernel.
Restore the ability to run netbsd 1.0 32-bit executables by checking
for the relevant lcall instruction in the trap handler and treating it
as a syscall.
Revision 1.66.2.1.4.1: download - view: text, markup, annotated - select for diffs
Tue Aug 8 11:55:20 2017 UTC (7 years, 3 months ago) by martin
Branches: netbsd-6-0
Diff to: previous 1.66.2.1: preferred, colored; next MAIN 1.66.2.2: preferred, colored
Changes since revision 1.66.2.1: +1 -22
lines
Pull up following revision(s) (requested by maxv in ticket #1464):
sys/arch/i386/i386/trap.c: revision 1.288 (patch)
sys/arch/i386/i386/machdep.c: revision 1.783 (patch)
sys/arch/i386/i386/locore.S: revision 1.146 (patch)
sys/arch/amd64/amd64/locore.S: revision 1.122,1.124 (patch)
sys/arch/amd64/amd64/machdep.c revision 1.254 (patch)
sys/arch/amd64/amd64/trap.c: revision 1.95-1.96 (patch)
Remove the osyscall call gate and emulate it. There is a
one-instruction race in it that could panic the kernel.
Restore the ability to run netbsd 1.0 32-bit executables by checking
for the relevant lcall instruction in the trap handler and treating it
as a syscall.
Revision 1.76.2.2: download - view: text, markup, annotated - select for diffs
Thu Jul 20 01:43:40 2017 UTC (7 years, 3 months ago) by snj
Branches: netbsd-7
CVS tags: netbsd-7-2-RELEASE
Diff to: previous 1.76.2.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.2.1: +1 -2
lines
Pull up following revision(s) (requested by maxv in ticket #1441):
sys/arch/i386/i386/trap.c: revision 1.288 via patch
sys/arch/i386/i386/machdep.c: revision 1.783 via patch
sys/arch/i386/i386/locore.S: revision 1.146 via patch
sys/arch/amd64/amd64/locore.S: revision 1.124 via patch
Remove the osyscall call gate on i386, and emulate it. There is a one-
instruction race in it that could panic the kernel.
Revision 1.76.8.2: download - view: text, markup, annotated - select for diffs
Thu Jul 20 01:43:10 2017 UTC (7 years, 3 months ago) by snj
Branches: netbsd-7-1
CVS tags: netbsd-7-1-2-RELEASE,
netbsd-7-1-1-RELEASE
Diff to: previous 1.76.8.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.8.1: +1 -2
lines
Pull up following revision(s) (requested by maxv in ticket #1441):
sys/arch/i386/i386/trap.c: revision 1.288 via patch
sys/arch/i386/i386/machdep.c: revision 1.783 via patch
sys/arch/i386/i386/locore.S: revision 1.146 via patch
sys/arch/amd64/amd64/locore.S: revision 1.124 via patch
Remove the osyscall call gate on i386, and emulate it. There is a one-
instruction race in it that could panic the kernel.
Revision 1.76.4.2: download - view: text, markup, annotated - select for diffs
Thu Jul 20 01:42:39 2017 UTC (7 years, 3 months ago) by snj
Branches: netbsd-7-0
Diff to: previous 1.76.4.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.4.1: +1 -2
lines
Pull up following revision(s) (requested by maxv in ticket #1441):
sys/arch/i386/i386/trap.c: revision 1.288 via patch
sys/arch/i386/i386/machdep.c: revision 1.783 via patch
sys/arch/i386/i386/locore.S: revision 1.146 via patch
sys/arch/amd64/amd64/locore.S: revision 1.124 via patch
Remove the osyscall call gate on i386, and emulate it. There is a one-
instruction race in it that could panic the kernel.
Revision 1.123.6.1: download - view: text, markup, annotated - select for diffs
Wed Jul 5 19:59:29 2017 UTC (7 years, 4 months ago) by snj
Branches: netbsd-8
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +1 -2
lines
Pull up following revision(s) (requested by maxv in ticket #88):
sys/arch/amd64/amd64/locore.S: revision 1.124
sys/arch/i386/i386/locore.S: revision 1.146
sys/arch/i386/i386/machdep.c: revision 1.783
sys/arch/i386/i386/trap.c: revision 1.288
Remove the osyscall call gate on i386, and emulate it. There is a one-
instruction race in it that could panic the kernel.
Revision 1.124: download - view: text, markup, annotated - select for diffs
Sat Jul 1 10:44:42 2017 UTC (7 years, 4 months ago) by maxv
Branches: MAIN
CVS tags: perseant-stdc-iso10646-base,
perseant-stdc-iso10646
Diff to: previous 1.123: preferred, colored
Changes since revision 1.123: +1 -2
lines
Remove the osyscall call gate on i386, and emulate it. There is a one-
instruction race in it that could panic the kernel.
Revision 1.76.2.1: download - view: text, markup, annotated - select for diffs
Wed Apr 26 14:52:50 2017 UTC (7 years, 6 months ago) by martin
Branches: netbsd-7
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +1 -22
lines
Pull up following revision(s) (requested by bsiegert in ticket #1397):
sys/arch/amd64/amd64/locore.S 1.122 (via patch)
sys/arch/amd64/amd64/machdep.c 1.254 (via patch)
sys/arch/amd64/amd64/trap.c 1.95 (via patch)
Remove the call gate on amd64, it is useless and vulnerable.
Revision 1.76.8.1: download - view: text, markup, annotated - select for diffs
Wed Apr 26 14:51:58 2017 UTC (7 years, 6 months ago) by martin
Branches: netbsd-7-1
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +1 -22
lines
Pull up following revision(s) (requested by bsiegert in ticket #1397):
sys/arch/amd64/amd64/locore.S 1.122 (via patch)
sys/arch/amd64/amd64/machdep.c 1.254 (via patch)
sys/arch/amd64/amd64/trap.c 1.95 (via patch)
Remove the call gate on amd64, it is useless and vulnerable.
Revision 1.76.4.1: download - view: text, markup, annotated - select for diffs
Wed Apr 26 14:50:51 2017 UTC (7 years, 6 months ago) by martin
Branches: netbsd-7-0
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +1 -22
lines
Pull up following revision(s) (requested by bsiegert in ticket #1397):
sys/arch/amd64/amd64/locore.S 1.122 (via patch)
sys/arch/amd64/amd64/machdep.c 1.254 (via patch)
sys/arch/amd64/amd64/trap.c 1.95 (via patch)
Remove the call gate on amd64, it is useless and vulnerable.
Revision 1.107.2.5: download - view: text, markup, annotated - select for diffs
Wed Apr 26 02:52:59 2017 UTC (7 years, 6 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.107.2.4: preferred, colored; branchpoint 1.107: preferred, colored; next MAIN 1.108: preferred, colored
Changes since revision 1.107.2.4: +1 -23
lines
Sync with HEAD
Revision 1.118.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 21 16:53:21 2017 UTC (7 years, 6 months ago) by bouyer
Branches: bouyer-socketcan
Diff to: previous 1.118: preferred, colored; next MAIN 1.119: preferred, colored
Changes since revision 1.118: +27 -36
lines
Sync with HEAD
Revision 1.123: download - view: text, markup, annotated - select for diffs
Sat Mar 25 15:07:21 2017 UTC (7 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: prg-localcount2-base3,
prg-localcount2-base2,
prg-localcount2-base1,
prg-localcount2-base,
prg-localcount2,
pgoyette-localcount-20170426,
netbsd-8-base,
jdolecek-ncq-base,
jdolecek-ncq,
bouyer-socketcan-base1
Branch point for: netbsd-8
Diff to: previous 1.122: preferred, colored
Changes since revision 1.122: +1 -2
lines
Don't need gdtstore here.
Revision 1.122: download - view: text, markup, annotated - select for diffs
Thu Mar 23 17:25:51 2017 UTC (7 years, 7 months ago) by maxv
Branches: MAIN
Diff to: previous 1.121: preferred, colored
Changes since revision 1.121: +1 -22
lines
Remove this call gate on amd64, it is useless and vulnerable.
Call gates do not modify %rflags, so interrupts are not disabled when
entering the gate. There is a small window where we are in kernel mode and
with a userland %gs, and if an interrupt happens here we will rejump into
the kernel but not switch to the kernel TLS.
Userland can simply perform a gate call in a loop, and hope that at some
point an interrupt will be received in this window - which necessarily will
be the case. With a specially-crafted %gs it is certainly enough to
escalate privileges.
Revision 1.107.2.4: download - view: text, markup, annotated - select for diffs
Mon Mar 20 06:57:09 2017 UTC (7 years, 7 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.107.2.3: preferred, colored; branchpoint 1.107: preferred, colored
Changes since revision 1.107.2.3: +27 -14
lines
Sync with HEAD
Revision 1.121: download - view: text, markup, annotated - select for diffs
Thu Feb 9 19:30:56 2017 UTC (7 years, 8 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-localcount-20170320
Diff to: previous 1.120: preferred, colored
Changes since revision 1.120: +25 -10
lines
If the preloaded modules cannot be mapped with the initial amount of VA,
discard the associated bootinfo entry. Otherwise the machine faults and
reboots immediately.
I spotted this bug more than a year ago, but I recently saw that there is
already PR/42645 (7 years old), so just fix it. The size has been increased
in the meantime, so the limit is unlikely to be reached anyway.
Revision 1.120: download - view: text, markup, annotated - select for diffs
Thu Feb 9 08:23:46 2017 UTC (7 years, 8 months ago) by maxv
Branches: MAIN
Diff to: previous 1.119: preferred, colored
Changes since revision 1.119: +2 -4
lines
Restore %ds before swapgs. Movs to segment registers are allowed to fault
in kernel mode but simply cause a signal to be sent to userland. The thing
is, in this case %gs is not restored when entering the trap routine, which
means the kernel uses userland's TLS instead of using its own. Which in
short makes it easy to escalate privileges.
Currently, this bug is triggered only in one place, which I am about to
fix too.
Revision 1.77.2.7: download - view: text, markup, annotated - select for diffs
Sun Feb 5 13:40:01 2017 UTC (7 years, 9 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.6: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.6: +12 -10
lines
Sync with HEAD
Revision 1.119: download - view: text, markup, annotated - select for diffs
Thu Feb 2 19:12:09 2017 UTC (7 years, 9 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20170204
Diff to: previous 1.118: preferred, colored
Changes since revision 1.118: +2 -2
lines
Fix these comments, we probably won't want to keep them up to date.
Revision 1.107.2.3: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:09 2017 UTC (7 years, 10 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.107.2.2: preferred, colored; branchpoint 1.107: preferred, colored
Changes since revision 1.107.2.2: +29 -43
lines
Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
Revision 1.118: download - view: text, markup, annotated - select for diffs
Sat Dec 17 13:49:05 2016 UTC (7 years, 10 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-localcount-20170107,
bouyer-socketcan-base
Branch point for: bouyer-socketcan
Diff to: previous 1.117: preferred, colored
Changes since revision 1.117: +4 -4
lines
Fix the name of the labels. I think I got confused by jne, so while here
replace it by jnz, which is more explicit.
Revision 1.117: download - view: text, markup, annotated - select for diffs
Fri Dec 16 19:52:22 2016 UTC (7 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +3 -3
lines
The way the xen dummy page is taken care of makes absolutely no sense at
all, with magic offsets here and there in different layers of the system.
It is just blind luck that everything has always worked as expected so
far.
Due to this wrong design we have a problem now: we allocate one physical
page for lapic, and it happens to overlap with the dummy page, which
causes the system to crash.
Fix this by keeping the dummy va directly in a variable instead of magic
offsets. The asm locore now increments the first pa to hide the dummy page
to machdep and pmap.
Revision 1.116: download - view: text, markup, annotated - select for diffs
Fri Dec 9 17:57:24 2016 UTC (7 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +5 -3
lines
On amd64 we try to guarantee that VA = PA + KERNBASE in the bootstrap
memory. But we have a problem with the ISA I/O MEM, because its va is
located above the kernel and its pa below it, so it does not respect
the rule.
To compensate for that we make the map look like the ISA stuff is above
the kernel by applying an offset on the pa. The issue with this design is
that we systematically lose 96 pages of physical memory.
Fix this by applying the offset on the va instead. Now these 96 pages are
internalized into uvm, and the rule is respected until kern_end.
Revision 1.115: download - view: text, markup, annotated - select for diffs
Tue Dec 6 15:05:07 2016 UTC (7 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +2 -2
lines
Use __kernel_end instead. Does not change anything, but will be meaningful
soon.
Revision 1.77.2.6: download - view: text, markup, annotated - select for diffs
Mon Dec 5 10:54:49 2016 UTC (7 years, 11 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.5: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.5: +20 -41
lines
Sync with HEAD
Revision 1.114: download - view: text, markup, annotated - select for diffs
Fri Nov 25 14:12:55 2016 UTC (7 years, 11 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20161204
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +1 -11
lines
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.113: download - view: text, markup, annotated - select for diffs
Fri Nov 11 11:34:51 2016 UTC (7 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +3 -3
lines
Rename xen_pmap_bootstrap to xen_locore, it really has nothing to do with
pmap and is just a C version of what amd64 and i386 do in asm.
Revision 1.112: download - view: text, markup, annotated - select for diffs
Fri Nov 11 11:31:26 2016 UTC (7 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +11 -1
lines
Mmh, I mistakenly removed the lapic page (which is part of another diff),
put it back in.
Revision 1.111: download - view: text, markup, annotated - select for diffs
Fri Nov 11 10:40:00 2016 UTC (7 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +19 -35
lines
KNF and simplify Xen
Revision 1.107.2.2: download - view: text, markup, annotated - select for diffs
Fri Nov 4 14:48:57 2016 UTC (8 years ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.107.2.1: preferred, colored; branchpoint 1.107: preferred, colored
Changes since revision 1.107.2.1: +3 -8
lines
Sync with HEAD
Revision 1.110: download - view: text, markup, annotated - select for diffs
Sun Oct 16 10:51:31 2016 UTC (8 years ago) by maxv
Branches: MAIN
CVS tags: pgoyette-localcount-20161104
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +3 -8
lines
Remove lapic_tpr on amd64 and i386, unused. Now, we have only one pointer
to the LAPIC page, and each register access is done with relative offsets.
Revision 1.77.2.5: download - view: text, markup, annotated - select for diffs
Wed Oct 5 20:55:23 2016 UTC (8 years, 1 month ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.4: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.4: +45 -53
lines
Sync with HEAD
Revision 1.109: download - view: text, markup, annotated - select for diffs
Sun Aug 21 09:53:25 2016 UTC (8 years, 2 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20161004,
localcount-20160914
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +7 -8
lines
Simplify.
Revision 1.107.2.1: download - view: text, markup, annotated - select for diffs
Tue Jul 26 03:24:16 2016 UTC (8 years, 3 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +3 -17
lines
Sync with HEAD
Revision 1.108: download - view: text, markup, annotated - select for diffs
Mon Jul 25 16:03:38 2016 UTC (8 years, 3 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-localcount-20160806,
pgoyette-localcount-20160726
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +3 -17
lines
Remove lapic_id, lapic_ppr and lapic_isr. We need to be careful though: the
offset of lapic_tpr must not change, and the whole area must be exactly one
page.
Revision 1.107: download - view: text, markup, annotated - select for diffs
Mon Jul 11 14:52:54 2016 UTC (8 years, 3 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-localcount-base
Branch point for: pgoyette-localcount
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +42 -35
lines
KNF and simplify.
Revision 1.77.2.4: download - view: text, markup, annotated - select for diffs
Sat Jul 9 20:24:49 2016 UTC (8 years, 3 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.3: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.3: +115 -100
lines
Sync with HEAD
Revision 1.106: download - view: text, markup, annotated - select for diffs
Sat Jul 9 06:58:06 2016 UTC (8 years, 3 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20160907
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +4 -4
lines
The CPU considers a given va as executable if none of its levels have
the NOX bit. With the top level recursive slot, however, several levels
are recursively omitted, which implies that each entry that is not the
child of NOX-ed parents actually appears somewhere in the virtual space
as executable via this slot, even if it is followed by an underlying
entry that has the NOX bit.
This recursive slot is only used to edit the page tree itself. Make it
non-executable.
Revision 1.105: download - view: text, markup, annotated - select for diffs
Fri Jul 8 09:15:38 2016 UTC (8 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +3 -3
lines
The preloaded modules are now reallocated dynamically by the kernel. This
area does not need to be executable anymore.
Revision 1.104: download - view: text, markup, annotated - select for diffs
Mon Jul 4 07:56:07 2016 UTC (8 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +11 -12
lines
Make the execution flow canonical instead of jumping back and forth, and
complete the userland check.
Revision 1.103: download - view: text, markup, annotated - select for diffs
Fri Jul 1 13:11:21 2016 UTC (8 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +39 -35
lines
Try to make this part more readable. No functional change.
Revision 1.102: download - view: text, markup, annotated - select for diffs
Sat Jun 4 10:48:11 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +2 -2
lines
The ISA I/O MEM does not need to be executable. Remove the X permission
on it.
Revision 1.101: download - view: text, markup, annotated - select for diffs
Sat Jun 4 10:19:09 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +8 -6
lines
Use the same instruction layout to map the ISA I/O. No functional
change.
The comment is still wrong: we are not on (4), we are actually below
the kernel area in physical memory. I'll fix that later.
Revision 1.100: download - view: text, markup, annotated - select for diffs
Sat Jun 4 09:45:57 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +6 -6
lines
Reorder some definitions. Reduces the diff between amd64 and i386.
Revision 1.99: download - view: text, markup, annotated - select for diffs
Sun May 29 17:06:17 2016 UTC (8 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +30 -10
lines
Switch to elf notes for amd64 instead of the old key=value list to describe the
guest requirements and support.
Add infrastructure to query the hypervisor about features support.
For verbose boot, print the features suppoted by the hypervisor for this
guest.
Revision 1.98: download - view: text, markup, annotated - select for diffs
Sun May 29 09:16:11 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +4 -0
lines
Define tablesize. Useful when debugging.
Revision 1.97: download - view: text, markup, annotated - select for diffs
Sun May 29 09:04:19 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +21 -35
lines
Revert rev1.94. It apparently raises a page fault from SMEP. I need to
investigate the whole kernel mappings anyway, so I'll recommit this
patch later.
Revision 1.77.2.3: download - view: text, markup, annotated - select for diffs
Sun May 29 08:44:15 2016 UTC (8 years, 5 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.2: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.2: +263 -159
lines
Sync with HEAD
Revision 1.96: download - view: text, markup, annotated - select for diffs
Sat May 28 09:03:16 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20160529
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +18 -4
lines
Define fillkpt_blank, which creates blank entries in a page table. Use
it to map the first MB. No functional change.
Revision 1.95: download - view: text, markup, annotated - select for diffs
Sat May 28 08:43:16 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +33 -19
lines
Move proc0's stack out of the BOOTSTRAP TABLES, and map it independently
with RW permissions. Reduces the impact of a stack overflow.
Revision 1.94: download - view: text, markup, annotated - select for diffs
Thu May 26 07:24:55 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +9 -3
lines
There is an issue in the way the fillkpt macro sets up pages on both
amd64 and i386.
The fillkpt loop is equivalent to the following:
do {
/* fill in the slot */
/* increment %ebx to the next slot */
/* increment %eax to the next pa */
} while (%ecx > 0)
The issue here is that if %ecx = 0 (i.e., the chunk we are trying to
map is zero-sized), there is still one entry created in the page table.
The kernel expects the va<->pa translation to be linear in low memory.
If there is a zero-sized chunk, the dead entry creates a +4096 offset in
the virtual space, with two consecutive entries that point to the same
physical address. In other words, the mappings are not linear anymore,
which causes the kernel to die.
Before my recent changes, there were only two big chunks that were
mapped, and neither of these could be zero-sized. Now, with multiple,
fine-grained chunks, it is possible that the [SYMS]+[PRELOADED_MODULES]
chunk could be zero-sized.
[PRELOADED_MODULES] is almost never here, and [SYMS] is always here on
default kernels. Except for floppies, where the bootloader does not load
[SYMS].
Should fix PR 51148.
Revision 1.93: download - view: text, markup, annotated - select for diffs
Sun May 22 10:11:55 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +6 -6
lines
Save L4's physical address earlier. Also, PDE_SIZE has nothing to do
here, we are just zeroing out the upper 32bits of the 64bit pointer.
Revision 1.92: download - view: text, markup, annotated - select for diffs
Sun May 15 07:17:53 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +9 -10
lines
Split the PRELOADED_MODULES+BOOTSTRAP_TABLES chunk into two separate
chunks mapped independently with RWX and RW, on both amd64 and i386.
This way the BOOTSTRAP TABLES are non-executable.
Revision 1.91: download - view: text, markup, annotated - select for diffs
Sun May 15 07:01:36 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +13 -13
lines
Reduce the diff between amd64 and i386. We invert two instructions on
amd64, but it makes no difference since PDE_SIZE = 8.
Revision 1.90: download - view: text, markup, annotated - select for diffs
Thu May 12 09:05:16 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +14 -6
lines
Map the data+bss chunk independently on amd64, and remove the X
permission on it.
Revision 1.89: download - view: text, markup, annotated - select for diffs
Thu May 12 07:51:09 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +16 -3
lines
Define fillkpt_nox, which sets up a set of pages and puts the NOX bit on
them by using nox_flag. Use fillkpt_nox to map the rodata segment
without X permissions.
Revision 1.88: download - view: text, markup, annotated - select for diffs
Thu May 12 07:21:18 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +17 -14
lines
Map the rodata segment independently on amd64, and remove the W permission
on it.
Revision 1.87: download - view: text, markup, annotated - select for diffs
Thu May 12 06:45:16 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +3 -3
lines
Split the {text+rodata} chunk in two separate chunks on x86. The
rodata segment now loses the large page optimization, gets mapped inside
the data segment, and therefore becomes RWX. It may break the build on
Xen.
Revision 1.86: download - view: text, markup, annotated - select for diffs
Wed May 11 19:35:08 2016 UTC (8 years, 5 months ago) by maxv
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +25 -3
lines
There is a bug in the way the secondary CPUs are launched on amd64.
When CPU0 is launched, EFER_NXE is enabled in it, and it allows it to
handle pages that have the NOX bit. When the secondary CPUs are
launched, however, EFER_NXE is enabled only after paging is set in their
%cr0. And therefore, between the moment when paging is enabled and the
moment when EFER_NXE is enabled, the secondary CPUs cannot access pages
that have the NOX bit - they crash if they try to.
The funny thing is that in order to enable EFER_NXE, the secondary CPUs
give a look at cpu_feature[2], which is in the DATA segment, which in
turn could have the NOX bit. In other words, the secondary CPUs crash if
the DATA segment is mapped with the NOX bit.
Fix this by enabling EFER_NXE in the secondary CPUs before enabling
paging. CPU0 initializes nox_flag to the 32bit version of PG_NX if NOX
is supported; the secondary CPUs then use nox_flag to know whether NOX
is supported.
nox_flag will be used for other purposes soon.
Revision 1.85: download - view: text, markup, annotated - select for diffs
Sun May 8 08:22:58 2016 UTC (8 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +2 -4
lines
Use killkpt for the PML4 entries as well.
Revision 1.84: download - view: text, markup, annotated - select for diffs
Sat May 7 11:49:21 2016 UTC (8 years, 6 months ago) by maxv
Branches: MAIN
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +151 -124
lines
clarify
Revision 1.77.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 27 12:09:28 2015 UTC (8 years, 10 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77.2.1: preferred, colored; branchpoint 1.77: preferred, colored
Changes since revision 1.77.2.1: +155 -149
lines
Sync with HEAD (as of 26th Dec)
Revision 1.83: download - view: text, markup, annotated - select for diffs
Wed Nov 25 16:00:09 2015 UTC (8 years, 11 months ago) by maxv
Branches: MAIN
CVS tags: nick-nhusb-base-20160422,
nick-nhusb-base-20160319,
nick-nhusb-base-20151226
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +76 -75
lines
Cosmetic changes.
Revision 1.82: download - view: text, markup, annotated - select for diffs
Sun Nov 22 14:06:08 2015 UTC (8 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +1 -11
lines
Remove cpu_vendorname (unused). It is retrieved later in identcpu.c.
Revision 1.81: download - view: text, markup, annotated - select for diffs
Sun Nov 22 10:18:59 2015 UTC (8 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +76 -53
lines
Clarify:
- add some comments
- rename some jumps
- KNF
No functional change.
Revision 1.80: download - view: text, markup, annotated - select for diffs
Fri Nov 20 11:58:00 2015 UTC (8 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +17 -24
lines
A few changes:
- remove cpu_id and cpu_brand_id (unused)
- copy a comment from i386 about fillkpt
- define PDE_SIZE (i386)
Revision 1.79: download - view: text, markup, annotated - select for diffs
Sat Nov 14 14:01:23 2015 UTC (8 years, 11 months ago) by maxv
Branches: MAIN
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +4 -5
lines
KNF, and fix some comments
Revision 1.77.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 22 12:05:35 2015 UTC (9 years, 1 month ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +3 -2
lines
Sync with HEAD
Revision 1.78: download - view: text, markup, annotated - select for diffs
Sun Aug 30 01:46:02 2015 UTC (9 years, 2 months ago) by uebayasi
Branches: MAIN
CVS tags: nick-nhusb-base-20150921
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +3 -2
lines
Use makeoptions_COPY_SYMTAB via opt_copy_symtab.h in sources. Remove a hack
to set -DCOPY_SYMTAB from sys/conf/Makefile.kern.inc. Remove unnecessary
dependencies too.
Revision 1.70.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:02:42 2014 UTC (10 years, 2 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +168 -99
lines
Rebase to HEAD as of a few days ago.
Revision 1.77: download - view: text, markup, annotated - select for diffs
Sun Aug 17 21:17:43 2014 UTC (10 years, 2 months ago) by joerg
Branches: MAIN
CVS tags: nick-nhusb-base-20150606,
nick-nhusb-base-20150406,
nick-nhusb-base
Branch point for: nick-nhusb
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +2 -2
lines
Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
Revision 1.75.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:53:49 2014 UTC (10 years, 2 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.75: preferred, colored; next MAIN 1.76: preferred, colored
Changes since revision 1.75: +3 -4
lines
Rebase.
Revision 1.65.4.4: download - view: text, markup, annotated - select for diffs
Thu May 22 11:39:28 2014 UTC (10 years, 5 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.65.4.3: preferred, colored; branchpoint 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65.4.3: +166 -96
lines
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.73.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 17:44:54 2014 UTC (10 years, 5 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.73: preferred, colored; next MAIN 1.74: preferred, colored
Changes since revision 1.73: +3 -4
lines
sync with head
Revision 1.76: download - view: text, markup, annotated - select for diffs
Fri May 16 00:48:41 2014 UTC (10 years, 5 months ago) by rmind
Branches: MAIN
CVS tags: tls-maxphys-base,
tls-earlyentropy-base,
rmind-smpnet-nbase,
rmind-smpnet-base,
netbsd-7-nhusb-base-20170116,
netbsd-7-nhusb-base,
netbsd-7-nhusb,
netbsd-7-base,
netbsd-7-1-RELEASE,
netbsd-7-1-RC2,
netbsd-7-1-RC1,
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
Branch point for: netbsd-7-1,
netbsd-7-0,
netbsd-7
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +3 -4
lines
pcu(9):
- Remove PCU_KERNEL (hi matt!) and significantly simplify the code.
This experimental feature was tried on ARM did not meet the expectations.
It may be revived one day, but it should be done in a much simpler way.
- Add a message structure for xcall function, pass the LWP ower and thus
optimise a race condition: if LWP is discarding its state on a remote CPU,
but another LWP already did it - do not cause an unecessary re-faulting.
- Reduce the variety of flags for PCU operations (only PCU_VALID and
PCU_REENABLE are used now), pass them only to the pcu_state_load().
- Rename pcu_used_p() to pcu_valid_p(); hopefully it is less confusing.
- pcu_save_all_on_cpu: SPL ought to be used here.
- Update and improve the pcu(9) man page; it needs wizd(8) though.
Revision 1.75: download - view: text, markup, annotated - select for diffs
Sun Dec 1 01:05:16 2013 UTC (10 years, 11 months ago) by christos
Branches: MAIN
CVS tags: yamt-pagecache-base9,
riastradh-xf86-video-intel-2-7-1-pre-2-21-15,
riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +11 -2
lines
revert fpu/pcu changes until we figure out what's wrong; they cause random
freezes
Revision 1.74: download - view: text, markup, annotated - select for diffs
Wed Oct 23 20:18:50 2013 UTC (11 years ago) by drochner
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +3 -12
lines
Use the MI "pcu" framework for bookkeeping of npx/fpu states on x86.
This reduces the amount of MD code enormously, and makes it easier
to implement support for newer CPU features which require more fpu
state, or for fpu usage by the kernel.
For access to FPU state across CPUs, an xcall kthread is used now
rather than a dedicated IPI.
No user visible changes intended.
Revision 1.73: download - view: text, markup, annotated - select for diffs
Sun Jun 23 09:00:37 2013 UTC (11 years, 4 months ago) by uebayasi
Branches: MAIN
CVS tags: riastradh-drm2-base2,
riastradh-drm2-base1,
riastradh-drm2-base,
riastradh-drm2
Branch point for: rmind-smpnet
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +65 -57
lines
Whitespace, comment, NBPG -> PAGE_SIZE.
Revision 1.72: download - view: text, markup, annotated - select for diffs
Sun Jun 23 03:16:46 2013 UTC (11 years, 4 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +2 -2
lines
Whitespace.
Revision 1.71: download - view: text, markup, annotated - select for diffs
Sat Jun 22 15:13:56 2013 UTC (11 years, 4 months ago) by uebayasi
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +99 -37
lines
Use END() markers, etc. Pure ELF .symtab (size) changes.
Revision 1.65.4.3: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:18:43 2012 UTC (12 years ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.65.4.2: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.4.2: +70 -105
lines
sync with head
Revision 1.70: download - view: text, markup, annotated - select for diffs
Sun Jul 15 15:17:56 2012 UTC (12 years, 3 months ago) by dsl
Branches: MAIN
CVS tags: yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
khorben-n900,
agc-symver-base,
agc-symver
Branch point for: tls-maxphys
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +68 -103
lines
Rename MDP_IRET to MDL_IRET since it is an lwp flag, not a proc one.
Add an MDL_COMPAT32 flag to the lwp's md_flags, set it for 32bit lwps
and use it to force 'return to user' with iret (as is done when
MDL_IRET is set).
Split the iret/sysret code paths much later.
Remove all the replicated code for 32bit system calls - which was only
needed so that iret was always used.
frameasm.h for XEN contains '#define swapgs', while XEN probable never
needs swapgs, this is likely to be confusing.
Add a SWAPGS which is a nop on XEN and swapgs otherwise.
(I've not yet checked all the swapgs in files that include frameasm.h)
Simple x86 programs still work.
Hijack 6.99.9 kernel bump (needed for compat32 modules)
Revision 1.69: download - view: text, markup, annotated - select for diffs
Sat Jun 16 17:30:19 2012 UTC (12 years, 4 months ago) by chs
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +3 -3
lines
rename the global variable "cpu" to "cputype" to avoid conflicting with
dtrace, which wants to use "cpu" as a local variable.
Revision 1.65.4.2: download - view: text, markup, annotated - select for diffs
Wed May 23 10:07:39 2012 UTC (12 years, 5 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.65.4.1: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.4.1: +2 -2
lines
sync with head.
Revision 1.65.8.3: download - view: text, markup, annotated - select for diffs
Sun Apr 29 23:04:36 2012 UTC (12 years, 6 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.65.8.2: preferred, colored; branchpoint 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65.8.2: +2 -2
lines
sync to latest -current.
Revision 1.66.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 20 23:32:14 2012 UTC (12 years, 6 months ago) by riz
Branches: 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-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,
matt-nb6-plus-nbase,
matt-nb6-plus-base,
matt-nb6-plus
Branch point for: netbsd-6-1,
netbsd-6-0
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +2 -2
lines
Pull up following revision(s) (requested by jym in ticket #189):
sys/arch/x86/include/psl.h: revision 1.7
sys/arch/i386/i386/locore.S: revision 1.98
sys/arch/amd64/acpi/acpi_wakecode.S: revision 1.11
sys/arch/amd64/amd64/mptramp.S: revision 1.13
sys/arch/i386/acpi/acpi_wakecode.S: revision 1.15
sys/arch/i386/i386/mptramp.S: revision 1.23
sys/arch/amd64/amd64/locore.S: revision 1.68
Set the CR0_AM bit so processes can enable alignment check errors under
x86 through PSL_AC bit.
ATF test incoming shortly.
PSL_AC is user-settable.
Revision 1.68: download - view: text, markup, annotated - select for diffs
Thu Apr 19 18:00:34 2012 UTC (12 years, 6 months ago) by jym
Branches: MAIN
CVS tags: yamt-pagecache-base5,
jmcneill-usbmp-base9,
jmcneill-usbmp-base10
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +2 -2
lines
Set the CR0_AM bit so processes can enable alignment check errors under
x86 through PSL_AC bit.
ATF test incoming shortly.
Revision 1.65.4.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:05:58 2012 UTC (12 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +32 -2
lines
sync with head
Revision 1.65.8.2: download - view: text, markup, annotated - select for diffs
Sun Mar 4 00:46:02 2012 UTC (12 years, 8 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.65.8.1: preferred, colored; branchpoint 1.65: preferred, colored
Changes since revision 1.65.8.1: +6 -1
lines
sync to latest -current.
Revision 1.67: download - view: text, markup, annotated - select for diffs
Fri Feb 24 08:06:07 2012 UTC (12 years, 8 months ago) by cherry
Branches: MAIN
CVS tags: yamt-pagecache-base4,
jmcneill-usbmp-base8,
jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +6 -1
lines
(xen) - remove the (*xpq_cpu)() shim.We hasten the %fs/%gs setup process during boot.Although this is hacky, it lets us use the non-xen specificpmap_pte_xxx() functions in pmap code (and others).
Revision 1.65.8.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:31:09 2012 UTC (12 years, 8 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +27 -2
lines
merge to -current.
Revision 1.66: download - view: text, markup, annotated - select for diffs
Sun Dec 4 16:24:13 2011 UTC (12 years, 11 months ago) by chs
Branches: MAIN
CVS tags: netbsd-6-base,
jmcneill-usbmp-base3,
jmcneill-usbmp-base2
Branch point for: netbsd-6
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +27 -2
lines
map all of physical memory using large pages.
ported from openbsd years ago by Murray Armfield,
updated for changes since then by me.
Revision 1.50.4.4: download - view: text, markup, annotated - select for diffs
Sat Aug 27 15:37:22 2011 UTC (13 years, 2 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.50.4.3: preferred, colored; branchpoint 1.50: preferred, colored; next MAIN 1.51: preferred, colored
Changes since revision 1.50.4.3: +3 -3
lines
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.64.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:04:47 2011 UTC (13 years, 5 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.64: preferred, colored; next MAIN 1.65: preferred, colored
Changes since revision 1.64: +3 -3
lines
Sync with HEAD.
Revision 1.55.4.3: download - view: text, markup, annotated - select for diffs
Tue May 31 03:03:53 2011 UTC (13 years, 5 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.55.4.2: preferred, colored; branchpoint 1.55: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55.4.2: +2 -2
lines
sync with head
Revision 1.65: download - view: text, markup, annotated - select for diffs
Fri May 20 13:32:35 2011 UTC (13 years, 5 months ago) by joerg
Branches: MAIN
CVS tags: yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
rmind-uvmplock-nbase,
rmind-uvmplock-base,
jym-xensuspend-nbase,
jym-xensuspend-base,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3,
cherry-xenmp-base,
cherry-xenmp
Branch point for: yamt-pagecache,
jmcneill-usbmp
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +3 -3
lines
Be more explicit that the "w" part of %r11 is meant.
Revision 1.47.8.2.4.1: download - view: text, markup, annotated - select for diffs
Fri May 20 08:11:19 2011 UTC (13 years, 5 months ago) by matt
Branches: matt-nb5-mips64
Diff to: previous 1.47.8.2: preferred, colored; next MAIN 1.47.8.3: preferred, colored
Changes since revision 1.47.8.2: +28 -19
lines
bring matt-nb5-mips64 up to date with netbsd-5-1-RELEASE (except compat).
Revision 1.50.4.3: download - view: text, markup, annotated - select for diffs
Mon Mar 28 23:58:09 2011 UTC (13 years, 7 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.50.4.2: preferred, colored; branchpoint 1.50: preferred, colored
Changes since revision 1.50.4.2: +115 -69
lines
Cure sync hiccups. Code with compile errors is not really useful, heh.
Revision 1.55.4.2: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:49:15 2011 UTC (13 years, 8 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.55.4.1: preferred, colored; branchpoint 1.55: preferred, colored
Changes since revision 1.55.4.1: +80 -42
lines
sync with head
Revision 1.64: download - view: text, markup, annotated - select for diffs
Mon Dec 20 00:25:24 2010 UTC (13 years, 10 months ago) by matt
Branches: MAIN
CVS tags: uebayasi-xip-base7,
matt-mips64-premerge-20101231,
jruoho-x86intr-base,
bouyer-quota2-nbase,
bouyer-quota2-base,
bouyer-quota2
Branch point for: jruoho-x86intr
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +2 -2
lines
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.63: download - view: text, markup, annotated - select for diffs
Sat Dec 18 13:53:34 2010 UTC (13 years, 10 months ago) by jym
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +2 -7
lines
Free tables are already zeroed in xen_pmap_bootstrap. No need to
do it a second time in assembly code.
Revision 1.55.2.3: download - view: text, markup, annotated - select for diffs
Fri Oct 22 07:20:57 2010 UTC (14 years ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.55.2.2: preferred, colored; branchpoint 1.55: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55.2.2: +25 -23
lines
Sync with HEAD (-D20101022).
Revision 1.62: download - view: text, markup, annotated - select for diffs
Thu Oct 21 11:43:22 2010 UTC (14 years ago) by yamt
Branches: MAIN
CVS tags: uebayasi-xip-base6,
uebayasi-xip-base5,
uebayasi-xip-base4,
uebayasi-xip-base3
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +24 -20
lines
Xosyscall: sync with Xsyscall.
Revision 1.61: download - view: text, markup, annotated - select for diffs
Thu Oct 21 11:42:26 2010 UTC (14 years ago) by yamt
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +1 -2
lines
Xsyscall: remove a stale comment.
Revision 1.60: download - view: text, markup, annotated - select for diffs
Thu Oct 21 11:41:31 2010 UTC (14 years ago) by yamt
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +1 -2
lines
Xsyscall: remove an unused label.
Revision 1.59: download - view: text, markup, annotated - select for diffs
Thu Oct 21 11:39:45 2010 UTC (14 years ago) by yamt
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +3 -3
lines
Xsyscall: save %es before enabling interrupts. otherwise it can be
clobbered by preemption. PR/43903.
Revision 1.55.2.2: download - view: text, markup, annotated - select for diffs
Tue Aug 17 06:43:51 2010 UTC (14 years, 2 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.55.2.1: preferred, colored; branchpoint 1.55: preferred, colored
Changes since revision 1.55.2.1: +52 -11
lines
Sync with HEAD.
Revision 1.40.4.4: download - view: text, markup, annotated - select for diffs
Wed Aug 11 22:51:33 2010 UTC (14 years, 2 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.40.4.3: preferred, colored; branchpoint 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40.4.3: +80 -30
lines
sync with head.
Revision 1.58: download - view: text, markup, annotated - select for diffs
Wed Jul 7 01:14:52 2010 UTC (14 years, 4 months ago) by chs
Branches: MAIN
CVS tags: yamt-nfs-mp-base11,
yamt-nfs-mp-base10,
uebayasi-xip-base2
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +53 -12
lines
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.55.4.1: download - view: text, markup, annotated - select for diffs
Sun May 30 05:16:35 2010 UTC (14 years, 5 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +28 -19
lines
sync with head
Revision 1.55.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 30 14:39:03 2010 UTC (14 years, 6 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +28 -19
lines
Sync with HEAD.
Revision 1.47.8.2.2.2: download - view: text, markup, annotated - select for diffs
Fri Apr 23 04:17:29 2010 UTC (14 years, 6 months ago) by snj
Branches: netbsd-5-0
Diff to: previous 1.47.8.2.2.1: preferred, colored; branchpoint 1.47.8.2: preferred, colored; next MAIN 1.47.8.3: preferred, colored
Changes since revision 1.47.8.2.2.1: +3 -14
lines
Apply patch (requested by jym in ticket #1380):
Fix the NX regression issue observed on amd64 kernels, where per-page
execution right was disabled (therefore leading to the inability
of the kernel to detect fraudulent use of memory mappings marked as not
being executable).
Revision 1.47.8.4: download - view: text, markup, annotated - select for diffs
Thu Apr 22 20:02:48 2010 UTC (14 years, 6 months ago) by snj
Branches: 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,
netbsd-5-1-RELEASE,
netbsd-5-1-RC4,
netbsd-5-1-RC3,
netbsd-5-1-RC2,
netbsd-5-1-RC1,
netbsd-5-1-5-RELEASE,
netbsd-5-1-4-RELEASE,
netbsd-5-1-3-RELEASE,
netbsd-5-1-2-RELEASE,
netbsd-5-1-1-RELEASE,
netbsd-5-1,
matt-nb5-pq3-base,
matt-nb5-pq3
Diff to: previous 1.47.8.3: preferred, colored; branchpoint 1.47: preferred, colored; next MAIN 1.48: preferred, colored
Changes since revision 1.47.8.3: +3 -14
lines
Apply patch (requested by jym in ticket #1380):
Fix the NX regression issue observed on amd64 kernels, where per-page
execution right was disabled (therefore leading to the inability
of the kernel to detect fraudulent use of memory mappings marked as not
being executable).
Revision 1.47.8.3: download - view: text, markup, annotated - select for diffs
Thu Apr 22 19:54:34 2010 UTC (14 years, 6 months ago) by snj
Branches: netbsd-5
Diff to: previous 1.47.8.2: preferred, colored; branchpoint 1.47: preferred, colored
Changes since revision 1.47.8.2: +26 -6
lines
Pull up following revision(s) (requested by jym in ticket #1376):
sys/arch/amd64/amd64/locore.S: revision 1.56
When kernel remaps to high memory in amd64 locore, the GDT used before
becomes invalid. As such, split it in two parts, one for use when system
boots in low memory, and one for use when it jumps to high memory.
Revision 1.47.8.2.2.1: download - view: text, markup, annotated - select for diffs
Thu Apr 22 19:39:44 2010 UTC (14 years, 6 months ago) by snj
Branches: netbsd-5-0
Diff to: previous 1.47.8.2: preferred, colored
Changes since revision 1.47.8.2: +26 -6
lines
Pull up following revision(s) (requested by jym in ticket #1376):
sys/arch/amd64/amd64/locore.S: revision 1.56
When kernel remaps to high memory in amd64 locore, the GDT used before
becomes invalid. As such, split it in two parts, one for use when system
boots in low memory, and one for use when it jumps to high memory.
Revision 1.57: download - view: text, markup, annotated - select for diffs
Sun Apr 18 23:47:50 2010 UTC (14 years, 6 months ago) by jym
Branches: MAIN
CVS tags: uebayasi-xip-base1
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +3 -14
lines
This patch fixes the NX regression issue observed on amd64 kernels, where
per-page execution right was disabled (therefore leading to the inability
of the kernel to detect fraudulent use of memory mappings marked as not
being executable).
- replace cpu_feature and ci_feature_flags variables by cpu_feature and
ci_feat_val arrays. This makes it cleaner and brings kernel code closer
to the design of cpuctl(8). A warning will be raised for each CPU that
does not expose the same features as the Boot Processor (BP).
- the blacklist of CPU features is now a macro defined in the
specialreg.h header, instead of hardcoding it inside MD initialization
code; fix comments.
- replace checks against CPUID_TSC with the cpu_hascounter() function.
- clean up the code in init_x86_64(), as cpu_feature variables are set
inside cpu_probe().
- use cpu_init_msrs() for i386. It will be eventually used later for NX
feature under i386 PAE kernels.
- remove code that checks for CPUID_NOX in amd64 mptramp.S, this is already
performed by cpu_hatch() through cpu_init_msrs().
- remove cpu_signature and feature_flags members from struct mpbios_proc
(they were never used).
This patch was tested with i386 MONOLITHIC, XEN3PAE_DOM0 and XEN3_DOM0 under
a native i386 host, and amd64 GENERIC, XEN3_DOM0 via QEMU virtual machines.
XXX Should kernel rev be bumped?
XXX A similar patch should be pulled-up for NetBSD-5, hopefully tomorrow.
Revision 1.56: download - view: text, markup, annotated - select for diffs
Sun Apr 18 15:24:54 2010 UTC (14 years, 6 months ago) by jym
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +26 -6
lines
When kernel remaps to high memory in amd64 locore, the GDT used before
becomes invalid. As such, split it in two parts, one for use when system
boots in low memory, and one for use when it jumps to high memory.
Revision 1.40.4.3: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:01:58 2010 UTC (14 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.40.4.2: preferred, colored; branchpoint 1.40: preferred, colored
Changes since revision 1.40.4.2: +9 -15
lines
sync with head
Revision 1.55: download - view: text, markup, annotated - select for diffs
Fri Nov 27 03:23:04 2009 UTC (14 years, 11 months ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base9,
uebayasi-xip-base,
matt-premerge-20091211
Branch point for: uebayasi-xip,
rmind-uvmplock
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +6 -6
lines
- Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr.
- Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb().
- Amend assembly in ports where it accesses PCB via struct user.
- Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
Revision 1.54: download - view: text, markup, annotated - select for diffs
Thu Nov 26 00:19:12 2009 UTC (14 years, 11 months ago) by matt
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +4 -5
lines
Kill proc0paddr. Use lwp0.l_addr instead.
Revision 1.53: download - view: text, markup, annotated - select for diffs
Wed Nov 25 14:28:50 2009 UTC (14 years, 11 months ago) by rmind
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +3 -3
lines
Remove IPL_LPT and IPL_IPI aliases, use the actual IPLs.
Fix some broken comments.
Revision 1.50.4.2: download - view: text, markup, annotated - select for diffs
Sun Nov 1 13:58:48 2009 UTC (15 years ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.50.4.1: preferred, colored; branchpoint 1.50: preferred, colored
Changes since revision 1.50.4.1: +1 -6
lines
Sync with HEAD.
Revision 1.52: download - view: text, markup, annotated - select for diffs
Mon Oct 19 18:41:10 2009 UTC (15 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +1 -6
lines
Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
Revision 1.50.4.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:16:08 2009 UTC (15 years, 5 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +2 -1
lines
Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
Revision 1.40.4.2: download - view: text, markup, annotated - select for diffs
Mon May 4 08:10:32 2009 UTC (15 years, 6 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.40.4.1: preferred, colored; branchpoint 1.40: preferred, colored
Changes since revision 1.40.4.1: +26 -35
lines
sync with head.
Revision 1.47.6.2: download - view: text, markup, annotated - select for diffs
Tue Mar 3 18:28:50 2009 UTC (15 years, 8 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.47.6.1: preferred, colored; branchpoint 1.47: preferred, colored; next MAIN 1.48: preferred, colored
Changes since revision 1.47.6.1: +2 -1
lines
Sync with HEAD.
Revision 1.51: download - view: text, markup, annotated - select for diffs
Fri Feb 13 22:41:00 2009 UTC (15 years, 8 months ago) by apb
Branches: MAIN
CVS tags: yamt-nfs-mp-base8,
yamt-nfs-mp-base7,
yamt-nfs-mp-base6,
yamt-nfs-mp-base5,
yamt-nfs-mp-base4,
yamt-nfs-mp-base3,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base2,
nick-hppapmap-base,
jymxensuspend-base
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +2 -1
lines
Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
Revision 1.47.8.2: download - view: text, markup, annotated - select for diffs
Mon Feb 2 03:24:05 2009 UTC (15 years, 9 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-0-RELEASE,
netbsd-5-0-RC4,
netbsd-5-0-RC3,
netbsd-5-0-RC2,
netbsd-5-0-2-RELEASE,
netbsd-5-0-1-RELEASE,
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-nb4-mips64-k7-u2a-k9b
Branch point for: netbsd-5-0,
matt-nb5-mips64
Diff to: previous 1.47.8.1: preferred, colored; branchpoint 1.47: preferred, colored
Changes since revision 1.47.8.1: +2 -2
lines
Pull up following revision(s) (requested by ad in ticket #345):
sys/arch/amd64/amd64/locore.S: revision 1.50
Don't abort pageidlezero unless a realtime thread wants to run.
Revision 1.47.6.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:15:54 2009 UTC (15 years, 9 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +6 -7
lines
Sync with HEAD.
Revision 1.39.6.4: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:27:48 2009 UTC (15 years, 9 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.39.6.3: preferred, colored; branchpoint 1.39: preferred, colored; next MAIN 1.40: preferred, colored
Changes since revision 1.39.6.3: +5 -6
lines
Sync with HEAD.
Revision 1.47.4.1: download - view: text, markup, annotated - select for diffs
Sat Dec 13 01:12:58 2008 UTC (15 years, 10 months ago) by haad
Branches: haad-dm
Diff to: previous 1.47: preferred, colored; next MAIN 1.48: preferred, colored
Changes since revision 1.47: +6 -7
lines
Update haad-dm branch to haad-dm-base2.
Revision 1.50: download - view: text, markup, annotated - select for diffs
Wed Dec 3 12:04:59 2008 UTC (15 years, 11 months ago) by ad
Branches: MAIN
CVS tags: mjf-devfs2-base,
haad-nbase2,
haad-dm-base2,
haad-dm-base,
ad-audiomp2-base,
ad-audiomp2
Branch point for: jym-xensuspend
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +2 -2
lines
Don't abort pageidlezero unless a realtime thread wants to run.
Revision 1.47.8.1: download - view: text, markup, annotated - select for diffs
Mon Nov 17 18:53:53 2008 UTC (15 years, 11 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-0-RC1
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +3 -4
lines
Pull up following revision(s) (requested by ad in ticket #74):
sys/arch/i386/isa/npx.c: revision 1.131
sys/arch/amd64/amd64/fpu.c: revision 1.28
sys/arch/i386/i386/genassym.cf: revision 1.77
sys/arch/i386/i386/autoconf.c: revision 1.93
sys/arch/amd64/amd64/locore.S: revision 1.48
sys/arch/amd64/amd64/machdep.c: revision 1.104
sys/arch/i386/i386/machdep.c: revision 1.646
sys/arch/amd64/amd64/genassym.cf: revision 1.38
sys/arch/i386/i386/locore.S: revision 1.79
PR port-amd64/38293 panic: fp_save ipi didn't
Fix race conditions in FPU IPI handling.
Revision 1.49: download - view: text, markup, annotated - select for diffs
Thu Nov 13 10:53:30 2008 UTC (15 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +3 -3
lines
LKM -> MODULAR
Revision 1.48: download - view: text, markup, annotated - select for diffs
Tue Nov 11 14:40:18 2008 UTC (15 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +3 -4
lines
PR port-amd64/38293 panic: fp_save ipi didn't
Fix race conditions in FPU IPI handling.
Revision 1.18.12.1: download - view: text, markup, annotated - select for diffs
Tue Sep 16 18:49:33 2008 UTC (16 years, 1 month ago) by bouyer
Branches: netbsd-4
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +22 -1
lines
Sync with the following revisions (requested by skrll in ticket #1196):
gnu/dist/gdb removed
gnu/usr.bin/gdb53 removed
distrib/cats/instkernel/Makefile 1.14.6.1
gnu/dist/gdb6/bfd/config.bfd 1.3.6.1
gnu/dist/gdb6/bfd/elfxx-sparc.c 1.1.1.2.6.1
gnu/dist/gdb6/bfd/elfxx-sparc.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/Makefile.in 1.2.2.1.2.2
gnu/dist/gdb6/gdb/alpha-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/alpha-tdep.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/alphabsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/alphabsd-nat.h 1.1.2.1
gnu/dist/gdb6/gdb/alphabsd-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/alphabsd-tdep.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/alphanbsd-nat.c 1.1.2.1
gnu/dist/gdb6/gdb/alphanbsd-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/amd64-nat.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/amd64bsd-nat.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/amd64nbsd-nat.c 1.1.1.2.6.3
gnu/dist/gdb6/gdb/amd64nbsd-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/arm-tdep.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/armbsd-tdep.c 1.1.2.1
gnu/dist/gdb6/gdb/armnbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/armnbsd-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/configure 1.1.1.2.6.1
gnu/dist/gdb6/gdb/configure.ac 1.1.1.2.6.1
gnu/dist/gdb6/gdb/i386bsd-nat.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/i386nbsd-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/m68kbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/mipsnbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/nbsd-thread.c 1.1.2.3
gnu/dist/gdb6/gdb/ppcnbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/ppcnbsd-tdep.c 1.3.6.1
gnu/dist/gdb6/gdb/sh-tdep.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/shnbsd-nat.c 1.1.1.2.6.3
gnu/dist/gdb6/gdb/shnbsd-tdep.c 1.1.1.2.6.4
gnu/dist/gdb6/gdb/shnbsd-tdep.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/sparc-nat.c 1.1.1.2.6.1
gnu/dist/gdb6/gdb/sparc64nbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/sparcnbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/tramp-frame.h 1.1.1.2.6.1
gnu/dist/gdb6/gdb/vaxbsd-nat.c 1.1.1.2.6.2
gnu/dist/gdb6/gdb/config/alpha/nbsd.mh 1.1.1.2.6.1
gnu/dist/gdb6/gdb/config/arm/nbsd.mt 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/arm/nbsdelf.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/i386/nbsd64.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/m68k/nbsdelf.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/mips/nbsd.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/powerpc/nbsd.mh 1.1.1.2.6.1
gnu/dist/gdb6/gdb/config/sh/nbsd.mh 1.1.1.1.6.2
gnu/dist/gdb6/gdb/config/sh/tm-nbsd.h 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/sparc/nbsd64.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/sparc/nbsdelf.mh 1.1.1.1.6.1
gnu/dist/gdb6/gdb/config/vax/nbsdelf.mh 1.1.1.1.6.1
gnu/dist/gdb6/opcodes/configure 1.1.1.2.6.1
gnu/dist/gdb6/opcodes/configure.in 1.1.1.2.6.1
gnu/usr.bin/Makefile 1.126.4.1
gnu/usr.bin/gdb6/arch/alpha/config.h 1.3.4.1
gnu/usr.bin/gdb6/arch/alpha/defs.mk 1.2.6.1
gnu/usr.bin/gdb6/arch/alpha/init.c 1.2.6.1
gnu/usr.bin/gdb6/arch/alpha/nm.h 1.2.6.1
gnu/usr.bin/gdb6/arch/arm/defs.mk 1.2.6.2
gnu/usr.bin/gdb6/arch/arm/init.c 1.1.6.1
gnu/usr.bin/gdb6/arch/armeb/config.h 1.1.6.2
gnu/usr.bin/gdb6/arch/armeb/defs.mk 1.1.6.3
gnu/usr.bin/gdb6/arch/armeb/init.c 1.1.6.2
gnu/usr.bin/gdb6/arch/armeb/tm.h 1.1.6.2
gnu/usr.bin/gdb6/arch/armeb/version.c 1.1.6.2
gnu/usr.bin/gdb6/arch/i386/defs.mk 1.4.4.1
gnu/usr.bin/gdb6/arch/i386/init.c 1.3.6.1
gnu/usr.bin/gdb6/arch/m68000/config.h 1.1.6.2
gnu/usr.bin/gdb6/arch/m68000/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/arch/m68000/init.c 1.1.6.2
gnu/usr.bin/gdb6/arch/m68000/tm.h 1.1.6.2
gnu/usr.bin/gdb6/arch/m68000/version.c 1.1.6.2
gnu/usr.bin/gdb6/arch/m68k/defs.mk 1.1.4.1
gnu/usr.bin/gdb6/arch/m68k/init.c 1.1.4.1
gnu/usr.bin/gdb6/arch/mipseb/config.h 1.3.4.1
gnu/usr.bin/gdb6/arch/mipseb/defs.mk 1.2.6.2
gnu/usr.bin/gdb6/arch/mipseb/init.c 1.2.6.2
gnu/usr.bin/gdb6/arch/mipsel/config.h 1.2.6.3
gnu/usr.bin/gdb6/arch/mipsel/defs.mk 1.2.6.3
gnu/usr.bin/gdb6/arch/mipsel/init.c 1.2.6.3
gnu/usr.bin/gdb6/arch/mipsel/tm.h 1.2.6.2
gnu/usr.bin/gdb6/arch/mipsel/version.c 1.2.6.2
gnu/usr.bin/gdb6/arch/powerpc/defs.mk 1.3.6.1
gnu/usr.bin/gdb6/arch/powerpc/init.c 1.3.6.1
gnu/usr.bin/gdb6/arch/sh3eb/config.h 1.2.2.2
gnu/usr.bin/gdb6/arch/sh3eb/defs.mk 1.2.8.3
gnu/usr.bin/gdb6/arch/sh3eb/init.c 1.1.8.3
gnu/usr.bin/gdb6/arch/sh3eb/nm.h 1.1.8.2
gnu/usr.bin/gdb6/arch/sh3eb/tm.h 1.1.8.2
gnu/usr.bin/gdb6/arch/sh3eb/version.c 1.1.8.2
gnu/usr.bin/gdb6/arch/sh3el/config.h 1.2.2.2
gnu/usr.bin/gdb6/arch/sh3el/defs.mk 1.2.8.3
gnu/usr.bin/gdb6/arch/sh3el/init.c 1.1.8.3
gnu/usr.bin/gdb6/arch/sh3el/nm.h 1.1.8.2
gnu/usr.bin/gdb6/arch/sh3el/tm.h 1.1.8.2
gnu/usr.bin/gdb6/arch/sh3el/version.c 1.1.8.2
gnu/usr.bin/gdb6/arch/sparc/defs.mk 1.2.6.1
gnu/usr.bin/gdb6/arch/sparc/init.c 1.1.6.1
gnu/usr.bin/gdb6/arch/sparc64/defs.mk 1.2.6.1
gnu/usr.bin/gdb6/arch/sparc64/init.c 1.1.6.1
gnu/usr.bin/gdb6/arch/vax/config.h 1.1.6.2
gnu/usr.bin/gdb6/arch/vax/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/arch/vax/init.c 1.1.6.2
gnu/usr.bin/gdb6/arch/vax/tm.h 1.1.6.2
gnu/usr.bin/gdb6/arch/vax/version.c 1.1.6.2
gnu/usr.bin/gdb6/arch/x86_64/defs.mk 1.2.6.1
gnu/usr.bin/gdb6/arch/x86_64/init.c 1.1.6.1
gnu/usr.bin/gdb6/bfd/arch/armeb/bfd.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/armeb/bfdver.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/armeb/config.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/armeb/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/m68000/bfd.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/m68000/bfdver.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/m68000/config.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/m68000/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/mipsel/bfd.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/mipsel/bfdver.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/mipsel/config.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/mipsel/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/sh3eb/bfd.h 1.1.8.3
gnu/usr.bin/gdb6/bfd/arch/sh3eb/bfdver.h 1.1.8.2
gnu/usr.bin/gdb6/bfd/arch/sh3eb/config.h 1.1.8.2
gnu/usr.bin/gdb6/bfd/arch/sh3eb/defs.mk 1.1.8.3
gnu/usr.bin/gdb6/bfd/arch/sh3el/bfd.h 1.1.8.3
gnu/usr.bin/gdb6/bfd/arch/sh3el/bfdver.h 1.1.8.2
gnu/usr.bin/gdb6/bfd/arch/sh3el/config.h 1.1.8.2
gnu/usr.bin/gdb6/bfd/arch/sh3el/defs.mk 1.1.8.3
gnu/usr.bin/gdb6/bfd/arch/vax/bfd.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/vax/bfdver.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/vax/config.h 1.1.6.2
gnu/usr.bin/gdb6/bfd/arch/vax/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/gdb/Makefile 1.5.2.1.2.2
gnu/usr.bin/gdb6/gdbtui/Makefile 1.2.6.1
gnu/usr.bin/gdb6/libiberty/arch/armeb/config.h 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/armeb/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/m68000/config.h 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/m68000/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/mipsel/config.h 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/mipsel/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/sh3eb/config.h 1.1.8.2
gnu/usr.bin/gdb6/libiberty/arch/sh3eb/defs.mk 1.1.8.2
gnu/usr.bin/gdb6/libiberty/arch/sh3el/config.h 1.1.8.2
gnu/usr.bin/gdb6/libiberty/arch/sh3el/defs.mk 1.1.8.2
gnu/usr.bin/gdb6/libiberty/arch/vax/config.h 1.1.6.2
gnu/usr.bin/gdb6/libiberty/arch/vax/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/armeb/config.h 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/armeb/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/m68000/config.h 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/m68000/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/mipsel/config.h 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/mipsel/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/sh3eb/config.h 1.1.8.2
gnu/usr.bin/gdb6/opcodes/arch/sh3eb/defs.mk 1.1.8.3
gnu/usr.bin/gdb6/opcodes/arch/sh3el/config.h 1.1.8.2
gnu/usr.bin/gdb6/opcodes/arch/sh3el/defs.mk 1.1.8.3
gnu/usr.bin/gdb6/opcodes/arch/vax/config.h 1.1.6.2
gnu/usr.bin/gdb6/opcodes/arch/vax/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/armeb/config.h 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/armeb/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/m68000/config.h 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/m68000/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/mipsel/config.h 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/mipsel/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/sh3eb/config.h 1.1.8.2
gnu/usr.bin/gdb6/readline/arch/sh3eb/defs.mk 1.1.8.2
gnu/usr.bin/gdb6/readline/arch/sh3el/config.h 1.1.8.2
gnu/usr.bin/gdb6/readline/arch/sh3el/defs.mk 1.1.8.2
gnu/usr.bin/gdb6/readline/arch/vax/config.h 1.1.6.2
gnu/usr.bin/gdb6/readline/arch/vax/defs.mk 1.1.6.2
gnu/usr.bin/gdb6/sim/arch/mipseb/cconfig.h 1.1.2.1
gnu/usr.bin/gdb6/sim/arch/mipseb/config.h 1.1.2.1
gnu/usr.bin/gdb6/sim/arch/mipseb/defs.mk 1.1.2.1
gnu/usr.bin/gdb6/sim/arch/mipsel/cconfig.h 1.1.2.1
gnu/usr.bin/gdb6/sim/arch/mipsel/config.h 1.1.2.1
gnu/usr.bin/gdb6/sim/arch/mipsel/defs.mk 1.1.2.1
lib/libkvm/kvm_sparc64.c 1.10.18.2
lib/libpthread/pthread.c 1.48.6.4
lib/libpthread/pthread_barrier.c 1.6.18.1
lib/libpthread/pthread_cond.c 1.18.12.2
lib/libpthread/pthread_debug.h 1.8.18.1
lib/libpthread/pthread_int.h 1.34.4.5
lib/libpthread/pthread_lock.c 1.14.6.1
lib/libpthread/pthread_mutex.c 1.22.4.2
lib/libpthread/pthread_run.c 1.18.12.4
lib/libpthread/pthread_rwlock.c 1.13.6.2
lib/libpthread/pthread_sa.c 1.37.6.5
lib/libpthread/pthread_sig.c 1.47.4.8
lib/libpthread/pthread_sleep.c 1.7.6.2
lib/libpthread/sem.c 1.9.6.2
lib/libpthread/arch/sh3/pthread_md.h 1.3.6.1
regress/lib/libpthread/resolv/Makefile 1.1.12.1
regress/lib/libpthread/sigrunning/Makefile 1.1.2.1
regress/lib/libpthread/sigrunning/sigrunning.c 1.1.2.1
share/mk/bsd.own.mk 1.489.4.3
sys/arch/amd64/amd64/locore.S 1.18.14.1
sys/arch/amd64/amd64/machdep.c 1.44.2.3.2.1
sys/arch/amd64/conf/kern.ldscript 1.1.70.1
sys/arch/cats/conf/Makefile.cats.inc 1.17.30.1
sys/arch/shark/conf/Makefile.shark.inc 1.6.30.1
sys/arch/sparc64/conf/kern.ldscript 1.7.26.2
sys/arch/sparc64/conf/kern32.ldscript 1.6.26.2
sys/arch/sparc64/include/kcore.h 1.4.92.2
sys/arch/sparc64/sparc64/locore.s 1.232.4.4
sys/arch/sparc64/sparc64/machdep.c 1.193.4.3
sys/arch/sparc64/sparc64/pmap.c 1.184.2.1.2.4
sys/conf/newvers.sh 1.42.26.2
sys/kern/kern_sa.c 1.87.4.11
sys/kern/kern_synch.c 1.173.4.2
sys/sys/savar.h 1.20.10.2
tools/gdb/Makefile 1.9.4.1
tools/gdb/mknative-gdb 1.1.6.1
pullup the wrstuden-fixsa CVS branch to netbsd-4:
toolchain/35540 - GDB 6 support for pthreads.
port-sparc64/37534 - ktrace firefox gives
kernel trap 30: data access expection
GDB changes:
- delete gdb53
- enable gdb6 on all architectures
- add support for amd64 crash dumps
- add support for sparc64 crash dumps
- add support for /proc pid to executable filename for all archs
- enable thread support for all architectures
- add a note section to kernels to all platforms
- support detection/unwinding of signals for most architectures.
- Fix PTHREAD_UCONTEXT_TO_REG / PTHREAD_REG_TO_UCONTEXT on sh3.
- Apply fix from binutils-current so that sparc gdb can be cross built
on a 64bit host.
SA/pthread changes:
Pre-allocate memory needed for event delivery. Eliminates dropped
interrupts under load.
Deliver intra-process signals to running threads
Eliminate some deadlock scenarios
Fix intra-process signal delivery when delivering to a thread waiting
for signals. Makes afs work again!
Revision 1.43.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:30:05 2008 UTC (16 years, 4 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.43: preferred, colored; next MAIN 1.44: preferred, colored
Changes since revision 1.43: +23 -31
lines
Sync w/ -current. 34 merge conflicts to follow.
Revision 1.39.6.3: download - view: text, markup, annotated - select for diffs
Thu Jun 5 19:14:32 2008 UTC (16 years, 5 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.39.6.2: preferred, colored; branchpoint 1.39: preferred, colored
Changes since revision 1.39.6.2: +15 -28
lines
Sync with HEAD.
Also fix build.
Revision 1.40.2.2: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:04:39 2008 UTC (16 years, 5 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.40.2.1: preferred, colored; branchpoint 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40.2.1: +17 -30
lines
sync with head
Revision 1.47: download - view: text, markup, annotated - select for diffs
Mon Jun 2 14:41:41 2008 UTC (16 years, 5 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base4,
yamt-pf42-base3,
wrstuden-revivesa-base-4,
wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base,
simonb-wapbl-nbase,
simonb-wapbl-base,
simonb-wapbl,
netbsd-5-base,
matt-mips64-base2,
haad-dm-base1
Branch point for: nick-hppapmap,
netbsd-5,
haad-dm
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +16 -29
lines
- Don't bother using sse to copy/zero pages on demand. It turns out not
to be worth it.
- If the machine has sse, re-enable zeroing pages in the idle loop and
use the sse instructions so that we don't blow out the cache.
Revision 1.39.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:21:48 2008 UTC (16 years, 5 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.39.6.1: preferred, colored; branchpoint 1.39: preferred, colored
Changes since revision 1.39.6.1: +51 -33
lines
Sync with HEAD.
Revision 1.46: download - view: text, markup, annotated - select for diffs
Wed May 21 03:50:42 2008 UTC (16 years, 5 months ago) by ad
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +2 -2
lines
PR port-amd64/38708 lkm_map issues on amd64
Don't plonk lkm_map right on top of the ISA ROM/video hole.
Revision 1.40.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:31:27 2008 UTC (16 years, 5 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +51 -33
lines
sync with head.
Revision 1.45: download - view: text, markup, annotated - select for diffs
Fri May 16 17:18:25 2008 UTC (16 years, 5 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-pf42-base2,
hpcarm-cleanup-nbase
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +5 -1
lines
Initialize cpuid_level for Xen too.
Revision 1.40.4.1: download - view: text, markup, annotated - select for diffs
Fri May 16 02:21:49 2008 UTC (16 years, 5 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +47 -33
lines
sync with head.
Revision 1.44: download - view: text, markup, annotated - select for diffs
Sun May 11 13:33:54 2008 UTC (16 years, 5 months ago) by ad
Branches: MAIN
CVS tags: yamt-nfs-mp-base2
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +3 -2
lines
Expose the 'cpu' variable.:
Revision 1.43: download - view: text, markup, annotated - select for diffs
Fri May 2 15:26:38 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
Branch point for: wrstuden-revivesa
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +22 -2
lines
- Give x86 BIOS boot the ability to load new style modules and pass them
into the kernel. Based on a patch by jmcneill@, with many fixes and
improvements by me.
- Put MEMORY_DISK_DYNAMIC and MODULAR into the GENERIC kernels, so that
you can load miniroot.kmod from the boot blocks and boot into the
installer!
Revision 1.42: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:23:12 2008 UTC (16 years, 6 months ago) by martin
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +1 -8
lines
Remove clause 3 and 4 from TNF licenses
Revision 1.41: download - view: text, markup, annotated - select for diffs
Mon Apr 28 19:35:56 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +24 -24
lines
- Make some entry/exit points preemption safe.
- Try to avoid mispredicted bracnhes in Xsyscall.
- Interrupts were being enabled in Xsyscall _after_ checking for ASTs,
while could have resulted in ugly behaviour like delayed signals or
context switches. Fix it.
Revision 1.39.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:42:10 2008 UTC (16 years, 7 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +2 -1
lines
Sync with HEAD.
Revision 1.39.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:14:52 2008 UTC (16 years, 7 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.39: preferred, colored; next MAIN 1.40: preferred, colored
Changes since revision 1.39: +2 -1
lines
sync with head.
Revision 1.25.10.3: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:03:52 2008 UTC (16 years, 7 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.25.10.2: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.10.2: +8 -3
lines
sync with HEAD
Revision 1.14.2.8: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:14:14 2008 UTC (16 years, 7 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.7: preferred, colored; branchpoint 1.14: preferred, colored; next MAIN 1.15: preferred, colored
Changes since revision 1.14.2.7: +2 -1
lines
sync with head.
Revision 1.40: download - view: text, markup, annotated - select for diffs
Tue Mar 11 02:24:43 2008 UTC (16 years, 8 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-baseX,
yamt-pf42-base,
yamt-nfs-mp-base,
yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
ad-socklock-base1
Branch point for: yamt-pf42,
yamt-nfs-mp
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +2 -1
lines
Make context switch + syscall counters optionally per-CPU and accumulate
in schedclock() at "about 16 hz".
Revision 1.29.2.4: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:04:20 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.29.2.3: preferred, colored; branchpoint 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29.2.3: +12 -10
lines
Sync with HEAD.
Revision 1.14.2.7: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:35:17 2008 UTC (16 years, 9 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.6: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.6: +32 -33
lines
sync with head
Revision 1.35.4.3: download - view: text, markup, annotated - select for diffs
Thu Jan 10 23:43:07 2008 UTC (16 years, 9 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.35.4.2: preferred, colored; branchpoint 1.35: preferred, colored; next MAIN 1.36: preferred, colored
Changes since revision 1.35.4.2: +6 -2
lines
Sync with HEAD
Revision 1.39: download - view: text, markup, annotated - select for diffs
Thu Jan 10 20:14:10 2008 UTC (16 years, 9 months ago) by ad
Branches: MAIN
CVS tags: nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
hpcarm-cleanup-base,
bouyer-xeni386-nbase,
bouyer-xeni386-base
Branch point for: mjf-devfs2,
keiichi-mipv6
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +7 -3
lines
- Fix a memory order problem with non-interlocked mutex release.
- Give kernel_lock its own cache line.
Revision 1.25.10.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:44:45 2008 UTC (16 years, 10 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.25.10.1: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.10.1: +266 -48
lines
sync with HEAD
Revision 1.35.4.2: download - view: text, markup, annotated - select for diffs
Tue Jan 8 22:09:13 2008 UTC (16 years, 10 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.35.4.1: preferred, colored; branchpoint 1.35: preferred, colored
Changes since revision 1.35.4.1: +5 -7
lines
Sync with HEAD
Revision 1.38: download - view: text, markup, annotated - select for diffs
Sat Jan 5 21:47:19 2008 UTC (16 years, 10 months ago) by yamt
Branches: MAIN
CVS tags: matt-armv6-base
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +6 -8
lines
- make amd64 use per-cpu tss.
- fix iopl syscall for amd64+xen.
Revision 1.35.4.1: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:47:00 2008 UTC (16 years, 10 months ago) by bouyer
Branches: bouyer-xeni386
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +21 -24
lines
Sync with HEAD
Revision 1.29.2.3: download - view: text, markup, annotated - select for diffs
Thu Dec 27 00:42:50 2007 UTC (16 years, 10 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.29.2.2: preferred, colored; branchpoint 1.29: preferred, colored
Changes since revision 1.29.2.2: +21 -24
lines
Sync with HEAD.
Revision 1.34.2.2: download - view: text, markup, annotated - select for diffs
Wed Dec 26 21:38:41 2007 UTC (16 years, 10 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.34.2.1: preferred, colored; branchpoint 1.34: preferred, colored; next MAIN 1.35: preferred, colored
Changes since revision 1.34.2.1: +21 -24
lines
Sync with head.
Revision 1.37: download - view: text, markup, annotated - select for diffs
Fri Dec 21 20:43:45 2007 UTC (16 years, 10 months ago) by dsl
Branches: MAIN
CVS tags: vmlocking2-base3
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +11 -12
lines
Create the trap/syscall frame space for all the registers in one go.
Use the tramp-frame offsets (TF_foo) for all references to the registers.
Sort the saving of the GP registers into the same order as the trap frame
because consequetive memory accesses are liekly to be faster.
Revision 1.36: download - view: text, markup, annotated - select for diffs
Fri Dec 21 19:18:14 2007 UTC (16 years, 10 months ago) by dsl
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +11 -13
lines
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.25.8.8: download - view: text, markup, annotated - select for diffs
Sun Dec 9 19:34:16 2007 UTC (16 years, 11 months ago) by jmcneill
Branches: jmcneill-pm
Diff to: previous 1.25.8.7: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.8.7: +14 -13
lines
Sync with HEAD.
Revision 1.29.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 8 18:16:24 2007 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.29.2.1: preferred, colored; branchpoint 1.29: preferred, colored
Changes since revision 1.29.2.1: +257 -34
lines
Sync with HEAD.
Revision 1.34.2.1: download - view: text, markup, annotated - select for diffs
Sat Dec 8 17:56:14 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +14 -13
lines
Sync with head.
Revision 1.14.2.6: download - view: text, markup, annotated - select for diffs
Fri Dec 7 17:23:58 2007 UTC (16 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.5: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.5: +257 -34
lines
sync with head
Revision 1.35: download - view: text, markup, annotated - select for diffs
Mon Dec 3 20:21:32 2007 UTC (16 years, 11 months ago) by ad
Branches: 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
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +14 -13
lines
Merge from vmlocking.
Revision 1.20.4.8: download - view: text, markup, annotated - select for diffs
Mon Dec 3 19:02:35 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.7: preferred, colored; branchpoint 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20.4.7: +5 -58
lines
Sync with HEAD.
Revision 1.20.4.7: download - view: text, markup, annotated - select for diffs
Mon Dec 3 18:34:38 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.6: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.6: +299 -24
lines
Sync with HEAD.
Revision 1.25.8.7: download - view: text, markup, annotated - select for diffs
Mon Dec 3 16:13:53 2007 UTC (16 years, 11 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.6: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.6: +18 -12
lines
Sync with HEAD.
Revision 1.34: download - view: text, markup, annotated - select for diffs
Sun Dec 2 21:43:11 2007 UTC (16 years, 11 months ago) by dsl
Branches: MAIN
CVS tags: vmlocking2-base1,
vmlocking-nbase
Branch point for: vmlocking2
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +18 -12
lines
Improve the likelyhood of the 'oosyscall' code (ie that for system call entry
via a call gate for i386 netbsd 1.0 and ibcs2) doing the right thing.
Untested because I've failed to get an a.out netbsd 1.0 binary to load.
Revision 1.25.8.6: download - view: text, markup, annotated - select for diffs
Tue Nov 27 19:35:26 2007 UTC (16 years, 11 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.5: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.5: +229 -13
lines
Sync with HEAD. amd64 Xen support needs testing.
Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Nov 23 15:38:52 2007 UTC (16 years, 11 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +2 -2
lines
Sync BSD_SYMTAB declaration with xeni386, pointed out by Christoph Egger
Revision 1.32: download - view: text, markup, annotated - select for diffs
Thu Nov 22 16:16:42 2007 UTC (16 years, 11 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +229 -13
lines
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.
Revision 1.25.8.5: download - view: text, markup, annotated - select for diffs
Wed Nov 21 21:52:59 2007 UTC (16 years, 11 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.4: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.4: +3 -3
lines
Sync with HEAD.
Revision 1.31: download - view: text, markup, annotated - select for diffs
Mon Nov 19 19:02:20 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: bouyer-xenamd64-base2,
bouyer-xenamd64-base
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -3
lines
IPL_IPI -> IPL_HIGH
Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Mon Nov 19 00:46:07 2007 UTC (16 years, 11 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +4 -4
lines
Sync with HEAD.
Revision 1.18.14.1: download - view: text, markup, annotated - select for diffs
Sat Nov 17 21:04:59 2007 UTC (16 years, 11 months ago) by skrll
Branches: wrstuden-fixsa
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +22 -1
lines
Back port of:
date: 2007/05/25 15:09:50; author: yamt; state: Exp; lines: +4 -6
dumpsys: build a fake switchframe for postmortem debugging.
reviewed by Frank van der Linden.
Unfortunately struct switchframe changed in -current so the crashdumps
aren't compatible. *sigh*
Revision 1.20.4.6: download - view: text, markup, annotated - select for diffs
Fri Nov 16 20:31:19 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.5: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.5: +5 -9
lines
- 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.27.2.5: download - view: text, markup, annotated - select for diffs
Fri Nov 16 17:18:00 2007 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.27.2.4: preferred, colored; branchpoint 1.27: preferred, colored; next MAIN 1.28: preferred, colored
Changes since revision 1.27.2.4: +1 -2
lines
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.14.2.5: download - view: text, markup, annotated - select for diffs
Thu Nov 15 11:42:30 2007 UTC (16 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.4: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.4: +4 -4
lines
sync with head.
Revision 1.25.8.4: download - view: text, markup, annotated - select for diffs
Wed Nov 14 19:04:02 2007 UTC (16 years, 11 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.3: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.3: +4 -4
lines
Sync with HEAD.
Revision 1.27.2.4: download - view: text, markup, annotated - select for diffs
Tue Nov 13 15:58:05 2007 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.27.2.3: preferred, colored; branchpoint 1.27: preferred, colored
Changes since revision 1.27.2.3: +4 -4
lines
Sync with HEAD
Revision 1.30: download - view: text, markup, annotated - select for diffs
Mon Nov 12 18:44:43 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +4 -4
lines
- cpu_vendor was both an int and char[] on amd64 - fix it.
- Run the errata check/patch on all CPUs, not just the boot processor.
Revision 1.25.10.1: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:14:06 2007 UTC (17 years ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +84 -57
lines
sync with HEAD
Revision 1.14.2.4: download - view: text, markup, annotated - select for diffs
Sat Oct 27 11:25:05 2007 UTC (17 years ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.3: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.3: +32 -56
lines
sync with head.
Revision 1.25.8.3: download - view: text, markup, annotated - select for diffs
Fri Oct 26 15:42:06 2007 UTC (17 years ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.2: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.2: +32 -22
lines
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.27.2.3: download - view: text, markup, annotated - select for diffs
Fri Oct 26 13:46:50 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.27.2.2: preferred, colored; branchpoint 1.27: preferred, colored
Changes since revision 1.27.2.2: +3 -1
lines
Make amd64, i386 and xen kernels build and work again.
Revision 1.27.2.2: download - view: text, markup, annotated - select for diffs
Thu Oct 25 23:59:22 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.27.2.1: preferred, colored; branchpoint 1.27: preferred, colored
Changes since revision 1.27.2.1: +40 -30
lines
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.20.4.5: download - view: text, markup, annotated - select for diffs
Tue Oct 23 20:11:37 2007 UTC (17 years ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.4: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.4: +34 -24
lines
Sync with head.
Revision 1.29: download - view: text, markup, annotated - select for diffs
Thu Oct 18 15:28:32 2007 UTC (17 years ago) by yamt
Branches: MAIN
CVS tags: jmcneill-base
Branch point for: mjf-devfs
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +32 -22
lines
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.27.2.1: download - view: text, markup, annotated - select for diffs
Wed Oct 17 21:38:14 2007 UTC (17 years ago) by bouyer
Branches: bouyer-xenamd64
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +224 -9
lines
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.28: download - view: text, markup, annotated - select for diffs
Wed Oct 17 19:53:01 2007 UTC (17 years ago) by garbled
Branches: MAIN
CVS tags: yamt-x86pmap-base4
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +1 -1
lines
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.20.4.4: download - view: text, markup, annotated - select for diffs
Tue Oct 9 15:22:01 2007 UTC (17 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.3: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.3: +1 -35
lines
Sync with head.
Revision 1.26.2.6: download - view: text, markup, annotated - select for diffs
Mon Oct 8 11:00:14 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26.2.5: preferred, colored; branchpoint 1.26: preferred, colored; next MAIN 1.27: preferred, colored
Changes since revision 1.26.2.5: +0 -1
lines
fix off-by-one.
Revision 1.26.2.5: download - view: text, markup, annotated - select for diffs
Sun Oct 7 13:33:34 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26.2.4: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.2.4: +3 -3
lines
rename PTDpaddr to PDPpaddr to match with i386.
(if you think it's a good idea to make gratuitous renames like this,
please do it for both of i386 and amd64 consistently.)
Revision 1.26.2.4: download - view: text, markup, annotated - select for diffs
Sun Oct 7 12:51:15 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26.2.3: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.2.3: +1 -3
lines
remove some #ifdef _LOCORE and use genassym instead.
Revision 1.26.2.3: download - view: text, markup, annotated - select for diffs
Sat Oct 6 15:39:38 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26.2.2: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.2.2: +1 -35
lines
sync with head.
Revision 1.26.2.2: download - view: text, markup, annotated - select for diffs
Thu Oct 4 15:04:31 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26.2.1: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.2.1: +4 -4
lines
- move etext before rodata. define __data_start at the start of
.data section and use it instead of etext where appropriate.
- put .rodata.* into .rodata section as well.
- pmap_bootstrap: don't assume NBPD_L2 alignment.
- pmap_bootstrap: if DEBUG, print how many large pages and normal pages are
used to map kernel text.
Revision 1.20.12.3: download - view: text, markup, annotated - select for diffs
Wed Oct 3 19:22:08 2007 UTC (17 years, 1 month ago) by garbled
Branches: ppcoea-renovation
Diff to: previous 1.20.12.2: preferred, colored; branchpoint 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20.12.2: +53 -36
lines
Sync with HEAD
Revision 1.25.8.2: download - view: text, markup, annotated - select for diffs
Tue Oct 2 18:26:40 2007 UTC (17 years, 1 month ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.25.8.1: preferred, colored; branchpoint 1.25: preferred, colored
Changes since revision 1.25.8.1: +1 -35
lines
Sync with HEAD.
Revision 1.26.2.1: download - view: text, markup, annotated - select for diffs
Sun Sep 30 15:32:20 2007 UTC (17 years, 1 month ago) by yamt
Branches: yamt-x86pmap
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +25 -12
lines
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.27: download - view: text, markup, annotated - select for diffs
Wed Sep 26 19:48:35 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base3,
yamt-x86pmap-base2,
vmlocking-base,
ppcoea-renovation-base
Branch point for: bouyer-xenamd64
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +1 -35
lines
x86 changes for pcc and LKMs.
- Replace most inline assembly with proper functions. As a side effect
this reduces the size of amd64 GENERIC by about 120kB, and i386 by a
smaller amount. Nearly all of the inlines did something slow, or something
that does not need to be fast.
- Make curcpu() and curlwp functions proper, unless __GNUC__ && _KERNEL.
In that case make them inlines. Makes curlwp LKM and preemption safe.
- Make bus_space and bus_dma more LKM friendly.
- Share a few more files between the ports.
- Other minor changes.
Revision 1.25.8.1: download - view: text, markup, annotated - select for diffs
Mon Sep 3 16:47:00 2007 UTC (17 years, 2 months ago) by jmcneill
Branches: jmcneill-pm
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +53 -2
lines
Sync with HEAD.
Revision 1.14.2.3: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:22:31 2007 UTC (17 years, 2 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.2: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.2: +178 -423
lines
sync with head.
Revision 1.25.4.1: download - view: text, markup, annotated - select for diffs
Mon Sep 3 10:18:10 2007 UTC (17 years, 2 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25: +53 -2
lines
Sync with HEAD.
Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Aug 29 23:38:02 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base,
nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +53 -2
lines
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.20.4.3: download - view: text, markup, annotated - select for diffs
Thu Aug 23 19:44:08 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.2: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.2: +49 -1
lines
Add sse2_zero_page(), sse2_copy_page().
Revision 1.20.4.2: download - view: text, markup, annotated - select for diffs
Thu Aug 23 12:07:49 2007 UTC (17 years, 2 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20.4.1: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.4.1: +5 -2
lines
Save cpu_feature2, like i386.
Revision 1.20.6.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 19:57:33 2007 UTC (17 years, 4 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20: +126 -422
lines
Sync with head.
Revision 1.20.12.2: download - view: text, markup, annotated - select for diffs
Tue Jun 26 18:11:57 2007 UTC (17 years, 4 months ago) by garbled
Branches: ppcoea-renovation
Diff to: previous 1.20.12.1: preferred, colored; branchpoint 1.20: preferred, colored
Changes since revision 1.20.12.1: +21 -1
lines
Sync with HEAD.
Revision 1.20.4.1: download - view: text, markup, annotated - select for diffs
Sun May 27 12:26:57 2007 UTC (17 years, 5 months ago) by ad
Branches: vmlocking
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +126 -422
lines
Sync with head.
Revision 1.25: download - view: text, markup, annotated - select for diffs
Fri May 25 15:09:50 2007 UTC (17 years, 5 months ago) by yamt
Branches: MAIN
CVS tags: nick-csl-alignment-base,
mjf-ufs-trans-base,
matt-mips64-base,
matt-mips64,
hpcarm-cleanup
Branch point for: nick-csl-alignment,
matt-armv6,
jmcneill-pm
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +21 -1
lines
dumpsys: build a fake switchframe for postmortem debugging.
reviewed by Frank van der Linden.
Revision 1.20.12.1: download - view: text, markup, annotated - select for diffs
Tue May 22 17:26:31 2007 UTC (17 years, 5 months ago) by matt
Branches: ppcoea-renovation
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +109 -425
lines
Update to HEAD.
Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon May 21 08:10:38 2007 UTC (17 years, 5 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +5 -1
lines
Revert fs/gs changes until I figure out issues with them.
Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat May 19 20:20:47 2007 UTC (17 years, 5 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2
lines
cpu_switchto: PCB_CR0(%r14) is a 32bit value, so don't use movq to retrieve it.
Using movq would copy pcb_flags along as well, which would cause traps
because bad bits would be written into %cr0 a few instructions later.
This wouldn't happen for native NetBSD processes (no pcb_flags set), but
it would happen for Linux processes.
Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu May 17 14:51:14 2007 UTC (17 years, 5 months ago) by yamt
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +109 -425
lines
merge yamt-idlelwp branch. asked by core@. some ports still needs work.
from doc/BRANCHES:
idle lwp, and some changes depending on it.
1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
Revision 1.19.2.4: download - view: text, markup, annotated - select for diffs
Thu May 17 13:40:48 2007 UTC (17 years, 5 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.19.2.3: preferred, colored; branchpoint 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.2.3: +1 -5
lines
sync with head.
Revision 1.21: download - view: text, markup, annotated - select for diffs
Fri May 11 14:01:46 2007 UTC (17 years, 6 months ago) by fvdl
Branches: MAIN
CVS tags: yamt-idlelwp-base8
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -5
lines
Don't save/restore %fs and %gs in trapframe. The kernel won't touch them.
Instead, save/restore them on context switch. For 32bit processes, save/restore
the selector values only, for 64bit processes, save/restore the appropriate
MSRs. Iff the defaults have been changed.
Revision 1.19.2.3: download - view: text, markup, annotated - select for diffs
Tue Apr 10 23:07:31 2007 UTC (17 years, 7 months ago) by ad
Branches: yamt-idlelwp
Diff to: previous 1.19.2.2: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.2.2: +91 -117
lines
Sync with i386.
Revision 1.19.2.2: download - view: text, markup, annotated - select for diffs
Sat Mar 3 15:42:48 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.19.2.1: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.2.1: +37 -327
lines
adapt amd64.
XXX changes in identcpu.c is minmum for MONITOR.
XXX identcpu.c should be shared with i386.
Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 27 16:48:43 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +2 -2
lines
- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
Revision 1.14.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 26 09:05:40 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14.2.1: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.1: +22 -23
lines
sync with head.
Revision 1.20: download - view: text, markup, annotated - select for diffs
Sat Feb 17 22:31:37 2007 UTC (17 years, 8 months ago) by pavel
Branches: MAIN
CVS tags: thorpej-atomic-base,
thorpej-atomic,
reinoud-bufcleanup,
ad-audiomp-base,
ad-audiomp
Branch point for: vmlocking,
ppcoea-renovation,
mjf-ufs-trans
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +2 -2
lines
Change the process/lwp flags seen by userland via sysctl back to the
P_*/L_* naming convention, and rename the in-kernel flags to avoid
conflict. (P_ -> PK_, L_ -> LW_ ). Add back the (now unused) LSDEAD
constant.
Restores source compatibility with pre-newlock2 tools like ps or top.
Reviewed by Andrew Doran.
Revision 1.19: download - view: text, markup, annotated - select for diffs
Fri Feb 9 21:55:01 2007 UTC (17 years, 9 months ago) by ad
Branches: MAIN
CVS tags: post-newlock2-merge
Branch point for: yamt-idlelwp
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +21 -22
lines
Merge newlock2 to head.
Revision 1.18.8.10: download - view: text, markup, annotated - select for diffs
Thu Feb 1 04:17:13 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.9: preferred, colored; branchpoint 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18.8.9: +3 -3
lines
Call spllower() from the idle loop, not Xspllower().
Revision 1.18.8.9: download - view: text, markup, annotated - select for diffs
Tue Jan 30 11:45:26 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.8: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.8: +1 -7
lines
For now always call sched_unlock_idle/sched_lock_idle. They will be
removed by yamt's cpu_switchto() changes.
Revision 1.18.8.8: download - view: text, markup, annotated - select for diffs
Sat Jan 27 07:09:02 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.7: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.7: +7 -1
lines
If running on a PPro or later, at boot patch in versions of spllower() and
similar that use cmpxchg8b instead of cli/sti. Cuts the clock cycles for
splx() by a factor of ~6 on the P4, and ~3 on the PIII when bracketed by
serializing instructions (and hopefully more when not).
Revision 1.18.8.7: download - view: text, markup, annotated - select for diffs
Fri Jan 19 20:07:55 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.6: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.6: +4 -5
lines
cpu_exit: be more conservative and only clear curlwp after TR has been
loaded.
Revision 1.18.8.6: download - view: text, markup, annotated - select for diffs
Fri Jan 19 19:35:22 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.5: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.5: +3 -3
lines
- cpu_exit(): move 'cli' behind clearing curlwp to close a race with
lwp_free(). Noted by yamt@.
- Don't bother calling lwp_exit2() any more.
Revision 1.18.8.5: download - view: text, markup, annotated - select for diffs
Sun Jan 14 13:57:13 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.4: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.4: +19 -22
lines
- Restore previous locking behaviour in cpu_switch(). Seems to fix what
look like corrupted trap frames.
- Micro-optimisation for AST check/clear.
Revision 1.18.8.4: download - view: text, markup, annotated - select for diffs
Fri Jan 12 14:24:17 2007 UTC (17 years, 9 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.3: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.3: +7 -15
lines
Make amd64 build again.
Revision 1.18.8.3: download - view: text, markup, annotated - select for diffs
Fri Dec 29 20:27:41 2006 UTC (17 years, 10 months ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.2: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.2: +7 -7
lines
Checkpoint work in progress.
Revision 1.18.8.2: download - view: text, markup, annotated - select for diffs
Tue Oct 24 21:10:22 2006 UTC (18 years ago) by ad
Branches: newlock2
Diff to: previous 1.18.8.1: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.8.1: +1 -6
lines
- Redo LWP locking slightly and fix some races.
- Fix some locking botches.
- Make signal mask / stack per-proc for SA processes.
- Add _lwp_kill().
Revision 1.18.8.1: download - view: text, markup, annotated - select for diffs
Fri Oct 20 19:42:24 2006 UTC (18 years ago) by ad
Branches: newlock2
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +41 -25
lines
- Acquire/release sched_mutex in the correct places.
- Donate ci->ci_sched_mutex to newly scheduled LWPs.
Revision 1.15.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 02:37:05 2006 UTC (18 years, 2 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15: +5 -5
lines
sync with head
Revision 1.14.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 14:48:18 2006 UTC (18 years, 4 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +5 -5
lines
sync with head.
Revision 1.15.6.1: download - view: text, markup, annotated - select for diffs
Thu Jun 1 22:34:10 2006 UTC (18 years, 5 months ago) by kardel
Branches: simonb-timecounters
CVS tags: simonb-timcounters-final
Diff to: previous 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15: +5 -5
lines
Sync with head.
Revision 1.15.12.1: download - view: text, markup, annotated - select for diffs
Wed May 24 15:47:50 2006 UTC (18 years, 5 months ago) by tron
Branches: peter-altq
Diff to: previous 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15: +5 -5
lines
Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
Revision 1.15.8.1: download - view: text, markup, annotated - select for diffs
Wed May 24 10:56:33 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15: +5 -5
lines
sync with head.
Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun May 14 21:55:09 2006 UTC (18 years, 5 months ago) by elad
Branches: MAIN
CVS tags: yamt-splraiseipl-base5,
yamt-splraiseipl-base4,
yamt-splraiseipl-base3,
yamt-splraiseipl-base2,
yamt-splraiseipl-base,
yamt-splraiseipl,
yamt-pdpolicy-base9,
yamt-pdpolicy-base8,
yamt-pdpolicy-base7,
yamt-pdpolicy-base6,
yamt-pdpolicy-base5,
wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
simonb-timecounters-base,
rpaulo-netinet-merge-pcb-base,
newlock2-nbase,
newlock2-base,
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,
matt-nb4-arm-base,
matt-nb4-arm,
gdamore-uart-base,
gdamore-uart,
chap-midi-nbase,
chap-midi-base,
chap-midi,
abandoned-netbsd-4-base,
abandoned-netbsd-4
Branch point for: wrstuden-fixsa,
newlock2,
netbsd-4
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +1 -1
lines
integrate kauth.
Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat May 13 08:56:08 2006 UTC (18 years, 5 months ago) by skrll
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +4 -4
lines
Fix some more comments.
Revision 1.15.10.1: download - view: text, markup, annotated - select for diffs
Thu May 11 23:26:18 2006 UTC (18 years, 6 months ago) by elad
Branches: elad-kernelauth
Diff to: previous 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15: +2 -2
lines
sync with head
Revision 1.16: download - view: text, markup, annotated - select for diffs
Sun Apr 30 19:50:19 2006 UTC (18 years, 6 months ago) by rjs
Branches: MAIN
CVS tags: elad-kernelauth-base
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +2 -2
lines
Fix comment for cpu_switch().
Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:16:21 2005 UTC (18 years, 10 months ago) by christos
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5,
yamt-uio_vmspace,
yamt-pdpolicy-base4,
yamt-pdpolicy-base3,
yamt-pdpolicy-base2,
yamt-pdpolicy-base,
peter-altq-base
Branch point for: yamt-pdpolicy,
simonb-timecounters,
rpaulo-netinet-merge-pcb,
peter-altq,
elad-kernelauth
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +1 -1
lines
merge ktrace-lwp.
Revision 1.13.8.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:27:59 2005 UTC (19 years, 6 months ago) by kent
Branches: kent-audio2
Diff to: previous 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13: +2 -3
lines
sync with -current
Revision 1.4.2.4: download - view: text, markup, annotated - select for diffs
Fri Apr 1 14:26:50 2005 UTC (19 years, 7 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.4.2.3: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.2.3: +2 -3
lines
Sync with HEAD.
Revision 1.14: download - view: text, markup, annotated - select for diffs
Fri Apr 1 11:59:22 2005 UTC (19 years, 7 months ago) by yamt
Branches: 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,
kent-audio2-base
Branch point for: yamt-lazymbuf
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -3
lines
merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
Revision 1.13.10.1: download - view: text, markup, annotated - select for diffs
Sun Feb 13 10:06:04 2005 UTC (19 years, 8 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13: +2 -3
lines
remove no longer needed .globl decls.
Revision 1.4.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:12:07 2004 UTC (20 years, 1 month ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.4.2.2: preferred, colored
Changes since revision 1.4.2.2: +1 -1
lines
Fix the sync with head I botched.
Revision 1.4.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:31:13 2004 UTC (20 years, 1 month ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.4.2.1: preferred, colored
Changes since revision 1.4.2.1: +0 -0
lines
Sync with HEAD.
Revision 1.4.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:31:30 2004 UTC (20 years, 3 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +30 -27
lines
Sync with HEAD
Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Mar 25 18:33:17 2004 UTC (20 years, 7 months ago) by drochner
Branches: MAIN
CVS tags: yamt-km-base4,
yamt-km-base3,
yamt-km-base2,
yamt-km-base,
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,
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,
kent-audio1-beforemerge,
kent-audio1-base,
kent-audio1
Branch point for: yamt-km,
kent-audio2
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +1 -18
lines
Native code doesn't need sigcode. Never.
So replace it by a dummy setting sigcode=esigcode=0, just to get
COMPAT_16+COMPAT_NETBSD32 kernels linking.
Revision 1.12: download - view: text, markup, annotated - select for diffs
Tue Mar 23 19:39:42 2004 UTC (20 years, 7 months ago) by drochner
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +14 -2
lines
put the old and the very old syscall glue into appropriate
COMPAT_ conditionals
Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Mar 1 12:10:41 2004 UTC (20 years, 8 months ago) by drochner
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +4 -2
lines
on (fast) syscall exit, force %ds to its standard value --
it might have been modified by a netbsd32 process
Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Feb 19 17:18:38 2004 UTC (20 years, 8 months ago) by drochner
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +6 -1
lines
use no-execute page permissions if supported
Revision 1.9: download - view: text, markup, annotated - select for diffs
Sun Nov 30 23:58:51 2003 UTC (20 years, 11 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -1
lines
Reenable interrupts sooner in the idle_exit case.
Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Nov 10 08:51:51 2003 UTC (21 years ago) by wiz
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2
lines
Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue Nov 4 10:33:15 2003 UTC (21 years ago) by dsl
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2
lines
Remove p_nras from struct proc - use LIST_EMPTY(&p->p_raslist) instead.
Remove p_raslock and rename p_lwplock p_lock (one lock is enough).
Simplify window test when adding a ras and correct test on VM_MAXUSER_ADDRESS.
Avoid unpredictable branch in i386 locore.S
(pad fields left in struct proc to avoid kernel bump)
Revision 1.6: download - view: text, markup, annotated - select for diffs
Wed Aug 20 21:48:47 2003 UTC (21 years, 2 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +5 -1
lines
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.5: download - view: text, markup, annotated - select for diffs
Thu Aug 7 16:26:35 2003 UTC (21 years, 3 months ago) by agc
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -6
lines
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
Revision 1.4: download - view: text, markup, annotated - select for diffs
Tue May 13 09:35:16 2003 UTC (21 years, 5 months ago) by fvdl
Branches: MAIN
Branch point for: ktrace-lwp
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +3 -3
lines
While the previous change actually made the code do what it intended,
it was still wrong. cpu_switch() must return 1 when it switched to
a different LWP, 0 if it didn't. It was doing exactly the reverse.
Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue May 13 08:33:58 2003 UTC (21 years, 6 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +6 -4
lines
Return the correct value in cpu_switch; from Stephan Uphoff for i386.
Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Apr 26 19:34:45 2003 UTC (21 years, 6 months ago) by fvdl
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +3 -2
lines
Skip sym space if ksyms or LKMs are included, too.
Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Apr 26 18:39:29 2003 UTC (21 years, 6 months ago) by fvdl
Branches: MAIN
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.
CVSweb <webmaster@jp.NetBSD.org>