The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.22 / (download) - annotate - [select for diffs], Tue May 19 21:40:55 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, 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, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.21: +2 -16 lines
Diff to previous 1.21 (colored) to selected 1.20 (colored)

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

Revision 1.18.16.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:06:20 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.18: +2 -106 lines
Diff to previous 1.18 (colored) next main 1.19 (colored) to selected 1.20 (colored)

Sync with HEAD

Revision 1.21 / (download) - annotate - [select for diffs], Sat May 4 07:20:22 2019 UTC (4 years, 11 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.20: +2 -106 lines
Diff to previous 1.20 (colored)

More inlined ASM. While here switch to proper types.

Revision 1.18.14.2 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:17 2019 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.18.14.1: +48 -81 lines
Diff to previous 1.18.14.1 (colored) to branchpoint 1.18 (colored) next main 1.19 (colored) to selected 1.20 (colored)

Synch with HEAD

Revision 1.20 / (download) - annotate - [selected], Sun Jan 6 14:35:31 2019 UTC (5 years, 3 months ago) by cherry
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118, isaki-audio2-base, isaki-audio2
Changes since 1.19: +46 -79 lines
Diff to previous 1.19 (colored)

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

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

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

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

Revision 1.18.14.1 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:38 2018 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.18: +81 -48 lines
Diff to previous 1.18 (colored) to selected 1.20 (colored)

Sync with HEAD, resolve a few conflicts

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

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

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

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

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

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

There are no operational changes introduced by this change.

Revision 1.17.2.1 / (download) - annotate - [select for diffs], Sun Dec 3 11:36:17 2017 UTC (6 years, 4 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.17: +57 -2 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.20 (colored)

update from HEAD

Revision 1.17.20.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:18 2017 UTC (7 years, 3 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.17: +57 -2 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.20 (colored)

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

Revision 1.17.16.1 / (download) - annotate - [select for diffs], Mon Dec 5 10:54:53 2016 UTC (7 years, 4 months ago) by skrll
Branch: nick-nhusb
Changes since 1.17: +57 -2 lines
Diff to previous 1.17 (colored) next main 1.18 (colored) to selected 1.20 (colored)

Sync with HEAD

Revision 1.18 / (download) - annotate - [select for diffs], Sun Nov 27 14:49:21 2016 UTC (7 years, 4 months ago) by kamil
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-compat-base, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.17: +57 -2 lines
Diff to previous 1.17 (colored) to selected 1.20 (colored)

Add accessors for available x86 Debug Registers

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

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

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

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

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

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

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

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

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

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

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

Sponsored by <The NetBSD Foundation>

Revision 1.16.10.1 / (download) - annotate - [select for diffs], Thu Nov 1 16:44:59 2012 UTC (11 years, 5 months ago) by matt
Branch: matt-nb6-plus
Changes since 1.16: +7 -3 lines
Diff to previous 1.16 (colored) next main 1.17 (colored) to selected 1.20 (colored)

sync with netbsd-6-0-RELEASE.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Tue Oct 30 17:19:49 2012 UTC (11 years, 5 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.16: +7 -3 lines
Diff to previous 1.16 (colored) next main 1.17 (colored) to selected 1.20 (colored)

sync with head

Revision 1.16.8.1 / (download) - annotate - [select for diffs], Mon Sep 3 19:03:39 2012 UTC (11 years, 7 months ago) by riz
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base
Changes since 1.16: +5 -1 lines
Diff to previous 1.16 (colored) next main 1.17 (colored) to selected 1.20 (colored)

Pull up following revision(s) (requested by rmind in ticket #533):
	sys/arch/i386/i386/i386func.S: revision 1.17
tlbflushg/i386: test for the PGE feature flag first, before checking the %cr4.
Add a comment explaining why need to check both and in such order.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Aug 29 22:43:35 2012 UTC (11 years, 7 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, localcount-20160914, khorben-n900, agc-symver-base, agc-symver
Branch point for: tls-maxphys, pgoyette-localcount, nick-nhusb
Changes since 1.16: +7 -3 lines
Diff to previous 1.16 (colored) to selected 1.20 (colored)

tlbflushg/i386: test for the PGE feature flag first, before checking the %cr4.
Add a comment explaining why need to check both and in such order.

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

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

No regression observed on suspend/restore.

Revision 1.15.30.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:19:14 2011 UTC (12 years, 10 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.15: +5 -6 lines
Diff to previous 1.15 (colored) next main 1.16 (colored) to selected 1.20 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.16 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:42 2011 UTC (12 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-0-RC1, jym-xensuspend-nbase, jym-xensuspend-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6, matt-nb6-plus
Changes since 1.15: +5 -6 lines
Diff to previous 1.15 (colored) to selected 1.20 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

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

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

Revision 1.9.2.2 / (download) - annotate - [select for diffs], Mon May 4 08:11:16 2009 UTC (14 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.9.2.1: +4 -4 lines
Diff to previous 1.9.2.1 (colored) to branchpoint 1.9 (colored) next main 1.10 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.11.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:30:26 2008 UTC (15 years, 10 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.11: +16 -31 lines
Diff to previous 1.11 (colored) next main 1.12 (colored) to selected 1.20 (colored)

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

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

sync with head

Revision 1.3.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:22:15 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.3.6.1: +36 -36 lines
Diff to previous 1.3.6.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored) to selected 1.20 (colored)

Sync with HEAD.

Revision 1.15 / (download) - annotate - [select for diffs], Sun May 25 15:56:12 2008 UTC (15 years, 10 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base11, yamt-nfs-mp-base10, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, uebayasi-xip-base7, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, rmind-uvmplock-nbase, rmind-uvmplock-base, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, nick-hppapmap, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-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, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-premerge-20091211, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, jymxensuspend-base, jruoho-x86intr-base, jruoho-x86intr, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, ad-audiomp2-base, ad-audiomp2
Branch point for: rmind-uvmplock, jym-xensuspend, cherry-xenmp
Changes since 1.14: +4 -4 lines
Diff to previous 1.14 (colored) to selected 1.20 (colored)

enable profiling of assembly functions.

Revision 1.8.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:32:10 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.8: +36 -36 lines
Diff to previous 1.8 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.9.2.1 / (download) - annotate - [select for diffs], Fri May 16 02:22:34 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.9: +31 -36 lines
Diff to previous 1.9 (colored) to selected 1.20 (colored)

sync with head.

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

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

Revision 1.13 / (download) - annotate - [select for diffs], Sun May 11 12:43:35 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.12: +3 -2 lines
Diff to previous 1.12 (colored) to selected 1.20 (colored)

+END(tsc_get_timecount)

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

Improve x86 tsc handling:

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

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

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

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

- Make cpu_counter() stuff LKM safe.

Revision 1.11 / (download) - annotate - [select for diffs], Sat May 3 06:11:19 2008 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
Branch point for: wrstuden-revivesa
Changes since 1.10: +19 -2 lines
Diff to previous 1.10 (colored) to selected 1.20 (colored)

sprinkle END/IDTVEC_END.

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

Remove clause 3 and 4 from TNF licenses

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

+lcr2

Revision 1.3.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:18 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.3: +35 -6 lines
Diff to previous 1.3 (colored) to selected 1.20 (colored)

Sync with HEAD.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Mar 27 13:00:25 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.7: +3 -2 lines
Diff to previous 1.7 (colored) to selected 1.20 (colored)

Disable the fast tsc_get_timecount() for now. The divide can overflow
causing an exception.

Revision 1.2.10.5 / (download) - annotate - [select for diffs], Mon Mar 24 09:38:38 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.2.10.4: +11 -15 lines
Diff to previous 1.2.10.4 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.3.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:14:58 2008 UTC (16 years, 1 month ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.3: +35 -7 lines
Diff to previous 1.3 (colored) next main 1.4 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.2.14.4 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:06 2008 UTC (16 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.2.14.3: +35 -7 lines
Diff to previous 1.2.14.3 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.7 / (download) - annotate - [select for diffs], Mon Mar 17 16:46:47 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Changes since 1.6: +11 -15 lines
Diff to previous 1.6 (colored) to selected 1.20 (colored)

Shave more cycles off tsc_get_timecount(). From dsl@

Revision 1.2.10.4 / (download) - annotate - [select for diffs], Mon Mar 17 09:14:20 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.2.10.3: +39 -7 lines
Diff to previous 1.2.10.3 (colored) to branchpoint 1.2 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.6 / (download) - annotate - [select for diffs], Tue Mar 11 00:40:38 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.5: +3 -5 lines
Diff to previous 1.5 (colored) to selected 1.20 (colored)

tsc_get_timecount: remove unneeded instructions. Pointed out by dsl@.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Mar 10 22:04:06 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored) to selected 1.20 (colored)

Update copyright for previous.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Mar 10 22:03:40 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.3: +40 -6 lines
Diff to previous 1.3 (colored) to selected 1.20 (colored)

Implement an optimized, preemption-safe asm version of tsc_get_timecount().
The C version needs work to be preemption safe. Cuts the clock cycles
for microtime() from 950 down to 300 on a Pentium D.

Revision 1.2.10.3 / (download) - annotate - [select for diffs], Mon Jan 21 09:36:59 2008 UTC (16 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.2.10.2: +3 -1 lines
Diff to previous 1.2.10.2 (colored) to branchpoint 1.2 (colored) to selected 1.20 (colored)

sync with head

Revision 1.2.14.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:46:35 2008 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.2.14.2: +3 -1 lines
Diff to previous 1.2.14.2 (colored) to branchpoint 1.2 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.2.16.1 / (download) - annotate - [select for diffs], Wed Dec 26 19:42:18 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

Sync with head.

Revision 1.2.20.1 / (download) - annotate - [select for diffs], Thu Dec 13 21:54:41 2007 UTC (16 years, 4 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

Sync with HEAD

Revision 1.2.18.1 / (download) - annotate - [select for diffs], Thu Dec 13 05:05:16 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-kmem
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Dec 11 23:06:12 2007 UTC (16 years, 4 months ago) by lukem
Branch: MAIN
CVS Tags: yamt-kmem-base3, vmlocking2-base3, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-base, hpcarm-cleanup-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored) to selected 1.20 (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.2.14.2 / (download) - annotate - [select for diffs], Tue Nov 6 23:17:28 2007 UTC (16 years, 5 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.2.14.1: +168 -0 lines
Diff to previous 1.2.14.1 (colored) to branchpoint 1.2 (colored) to selected 1.20 (colored)

sync with HEAD

Revision 1.2.10.2 / (download) - annotate - [select for diffs], Sat Oct 27 11:26:36 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.2.10.1: +168 -0 lines
Diff to previous 1.2.10.1 (colored) to branchpoint 1.2 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.2.6.2 / (download) - annotate - [select for diffs], Tue Oct 9 13:37:54 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.2.6.1: +168 -0 lines
Diff to previous 1.2.6.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

Sync with head.

Revision 1.2.4.2 / (download) - annotate - [select for diffs], Sat Oct 6 15:34:51 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.2.4.1: +168 -0 lines
Diff to previous 1.2.4.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

sync with head.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Tue Oct 2 18:27:17 2007 UTC (16 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.2.2.1: +168 -0 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.20 (colored)

Sync with HEAD.

Revision 1.2.14.1, Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by matt
Branch: matt-armv6
Changes since 1.2: +0 -168 lines
FILE REMOVED

file i386func.S was added on branch matt-armv6 on 2007-11-06 23:17:28 +0000

Revision 1.2.10.1, Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.2: +0 -168 lines
FILE REMOVED

file i386func.S was added on branch yamt-lazymbuf on 2007-10-27 11:26:36 +0000

Revision 1.2.6.1, Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.2: +0 -168 lines
FILE REMOVED

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

Revision 1.2.4.1, Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.2: +0 -168 lines
FILE REMOVED

file i386func.S was added on branch yamt-x86pmap on 2007-10-06 15:34:51 +0000

Revision 1.2.2.1, Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.2: +0 -168 lines
FILE REMOVED

file i386func.S was added on branch jmcneill-pm on 2007-10-02 18:27:17 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Wed Sep 26 22:05:24 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-kmem-base2, yamt-kmem-base, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, vmlocking-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, mjf-devfs, jmcneill-pm-base, jmcneill-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: yamt-x86pmap, yamt-lazymbuf, yamt-kmem, vmlocking2, vmlocking, matt-armv6, jmcneill-pm, bouyer-xeni386
Changes since 1.1: +14 -14 lines
Diff to previous 1.1 (colored) to selected 1.20 (colored)

Enable mcount for more of the assembly stubs.

Revision 1.1 / (download) - annotate - [select for diffs], Wed Sep 26 19:48:36 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
Diff to selected 1.20 (colored)

x86 changes for pcc and LKMs.

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

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




CVSweb <webmaster@jp.NetBSD.org>