The NetBSD Project

CVS log for src/sys/arch/i386/i386/locore.S

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

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.113 / (download) - annotate - [select for diffs], Sun Aug 17 21:17:43 2014 UTC (2 weeks, 1 day ago) by joerg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.112: +4 -4 lines
Diff to previous 1.112 (colored) to selected 1.75 (colored)

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.112 / (download) - annotate - [select for diffs], Thu Feb 20 18:19:10 2014 UTC (6 months, 1 week ago) by dsl
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, netbsd-7-base, netbsd-7
Changes since 1.111: +5 -5 lines
Diff to previous 1.111 (colored) to selected 1.75 (colored)

Move the amd64 and i386 pcb to the bottom of the uarea, and move the
  kernel stack to the top.
Change the pcb layouts so that fpu save area is at the end and is
  64byte aligned ready for xsave (saving the ymm registers).
Welcome to 6.99.32

Revision 1.111 / (download) - annotate - [select for diffs], Sun Feb 2 22:41:20 2014 UTC (6 months, 4 weeks ago) by dsl
Branch: MAIN
Changes since 1.110: +4 -4 lines
Diff to previous 1.110 (colored) to selected 1.75 (colored)

Minor fpu initialisation cleanups:
Set default CR) so that the FPU is enabled (unset CR0_EM) and initialise
  i386_fpu_present to 1.
No need to call the npx trap indirectly, rename to fpunda() to match amd64.
Remove the i386_fpu_exception variable and sysctl (It used to indicate
  which irq was used for fpu exceptions, but we only support 'internal'
  now).  Hopefully no one cares.
fpuinit() now only needs to clear TS before the fninit(). Apart from the
  checks for 486SX and the 'fdiv bug' this matches the amd64 version.
Exclude fpuinit() from XEN kernels, they don't call it - which rather begs
  the question as to whether it is needed at all!

Revision 1.110 / (download) - annotate - [select for diffs], Sun Jan 26 19:16:17 2014 UTC (7 months ago) by dsl
Branch: MAIN
Changes since 1.109: +4 -37 lines
Diff to previous 1.109 (colored) to selected 1.75 (colored)

Remove support for 'external' floating point units and the MS-DOS
  compatible method of handling floating point exceptions.
Make kernel support for teh fpu non-optional (486SX should still work).
Only 386 cpus support external fpu, and i386 support was removed years ago.
This means that the npx code no longer uses port 0xf0 or interupt 13.
All the "npx at isa" lines go from the configs, arch/i386/isa/npx.c
  is now mandatory for all i386 kernels.
I've renamed npxinit() to fpuinit() and npxinit_cpu() to fpuinit_cpu()
  to match the very similar amd64 functions.
The fpu of the boot cpu is now initialised by a direct call from
  cpu_configure(), this enables FP emulation for a 486SX.
  (for amd64 the cr0 values are set in locore.S and similar).
This fixes a long-standing bug in linux_setregs() - which did not
  save the fpu regsiters if they were active.
I've test booted a single cpu i386 kernel (using anita).
amd64 builds - none of teh changes should affect it.
The i386 XEN kernels build, but I'm not sure where they set cr0, and
  it might have got lost!

Revision 1.109 / (download) - annotate - [select for diffs], Sat Jan 11 17:05:17 2014 UTC (7 months, 2 weeks ago) by christos
Branch: MAIN
Changes since 1.108: +5 -4 lines
Diff to previous 1.108 (colored) to selected 1.75 (colored)

fix a comment (cpu_switch() -> cpu_switchto()) (Richard Hansen)

Revision 1.108 / (download) - annotate - [select for diffs], Sun Dec 1 01:05:16 2013 UTC (9 months ago) by christos
Branch: MAIN
Changes since 1.107: +11 -2 lines
Diff to previous 1.107 (colored) to selected 1.75 (colored)

revert fpu/pcu changes until we figure out what's wrong; they cause random
freezes

Revision 1.107 / (download) - annotate - [select for diffs], Wed Oct 23 20:18:50 2013 UTC (10 months, 1 week ago) by drochner
Branch: MAIN
Changes since 1.106: +4 -13 lines
Diff to previous 1.106 (colored) to selected 1.75 (colored)

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.106 / (download) - annotate - [select for diffs], Sun Jun 23 09:00:36 2013 UTC (14 months, 1 week ago) by uebayasi
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Branch point for: rmind-smpnet
Changes since 1.105: +19 -19 lines
Diff to previous 1.105 (colored) to selected 1.75 (colored)

Whitespace, comment, NBPG -> PAGE_SIZE.

Revision 1.105 / (download) - annotate - [select for diffs], Sun Jun 23 03:16:46 2013 UTC (14 months, 1 week ago) by uebayasi
Branch: MAIN
Changes since 1.104: +43 -43 lines
Diff to previous 1.104 (colored) to selected 1.75 (colored)

Whitespace.

Revision 1.104 / (download) - annotate - [select for diffs], Sat Jun 22 15:13:55 2013 UTC (14 months, 1 week ago) by uebayasi
Branch: MAIN
Changes since 1.103: +52 -27 lines
Diff to previous 1.103 (colored) to selected 1.75 (colored)

Use END() markers, etc.  Pure ELF .symtab (size) changes.

Revision 1.103 / (download) - annotate - [select for diffs], Fri Oct 26 14:46:44 2012 UTC (22 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, khorben-n900, agc-symver-base, agc-symver
Changes since 1.102: +3 -3 lines
Diff to previous 1.102 (colored) to selected 1.75 (colored)

in osyscall, set the PSL_I bit into the correct field of the trapframe.
it was going into tf_eip instead of tf_eflags, which would sometimes
corrupt %eip and always return to user mode with interrupts disabled.
this was found with a netbsd 1.0 binary, and dsl@ points out that
this should also fix PR 41342.

Revision 1.102 / (download) - annotate - [select for diffs], Sat Sep 1 23:19:46 2012 UTC (2 years ago) by cherry
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.101: +3 -3 lines
Diff to previous 1.101 (colored) to selected 1.75 (colored)

Restrict export of the tmpgdt symbol to XEN kernels

Spotted by uwe@

Revision 1.101 / (download) - annotate - [select for diffs], Wed Jun 27 00:37:08 2012 UTC (2 years, 2 months ago) by jym
Branch: MAIN
Changes since 1.100: +4 -11 lines
Diff to previous 1.100 (colored) to selected 1.75 (colored)

Retire XEN_COMPAT_030001 as detailed on port-xen@:

http://mail-index.netbsd.org/port-xen/2012/06/25/msg007431.html

The xen_p2m API comes next.

ok bouyer@.
Tested on i386 PAE and amd64 (Xen 3.3 on private test bed, and
Xen 3.4 for Amazon EC2).

FWIW, Amazon always reported:

hypervisor0 at mainbus0: Xen version 3.4.3-kaos_t1micro

multiple times for Europe and US West-1, so I guess they are now at
3.4 (32 and 64 bits).

Revision 1.100 / (download) - annotate - [select for diffs], Sat Jun 16 17:30:19 2012 UTC (2 years, 2 months ago) by chs
Branch: MAIN
Changes since 1.99: +9 -9 lines
Diff to previous 1.99 (colored) to selected 1.75 (colored)

rename the global variable "cpu" to "cputype" to avoid conflicting with
dtrace, which wants to use "cpu" as a local variable.

Revision 1.99 / (download) - annotate - [select for diffs], Thu Apr 19 18:07:05 2012 UTC (2 years, 4 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base5, jmcneill-usbmp-base9, jmcneill-usbmp-base10
Changes since 1.98: +3 -3 lines
Diff to previous 1.98 (colored) to selected 1.75 (colored)

Mirror what is done for amd64 boot and ACPI wakeup code by setting
CR0_WP (write protection bit) early on boot. Although it is set later via
cpu_init(), this can help tracking down invalid writes to pages mapped
as read only from ring 0.

No regression observed when booting under anita (QEMU) or a P4 host.

Depending on your hardware or setup, you may trigger code paths I have
overlooked. So if your machine does not start properly, or you get
page faults early during boot, please report them to me.

Revision 1.98 / (download) - annotate - [select for diffs], Thu Apr 19 18:00:35 2012 UTC (2 years, 4 months ago) by jym
Branch: MAIN
Changes since 1.97: +3 -3 lines
Diff to previous 1.97 (colored) to selected 1.75 (colored)

Set the CR0_AM bit so processes can enable alignment check errors under
x86 through PSL_AC bit.

ATF test incoming shortly.

Revision 1.97 / (download) - annotate - [select for diffs], Fri Mar 2 16:43:31 2012 UTC (2 years, 6 months ago) by bouyer
Branch: MAIN
CVS Tags: yamt-pagecache-base4, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base4
Changes since 1.96: +12 -6 lines
Diff to previous 1.96 (colored) to selected 1.75 (colored)

Follow locore.S and move FPU handling from x86_64_switch_context() to
x86_64_tls_switch(); raise IPL to IPL_HIGH in x86_64_switch_context()
and test ci_fpcurlwp to decide to disable FPU or not.
Change the Xen i386 context switch code to be like the amd64 one.

Revision 1.96 / (download) - annotate - [select for diffs], Fri Feb 24 08:06:07 2012 UTC (2 years, 6 months ago) by cherry
Branch: MAIN
CVS Tags: jmcneill-usbmp-base5
Changes since 1.95: +17 -3 lines
Diff to previous 1.95 (colored) to selected 1.75 (colored)

(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.95 / (download) - annotate - [select for diffs], Fri Mar 18 15:18:16 2011 UTC (3 years, 5 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, rmind-uvmplock-nbase, rmind-uvmplock-base, netbsd-6-base, jym-xensuspend-nbase, jym-xensuspend-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache, netbsd-6, jmcneill-usbmp
Changes since 1.94: +3 -3 lines
Diff to previous 1.94 (colored) to selected 1.75 (colored)

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

Revision 1.94 / (download) - annotate - [select for diffs], Mon Dec 20 00:25:35 2010 UTC (3 years, 8 months ago) by matt
Branch: 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
Changes since 1.93: +4 -3 lines
Diff to previous 1.93 (colored) to selected 1.75 (colored)

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

Revision 1.93 / (download) - annotate - [select for diffs], Sat Jul 24 00:45:54 2010 UTC (4 years, 1 month ago) by jym
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.92: +74 -32 lines
Diff to previous 1.92 (colored) to selected 1.75 (colored)

Welcome PAE inside i386 current.

This patch is inspired by work previously done by Jeremy Morse, ported by me
to -current, merged with the work previously done for port-xen, together with
additionals fixes and improvements.

PAE option is disabled by default in GENERIC (but will be enabled in ALL in
the next few days).

In quick, PAE switches the CPU to a mode where physical addresses become
36 bits (64 GiB). Virtual address space remains at 32 bits (4 GiB). To cope
with the increased size of the physical address, they are manipulated as
64 bits variables by kernel and MMU.

When supported by the CPU, it also allows the use of the NX/XD bit that
provides no-execution right enforcement on a per physical page basis.

Notes:

- reworked locore.S

- introduce cpu_load_pmap(), used to switch pmap for the curcpu. Due to the
different handling of pmap mappings with PAE vs !PAE, Xen vs native, details
are hidden within this function. This helps calling it from assembly,
as some features, like BIOS calls, switch to pmap_kernel before mapping
trampoline code in low memory.

- some changes in bioscall and kvm86_call, to reflect the above.

- the L3 is "pinned" per-CPU, and is only manipulated by a
reduced set of functions within pmap. To track the L3, I added two
elements to struct cpu_info, namely ci_l3_pdirpa (PA of the L3), and
ci_l3_pdir (the L3 VA). Rest of the code considers that it runs "just
like" a normal i386, except that the L2 is 4 pages long (PTP_LEVELS is
still 2).

- similar to the ci_pae_l3_pdir{,pa} variables, amd64's xen_current_user_pgd
becomes an element of cpu_info (slowly paving the way for MP world).

- bootinfo_source struct declaration is modified, to cope with paddr_t size
change with PAE (it is not correct to assume that bs_addr is a paddr_t when
compiled with PAE - it should remain 32 bits). bs_addrs is now a
void * array (in bootloader's code under i386/stand/, the bs_addrs
is a physaddr_t, which is an unsigned long).

- fixes in multiboot code (same reason as bootinfo): paddr_t size
change. I used Elf32_* types, use RELOC() where necessary, and move the
memcpy() functions out of the if/else if (I do not expect sym and str tables
to overlap with ELF).

- 64 bits atomic functions for pmap

- all pmap_pdirpa access are now done through the pmap_pdirpa macro. It
hides the L3/L2 stuff from PAE, as well as the pm_pdirpa change in
struct pmap (it now becomes a PDP_SIZE array, with or without PAE).

- manipulation of recursive mappings ( PDIR_SLOT_{,A}PTEs ) is done via
loops on PDP_SIZE.

See also http://mail-index.netbsd.org/port-i386/2010/07/17/msg002062.html

No objection raised on port-i386@ and port-xen@R for about a week.

XXX kvm(3) will be fixed in another patch to properly handle both PAE and !PAE
kernel dumps (VA => PA macros are slightly different, and need proper 64 bits
PA support in kvm_i386).

XXX Mixing PAE and !PAE modules may lead to unwanted/unexpected results. This
cannot be solved easily, and needs lots of thinking before being declared
safe (paddr_t/bus_addr_t size handling, PD/PT macros abstractions).

Revision 1.92 / (download) - annotate - [select for diffs], Thu Jul 15 18:55:27 2010 UTC (4 years, 1 month ago) by jym
Branch: MAIN
Changes since 1.91: +8 -6 lines
Diff to previous 1.91 (colored) to selected 1.75 (colored)

In Xen PAE case, fix argument size passed to init386(), by pushing the
upper bits onto stack (we do not expect first_avail to be above 4GiB, so
assume their value is 0).

Remove macros (PROC0PDIR and PROC0STACK) that were never used.

Revision 1.91 / (download) - annotate - [select for diffs], Fri Nov 27 03:23:10 2009 UTC (4 years, 9 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base, matt-premerge-20091211
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.90: +8 -8 lines
Diff to previous 1.90 (colored) to selected 1.75 (colored)

- 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.90 / (download) - annotate - [select for diffs], Wed Nov 25 14:28:50 2009 UTC (4 years, 9 months ago) by rmind
Branch: MAIN
Changes since 1.89: +4 -4 lines
Diff to previous 1.89 (colored) to selected 1.75 (colored)

Remove IPL_LPT and IPL_IPI aliases, use the actual IPLs.
Fix some broken comments.

Revision 1.89 / (download) - annotate - [select for diffs], Mon Oct 19 18:41:10 2009 UTC (4 years, 10 months ago) by bouyer
Branch: MAIN
Changes since 1.88: +2 -7 lines
Diff to previous 1.88 (colored) to selected 1.75 (colored)

Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !

Revision 1.88 / (download) - annotate - [select for diffs], Wed Jul 29 12:02:05 2009 UTC (5 years, 1 month ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7
Changes since 1.87: +4 -12 lines
Diff to previous 1.87 (colored) to selected 1.75 (colored)

remove Xen2 support.
ok bouyer@

Revision 1.87 / (download) - annotate - [select for diffs], Mon May 4 11:47:29 2009 UTC (5 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, jymxensuspend-base
Changes since 1.86: +5 -2 lines
Diff to previous 1.86 (colored) to selected 1.75 (colored)

PR kern/41342: BSDi binaries cause panic

XXX Manuel, please have a look as I am not sure what to do for XEN here!

Revision 1.86 / (download) - annotate - [select for diffs], Sat Mar 21 22:55:08 2009 UTC (5 years, 5 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Changes since 1.85: +3 -2 lines
Diff to previous 1.85 (colored) to selected 1.75 (colored)

Add 2 event counters:

"x86", "io bitmap copy"
"x86", "ldt sync"

Revision 1.85 / (download) - annotate - [select for diffs], Sat Mar 21 14:41:29 2009 UTC (5 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.84: +6 -2 lines
Diff to previous 1.84 (colored) to selected 1.75 (colored)

PR port-i386/40143 Viewing an mpeg transport stream with mplayer causes crash

Fix numerous problems:

1. LDT updates are not atomic.

2. Number of processes running with private LDTs and/or I/O bitmaps
   is not capped. System with high maxprocs can be paniced.

3. LDTR can be leaked over context switch.

4. GDT slot allocations can race, giving the same LDT slot to two procs.

5. Incomplete interrupt/trap frames can be stacked.

6. In some rare cases segment faults are not handled correctly.

Revision 1.84 / (download) - annotate - [select for diffs], Sun Mar 8 16:03:31 2009 UTC (5 years, 5 months ago) by ad
Branch: MAIN
Changes since 1.83: +8 -8 lines
Diff to previous 1.83 (colored) to selected 1.75 (colored)

printf -> panic so MP panics work correctly

Revision 1.83 / (download) - annotate - [select for diffs], Fri Feb 13 22:41:02 2009 UTC (5 years, 6 months ago) by apb
Branch: MAIN
CVS Tags: nick-hppapmap-base2
Changes since 1.82: +3 -2 lines
Diff to previous 1.82 (colored) to selected 1.75 (colored)

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.82 / (download) - annotate - [select for diffs], Wed Dec 3 11:40:17 2008 UTC (5 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: mjf-devfs2-base, haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: jym-xensuspend
Changes since 1.81: +3 -3 lines
Diff to previous 1.81 (colored) to selected 1.75 (colored)

Don't abort pageidlezero unless a realtime thread wants to run.

Revision 1.81 / (download) - annotate - [select for diffs], Wed Nov 19 18:35:58 2008 UTC (5 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.80: +34 -2 lines
Diff to previous 1.80 (colored) to selected 1.75 (colored)

Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime

Revision 1.80 / (download) - annotate - [select for diffs], Thu Nov 13 10:53:30 2008 UTC (5 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.79: +4 -4 lines
Diff to previous 1.79 (colored) to selected 1.75 (colored)

LKM -> MODULAR

Revision 1.79 / (download) - annotate - [select for diffs], Tue Nov 11 14:40:18 2008 UTC (5 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.78: +5 -6 lines
Diff to previous 1.78 (colored) to selected 1.75 (colored)

PR port-amd64/38293 panic: fp_save ipi didn't

Fix race conditions in FPU IPI handling.

Revision 1.78 / (download) - annotate - [select for diffs], Sun Oct 19 14:12:28 2008 UTC (5 years, 10 months ago) by joerg
Branch: MAIN
CVS Tags: netbsd-5-base, matt-mips64-base2
Branch point for: nick-hppapmap, netbsd-5
Changes since 1.77: +3 -2 lines
Diff to previous 1.77 (colored) to selected 1.75 (colored)

Include opt_multiboot.h to allow the option to work.

Revision 1.77 / (download) - annotate - [select for diffs], Fri Jun 27 00:41:39 2008 UTC (6 years, 2 months ago) by gmcgarry
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-base, haad-dm-base1
Branch point for: haad-dm
Changes since 1.76: +3 -3 lines
Diff to previous 1.76 (colored) to selected 1.75 (colored)

Replace lines beginning with assembler-style comments with c-style comments,
since '#' can be interpretted as a preprocessor directive.  Remove single
quote ''' from assembler-style comments, as the preprocessor may ignore
everything between them.

Fixes compilation with pcc.

Revision 1.76 / (download) - annotate - [select for diffs], Mon Jun 2 14:41:41 2008 UTC (6 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Branch point for: simonb-wapbl
Changes since 1.75: +13 -55 lines
Diff to previous 1.75 (colored)

- 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.75 / (download) - annotate - [selected], Sun Jun 1 18:37:12 2008 UTC (6 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.74: +33 -18 lines
Diff to previous 1.74 (colored)

- sse2_zero_page: do 64-bytes (1 cache line) at a time.
- sse2_copy_page: increase from 16 to 32 bytes per loop.

Revision 1.74 / (download) - annotate - [select for diffs], Sun Jun 1 15:54:02 2008 UTC (6 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.73: +5 -4 lines
Diff to previous 1.73 (colored) to selected 1.75 (colored)

fix typo and add level to the printf.

Revision 1.73 / (download) - annotate - [select for diffs], Sun May 11 14:44:54 2008 UTC (6 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Changes since 1.72: +8 -6 lines
Diff to previous 1.72 (colored) to selected 1.75 (colored)

Simplify x86 identcpu code, and share between i386/amd64.

Revision 1.72 / (download) - annotate - [select for diffs], Sat May 3 05:56:44 2008 UTC (6 years, 4 months ago) by yamt
Branch: MAIN
Branch point for: wrstuden-revivesa
Changes since 1.71: +17 -2 lines
Diff to previous 1.71 (colored) to selected 1.75 (colored)

sprinkle END/IDTVEC_END.

Revision 1.71 / (download) - annotate - [select for diffs], Fri May 2 15:26:38 2008 UTC (6 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.70: +14 -5 lines
Diff to previous 1.70 (colored) to selected 1.75 (colored)

- 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.70 / (download) - annotate - [select for diffs], Tue Apr 29 18:27:18 2008 UTC (6 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.69: +12 -2 lines
Diff to previous 1.69 (colored) to selected 1.75 (colored)

cpu_switchto: if DIAGNOSTIC, assert not above IPL_SCHED.

Revision 1.69 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:24 2008 UTC (6 years, 4 months ago) by martin
Branch: MAIN
Changes since 1.68: +2 -9 lines
Diff to previous 1.68 (colored) to selected 1.75 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.68 / (download) - annotate - [select for diffs], Sun Apr 27 22:40:09 2008 UTC (6 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.67: +23 -28 lines
Diff to previous 1.67 (colored) to selected 1.75 (colored)

- Make some entry/exit points preemption safe.
- Avoid mispredicted branches in Xsyscall.

Revision 1.67 / (download) - annotate - [select for diffs], Tue Mar 11 02:24:43 2008 UTC (6 years, 5 months ago) by ad
Branch: 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
Changes since 1.66: +3 -2 lines
Diff to previous 1.66 (colored) to selected 1.75 (colored)

Make context switch + syscall counters optionally per-CPU and accumulate
in schedclock() at "about 16 hz".

Revision 1.66 / (download) - annotate - [select for diffs], Wed Jan 23 19:46:44 2008 UTC (6 years, 7 months ago) by bouyer
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.65: +5 -2 lines
Diff to previous 1.65 (colored) to selected 1.75 (colored)

Merge the bouyer-xeni386 branch. This brings in PAE support to NetBSD xeni386
(domU only). PAE support is enabled by 'options PAE', see the new XEN3PAE_DOMU
and INSTALL_XEN3PAE_DOMU kernel config files.

See the comments in arch/i386/include/{pte.h,pmap.h} to see how it works.
In short, we still handle it as a 2-level MMU, with the second level page
directory being 4 pages in size. pmap switching is done by switching the
L2 pages in the L3 entries, instead of loading %cr3. This is almost required
by Xen, which handle the last L2 page (the one mapping 0xc0000000 - 0xffffffff)
in a very special way. But this approach should also work for native PAE
support if ever supported (in fact, the pmap should almost suport native
PAE, what's missing is bootstrap code in locore.S).

Revision 1.65 / (download) - annotate - [select for diffs], Mon Jan 21 08:22:42 2008 UTC (6 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase
Changes since 1.64: +14 -17 lines
Diff to previous 1.64 (colored) to selected 1.75 (colored)

Slightly better version of dumpsys from ad via simonb.

Revision 1.64 / (download) - annotate - [select for diffs], Sun Jan 20 12:43:00 2008 UTC (6 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: bouyer-xeni386-base
Changes since 1.63: +20 -2 lines
Diff to previous 1.63 (colored) to selected 1.75 (colored)

Do the dumpsys/dodumpsys thing on i386...

dumpsys() now mimics cpu_switchto() (pushes a switchframe onto the stack)
for postmortem debugging.

From simonb.

Revision 1.63 / (download) - annotate - [select for diffs], Sun Jan 13 11:03:04 2008 UTC (6 years, 7 months ago) by bouyer
Branch: MAIN
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored) to selected 1.75 (colored)

Revert tmpstk size to 512 bytes, it was bumped to 1024 by mistake when
bouyer-xeni386 was merged.

Revision 1.62 / (download) - annotate - [select for diffs], Fri Jan 11 20:00:14 2008 UTC (6 years, 7 months ago) by bouyer
Branch: MAIN
Changes since 1.61: +199 -10 lines
Diff to previous 1.61 (colored) to selected 1.75 (colored)

Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the
branch is still active and will see i386PAE support developement).
Sumary of changes:
- switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c
  pmap bootstrap.
- merge back most of xen/i386/ to i386/i386
- change the build to reduce diffs between i386 and amd64 in file locations
- remove include files that were identical to the i386/amd64 counterparts,
  the build will find them via the xen-ma/machine link.

Revision 1.61 / (download) - annotate - [select for diffs], Thu Jan 10 20:14:11 2008 UTC (6 years, 7 months ago) by ad
Branch: MAIN
Changes since 1.60: +8 -4 lines
Diff to previous 1.60 (colored) to selected 1.75 (colored)

- Fix a memory order problem with non-interlocked mutex release.
- Give kernel_lock its own cache line.

Revision 1.60 / (download) - annotate - [select for diffs], Fri Jan 4 15:55:32 2008 UTC (6 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.59: +28 -9 lines
Diff to previous 1.59 (colored) to selected 1.75 (colored)

i386:
	- make tss per-cpu.  this considerably speeds up context switch for,
	  at least, pentium4, where ltr instruction seems very slow.
i386, xen:
	- kill cpu_maxproc.
kvm86:
	- adapt to per-cpu tss.
	- cleanup and simplify.
	- move kvm86_mp_lock to more meaningful place.
	- disable preemption during a call.

Revision 1.59 / (download) - annotate - [select for diffs], Tue Dec 11 23:06:13 2007 UTC (6 years, 8 months ago) by lukem
Branch: MAIN
CVS Tags: yamt-kmem-base3, vmlocking2-base3
Changes since 1.58: +4 -2 lines
Diff to previous 1.58 (colored) to selected 1.75 (colored)

Use __KERNEL_RCSID().  For these .S files, the following style was
adopted, a la .C files and <sys/cdefs.h>:
  *  move <machine/asm.h> to the top
  *  use __KERNEL_RCSID() immediately after it

Revision 1.58 / (download) - annotate - [select for diffs], Mon Dec 3 19:06:36 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base2, yamt-kmem-base, vmlocking2-base2, vmlocking2-base1, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: yamt-kmem, vmlocking2, bouyer-xeni386
Changes since 1.57: +14 -9 lines
Diff to previous 1.57 (colored) to selected 1.75 (colored)

Merge from vmlocking.

Revision 1.57 / (download) - annotate - [select for diffs], Wed Nov 14 17:54:59 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: vmlocking-nbase, bouyer-xenamd64-base2, bouyer-xenamd64-base
Changes since 1.56: +1 -2 lines
Diff to previous 1.56 (colored) to selected 1.75 (colored)

- Remove I486_CPU, I586_CPU, I686_CPU options. They buy us nothing and
  clutter the code significantly.
- Remove pccons.

Revision 1.56 / (download) - annotate - [select for diffs], Tue Nov 13 18:20:18 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.55: +6 -6 lines
Diff to previous 1.55 (colored) to selected 1.75 (colored)

Fix the fsbase/gsbase stuff to work in combination with RAS.
Still not working reliably on my AMD K7 for some reason.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Nov 10 23:04:29 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.54: +5 -5 lines
Diff to previous 1.54 (colored) to selected 1.75 (colored)

fsbase/gsbase:

- Fix a few bugs with it, in particular fork/exec handling.
- Store the descriptors in the PCB, not in the LWP.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Nov 10 20:06:24 2007 UTC (6 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.53: +13 -3 lines
Diff to previous 1.53 (colored) to selected 1.75 (colored)

- When computing the TSC frequency, call i8254_delay() and not DELAY().
- Use atomics to adjust the pmap reference count, instead of taking locks.
- Implement I386_{SET,GET}_{FS,GS}BASE, allowing %fs and %gs to be used
  as per-thread registers. This is compatible with FreeBSD.
- Run patches after we have attached CPUs, since we then know if the
  system is uniprocessor or not. Eliminates a lot of #ifdef MULTIPROCESSOR
  and makes running MP kernels on UP systems cheaper.
- Patch out many of the 'lock' prefixes to nops if uniprocessor.
- Do a wbinvd after patching to ensure that the trace/instruction cache
  is up to date.

Revision 1.53 / (download) - annotate - [select for diffs], Thu Oct 18 15:28:35 2007 UTC (6 years, 10 months ago) by yamt
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: mjf-devfs
Changes since 1.52: +139 -80 lines
Diff to previous 1.52 (colored) to selected 1.75 (colored)

merge yamt-x86pmap branch.

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

Revision 1.52 / (download) - annotate - [select for diffs], Wed Oct 17 19:54:45 2007 UTC (6 years, 10 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4
Changes since 1.51: +1 -1 lines
Diff to previous 1.51 (colored) to selected 1.75 (colored)

Merge the ppcoea-renovation branch to HEAD.

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

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

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

Revision 1.51 / (download) - annotate - [select for diffs], Wed Sep 26 19:48:36 2007 UTC (6 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, yamt-x86pmap-base2, vmlocking-base, ppcoea-renovation-base
Branch point for: bouyer-xenamd64
Changes since 1.50: +1 -42 lines
Diff to previous 1.50 (colored) to selected 1.75 (colored)

x86 changes for pcc and LKMs.

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

Revision 1.50 / (download) - annotate - [select for diffs], Wed Aug 29 23:38:04 2007 UTC (7 years ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base, nick-csl-alignment-base5
Branch point for: yamt-x86pmap
Changes since 1.49: +63 -1 lines
Diff to previous 1.49 (colored) to selected 1.75 (colored)

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

Revision 1.49 / (download) - annotate - [select for diffs], Thu Aug 16 17:00:05 2007 UTC (7 years ago) by ad
Branch: MAIN
Branch point for: matt-armv6
Changes since 1.48: +3 -2 lines
Diff to previous 1.48 (colored) to selected 1.75 (colored)

cpu_switchto: fix a well dodgy bit of assembly that broke RAS.

Revision 1.48 / (download) - annotate - [select for diffs], Thu May 17 14:51:21 2007 UTC (7 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, hpcarm-cleanup
Branch point for: nick-csl-alignment, jmcneill-pm
Changes since 1.47: +104 -501 lines
Diff to previous 1.47 (colored) to selected 1.75 (colored)

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.47 / (download) - annotate - [select for diffs], Mon Feb 19 11:46:10 2007 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, ad-audiomp-base, ad-audiomp
Branch point for: vmlocking, ppcoea-renovation, mjf-ufs-trans
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (colored) to selected 1.75 (colored)

Correct a comment

Revision 1.46 / (download) - annotate - [select for diffs], Sat Feb 17 22:31:37 2007 UTC (7 years, 6 months ago) by pavel
Branch: MAIN
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored) to selected 1.75 (colored)

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.45 / (download) - annotate - [select for diffs], Fri Feb 9 21:55:04 2007 UTC (7 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: post-newlock2-merge
Branch point for: yamt-idlelwp
Changes since 1.44: +13 -19 lines
Diff to previous 1.44 (colored) to selected 1.75 (colored)

Merge newlock2 to head.

Revision 1.44 / (download) - annotate - [select for diffs], Wed Oct 25 13:56:15 2006 UTC (7 years, 10 months ago) by jmmv
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, 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
Branch point for: netbsd-4
Changes since 1.43: +2 -8 lines
Diff to previous 1.43 (colored) to selected 1.75 (colored)

Remove the usage of Multiboot's "a.out kludge" to tell the boot loader to
reserve some more space for the BSS section than the binary says.  This
trick was used to leave room after the kernel's image to copy the symbol
table following the format required by ksyms_init.  (It was also used to
workaround a bug in the physical address fields of the binary, but this has
been long fixed.)  Yes, the MULTIBOOT_SYMTAB_SPACE option goes away; yay!

Instead, copy the required data after the kernel in a way that avoids having
to reserve space and use the new ksyms_init_explicit function to avoid the
need to construct a minimal ELF image.

Fixes ksyms when using an "unpatched" GRUB (one that does not contain the
fix to honour the "a.out kludge" for ELF images, even when present) -- i.e.
ddb and lkms.  As a side effect, the new code is much clearer to read and
digest.

Closes PR port-i386/32865.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Jul 25 00:23:38 2006 UTC (8 years, 1 month ago) by mrg
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, rpaulo-netinet-merge-pcb-base, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-splraiseipl, newlock2
Changes since 1.42: +5 -3 lines
Diff to previous 1.42 (colored) to selected 1.75 (colored)

fix a typo in a comment and a very minor KNF.

Revision 1.42 / (download) - annotate - [select for diffs], Sat Jul 8 20:30:00 2006 UTC (8 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.41: +1 -2 lines
Diff to previous 1.41 (colored) to selected 1.75 (colored)

- apm.c -> apmbios.c and s/NAPM/NAPMBIOS/
- adjust to new function call signatures.

Revision 1.41 / (download) - annotate - [select for diffs], Sat Jul 1 09:21:28 2006 UTC (8 years, 2 months ago) by jmmv
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored) to selected 1.75 (colored)

Fix order of biosbasemem and biosextmem order in a comment to match reality.
Closes PR kern/32082 by Dave J. Barnes.

Revision 1.40 / (download) - annotate - [select for diffs], Mon May 22 13:44:53 2006 UTC (8 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, gdamore-uart-base, chap-midi-nbase, chap-midi-base
Branch point for: gdamore-uart
Changes since 1.39: +6 -6 lines
Diff to previous 1.39 (colored) to selected 1.75 (colored)

i386 and xen: move struct user to the highest address in uarea
and reduce UPAGES from 4 to 3 in the case of !NOREDZONE.

Revision 1.39 / (download) - annotate - [select for diffs], Sat May 13 08:56:08 2006 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Branch point for: chap-midi
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored) to selected 1.75 (colored)

Fix some more comments.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Apr 12 13:48:52 2006 UTC (8 years, 4 months ago) by jmmv
Branch: MAIN
CVS Tags: elad-kernelauth-base
Changes since 1.37: +11 -77 lines
Diff to previous 1.37 (colored) to selected 1.75 (colored)

Convert the code that fetches bootinfo information and stores it into the
kernel from assembler to C and add several comments to make things clearer.
I've been running with these changes for a couple of months without problems.

Revision 1.37 / (download) - annotate - [select for diffs], Fri Feb 3 11:08:24 2006 UTC (8 years, 6 months ago) by jmmv
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, simonb-timecounters, peter-altq, elad-kernelauth
Changes since 1.36: +46 -1 lines
Diff to previous 1.36 (colored) to selected 1.75 (colored)

Implement support for 'The Multiboot Specification' so that i386 kernels
can be booted directly from Multiboot-compliant boot loaders (e.g. GRUB).
See the added multiboot(8) manual page for more information.

No objections in tech-kern@; only positive comments.

Revision 1.36 / (download) - annotate - [select for diffs], Sun Dec 11 12:17:41 2005 UTC (8 years, 8 months ago) by christos
Branch: MAIN
Branch point for: yamt-uio_vmspace, rpaulo-netinet-merge-pcb
Changes since 1.35: +1 -1 lines
Diff to previous 1.35 (colored) to selected 1.75 (colored)

merge ktrace-lwp.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Nov 7 11:42:34 2005 UTC (8 years, 9 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, ktrace-lwp-base
Changes since 1.34: +7 -890 lines
Diff to previous 1.34 (colored) to selected 1.75 (colored)

some assym cleanup.
- move copyin and friends from locore.S to their own file, copy.S.
  share it between i386 and xen.
- defparam KERNBASE and kill KERNBASE_LOCORE hack.
- add more symbols to assym.h and use it where appropriate.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:31 2005 UTC (9 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, thorpej-vnode-attr-base, thorpej-vnode-attr, kent-audio2-base
Branch point for: yamt-lazymbuf
Changes since 1.33: +1 -3 lines
Diff to previous 1.33 (colored) to selected 1.75 (colored)

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.33 / (download) - annotate - [select for diffs], Mon Mar 14 21:50:59 2005 UTC (9 years, 5 months ago) by fvdl
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, 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
Changes since 1.32: +3 -1 lines
Diff to previous 1.32 (colored) to selected 1.75 (colored)

Check the passed in address as well as determining the maximum length
using VM_MAXUSER_ADDRESS in copyinstr and copyoutstr.

Problem originally fixed in OpenBSD/i386.
This fix suggested by Charles Hannum (mycroft at netbsd dot org).

Revision 1.32 / (download) - annotate - [select for diffs], Wed Mar 2 12:00:25 2005 UTC (9 years, 6 months ago) by mycroft
Branch: MAIN
Changes since 1.31: +2 -2 lines
Diff to previous 1.31 (colored) to selected 1.75 (colored)

Copyright maintenance.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Aug 26 10:12:33 2004 UTC (10 years ago) by junyoung
Branch: MAIN
CVS Tags: yamt-km-base2, yamt-km-base, matt-timespec, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Changes since 1.30: +13 -31 lines
Diff to previous 1.30 (colored) to selected 1.75 (colored)

As suggested on tech-kern@ days ago:
* Get rid of PTmap, PTD, PTDpde, APTmap, APTD, and APTDpde from locore.S.
* Rename PTDpaddr to PDPpaddr, ptdpaddr in struct cpu_kcore_hdr to pdppaddr for consistency.

Revision 1.30 / (download) - annotate - [select for diffs], Sun Aug 22 06:46:34 2004 UTC (10 years ago) by junyoung
Branch: MAIN
Changes since 1.29: +53 -53 lines
Diff to previous 1.29 (colored) to selected 1.75 (colored)

Remove trailing spaces.

Revision 1.29 / (download) - annotate - [select for diffs], Thu Aug 5 15:25:29 2004 UTC (10 years ago) by mycroft
Branch: MAIN
Changes since 1.28: +11 -4 lines
Diff to previous 1.28 (colored) to selected 1.75 (colored)

Increase nkpde automatically to adjust for the kernel size.  Also, if we did
adjust nkpde, save the new value.  This should enable us to boot extremely
large kernels without fiddling with NKPTP.

Revision 1.28 / (download) - annotate - [select for diffs], Thu May 13 12:15:01 2004 UTC (10 years, 3 months ago) by yamt
Branch: MAIN
Changes since 1.27: +4 -1 lines
Diff to previous 1.27 (colored) to selected 1.75 (colored)

witch_return: call Xspllower only when there're pending interrupts.

Revision 1.27 / (download) - annotate - [select for diffs], Tue Apr 20 11:59:20 2004 UTC (10 years, 4 months ago) by yamt
Branch: MAIN
Changes since 1.26: +4 -4 lines
Diff to previous 1.26 (colored) to selected 1.75 (colored)

add '.L' prefixes to local labels.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Apr 12 13:17:46 2004 UTC (10 years, 4 months ago) by yamt
Branch: MAIN
Changes since 1.25: +9 -4 lines
Diff to previous 1.25 (colored) to selected 1.75 (colored)

- keep cr3 register and its copy in TSS synchronized.
  otherwise an interrupt vector using a task gate (ie. ddbipi) messes it up.
- defer LDTR loading as well as cr3.
- tweak comments to make three copies of switching code more synchronized.

Revision 1.25 / (download) - annotate - [select for diffs], Fri Mar 26 19:05:33 2004 UTC (10 years, 5 months ago) by drochner
Branch: MAIN
CVS Tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Changes since 1.24: +1 -7 lines
Diff to previous 1.24 (colored) to selected 1.75 (colored)

fix references to the syscall formerly known as SYS___sigreturn14

Revision 1.24 / (download) - annotate - [select for diffs], Fri Feb 20 17:35:01 2004 UTC (10 years, 6 months ago) by yamt
Branch: MAIN
Changes since 1.23: +53 -18 lines
Diff to previous 1.23 (colored) to selected 1.75 (colored)

defer pmap switching until it's really needed
to avoid frequent loading of cr3 register, which involves tlb flush.

with some fixes/improvements from Stephan Uphoff and Bang Jun-Young.

Revision 1.23 / (download) - annotate - [select for diffs], Mon Feb 16 17:11:27 2004 UTC (10 years, 6 months ago) by wiz
Branch: MAIN
Changes since 1.22: +1 -2 lines
Diff to previous 1.22 (colored) to selected 1.75 (colored)

Remove last traces of DUMMY_NOPS option that was removed some
time ago.
From Jeff Rizzo in PR 24442.

Revision 1.22 / (download) - annotate - [select for diffs], Fri Feb 13 11:36:13 2004 UTC (10 years, 6 months ago) by wiz
Branch: MAIN
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (colored) to selected 1.75 (colored)

Uppercase CPU, plural is CPUs.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 4 11:44:52 2004 UTC (10 years, 8 months ago) by jdolecek
Branch: MAIN
Changes since 1.20: +7 -12 lines
Diff to previous 1.20 (colored) to selected 1.75 (colored)

Process and lwp exit path always executes lwp_exit2() now and cpu_exit()
is empty besides calling switch_exit(). So, rename switch_exit() to
cpu_exit() and modify the routine to call lwp_exit2() direct.
This saves couple cycles on the exit path.

Revision 1.20 / (download) - annotate - [select for diffs], Tue Nov 4 10:33:15 2003 UTC (10 years, 10 months ago) by dsl
Branch: MAIN
Changes since 1.19: +15 -12 lines
Diff to previous 1.19 (colored) to selected 1.75 (colored)

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.19 / (download) - annotate - [select for diffs], Fri Sep 12 16:51:04 2003 UTC (10 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.18: +7 -1 lines
Diff to previous 1.18 (colored) to selected 1.75 (colored)

pick up the right sigreturn symbol. we could have #define __HAVE_SIGINFO
instead too.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Sep 12 12:39:59 2003 UTC (10 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.17: +7 -6 lines
Diff to previous 1.17 (colored) to selected 1.75 (colored)

include opt_compat_netbsd.h, sort includes. Thanks yamt.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Sep 10 19:48:49 2003 UTC (10 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored) to selected 1.75 (colored)

move compat_16 stuff into a separate file.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Sep 10 16:46:59 2003 UTC (10 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.15: +3 -2 lines
Diff to previous 1.15 (colored) to selected 1.75 (colored)

make obsolete trampoline code COMPAT_16. Unfortunately sigreturn14 is used
by IBCS2; grr.

Revision 1.15 / (download) - annotate - [select for diffs], Wed Aug 20 21:48:37 2003 UTC (11 years ago) by fvdl
Branch: MAIN
Changes since 1.14: +5 -1 lines
Diff to previous 1.14 (colored) to selected 1.75 (colored)

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

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

Revision 1.14 / (download) - annotate - [select for diffs], Mon Aug 11 21:15:50 2003 UTC (11 years ago) by fvdl
Branch: MAIN
Changes since 1.13: +2 -1 lines
Diff to previous 1.13 (colored) to selected 1.75 (colored)

Fix deadlock issue. Slight variation on patch by Stephan Uphoff.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Aug 8 20:14:06 2003 UTC (11 years ago) by christos
Branch: MAIN
Changes since 1.12: +8 -8 lines
Diff to previous 1.12 (colored) to selected 1.75 (colored)

use KERNBASE_LOCORE

Revision 1.12 / (download) - annotate - [select for diffs], Thu Aug 7 16:27:54 2003 UTC (11 years ago) by agc
Branch: MAIN
Changes since 1.11: +2 -6 lines
Diff to previous 1.11 (colored) to selected 1.75 (colored)

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Jun 26 16:47:15 2003 UTC (11 years, 2 months ago) by drochner
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.10: +1 -4 lines
Diff to previous 1.10 (colored) to selected 1.75 (colored)

cpu_feature is not set (nor used) by locore since SMP, so move the
definition to C code

Revision 1.10 / (download) - annotate - [select for diffs], Tue May 13 09:35:16 2003 UTC (11 years, 3 months ago) by fvdl
Branch: MAIN
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored) to selected 1.75 (colored)

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.9 / (download) - annotate - [select for diffs], Tue May 13 08:26:32 2003 UTC (11 years, 3 months ago) by fvdl
Branch: MAIN
Changes since 1.8: +5 -3 lines
Diff to previous 1.8 (colored) to selected 1.75 (colored)

Make cpu_switch return the correct value. From Stephan Uphoff, PR 21558

Revision 1.8 / (download) - annotate - [select for diffs], Sat Apr 26 18:13:16 2003 UTC (11 years, 4 months ago) by fvdl
Branch: MAIN
Changes since 1.7: +3 -2 lines
Diff to previous 1.7 (colored) to selected 1.75 (colored)

Save symtabspace in the LKM || KSYMS case as well; otherwise it'll overlap
with the page table pages for the kernel, and Bad Things will happen.

Revision 1.7 / (download) - annotate - [select for diffs], Tue Apr 8 23:48:48 2003 UTC (11 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.6: +13 -13 lines
Diff to previous 1.6 (colored) to selected 1.75 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Feb 9 15:49:34 2003 UTC (11 years, 6 months ago) by drochner
Branch: MAIN
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored) to selected 1.75 (colored)

fix a lint stub

Revision 1.5 / (download) - annotate - [select for diffs], Fri Jan 17 23:10:30 2003 UTC (11 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.4: +121 -71 lines
Diff to previous 1.4 (colored) to selected 1.75 (colored)

Merge the nathanw_sa branch.

Revision 1.4 / (download) - annotate - [select for diffs], Tue Dec 17 20:49:07 2002 UTC (11 years, 8 months ago) by gmcgarry
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base, gmcgarry_ctxsw_base, fvdl_fs64_base
Branch point for: gmcgarry_ctxsw
Changes since 1.3: +4 -7 lines
Diff to previous 1.3 (colored) to selected 1.75 (colored)

Use callee-saved registers in RAS processing.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Dec 17 19:47:15 2002 UTC (11 years, 8 months ago) by gmcgarry
Branch: MAIN
CVS Tags: gmcgarry_ucred_base, gmcgarry_ucred
Changes since 1.2: +1 -76 lines
Diff to previous 1.2 (colored) to selected 1.75 (colored)

Move to MI runqueue functions.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Dec 11 12:02:07 2002 UTC (11 years, 8 months ago) by fvdl
Branch: MAIN
Changes since 1.1: +5 -3 lines
Diff to previous 1.1 (colored) to selected 1.75 (colored)

Since a CPU may spin waiting for another CPU to handle an IPI, an
IPI must be the very first thing to be handled in splx(), if it
had been blocked before. Change things around a bit to guarantee
this.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Nov 22 15:01:17 2002 UTC (11 years, 9 months ago) by fvdl
Branch: MAIN
Branch point for: nathanw_sa
Diff to selected 1.75 (colored)

.s -> .S rename. New files: vector.S and spl.S, they have been split
off from locore.s, plus parts of isa/vector.s and isa/icu.s

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




CVSweb <webmaster@jp.NetBSD.org>