Commit Graph

94854 Commits

Author SHA1 Message Date
peter
b9ef48a8b5 Commit Bosko's patch to clean up the PSE/PG_G initialization to and
avoid problems with some Pentium 4 cpus and some older PPro/Pentium2
cpus.  There are several problems, some documented in Intel errata.
This patch:
1) moves the kernel to the second page in the PSE case.  There is an
errata that says that you Must Not point a 4MB page at physical
address zero on older cpus.  We avoided bugs here due to sheer luck.
2) sets up PSE page tables right from the start in locore, rather than
trying to switch from 4K to 4M (or 2M) pages part way through the boot
sequence at the same time that we're messing with PG_G.

For some reason, the pmap work over the last 18 months seems to tickle
the problems, and the PAE infrastructure changes disturb the cpu
bugs even more.

A couple of people have reported a problem with APM bios calls during
boot.  I'll work with people to get this resolved.

Obtained from:	bmilekic
2003-10-01 23:46:08 +00:00
rwatson
39516d17c0 Temporarily turn net.isr.enable back off again until patches to
correct potential nits in packet ordering are resolved.
2003-10-01 22:15:16 +00:00
ume
f89179cc1b add randomtab for ip6_randomflowlabel().
Obtained from:	KAME
2003-10-01 21:45:57 +00:00
imp
bcebb5ef31 Looks like I misread the callout code. We do not seem to hold the
callout lock while the callout is happening.  So the serialization
that I thought was happening isn't.  Therefore, remove the part of the
bugs that says this.  Leave in the other bug as it is very hard to
work around (impossible?).

Fix various typos.

Also note that timeout/untimeout are considered to be the old interface and
the callout interface should be used insetad.

Submitted by: bde (first two) and wollman (third)
2003-10-01 21:32:42 +00:00
rwatson
078443ab99 Enable net.isr.enable by default, causing "delivery to completion"
(direct dispatch) in interrupt threads when the netisr in question
isn't already active.  If a netisr is already active, or direct
dispatch is already in progress, we queue the packet for later
delivery.  Previously, this option was disabled by default.  I have
measured 20%+ performance improvements in IP packet forwarding with
this enabled.

Please report any problems ASAP, especially relating to stack depth or
out-of-order packet processing.

Discussed with:	jlemon, peter
Sponsored by:	DARPA, Network Associates Laboratories
2003-10-01 21:31:09 +00:00
ume
dff1ad31d5 randomize IPv6 flowlabel when RANDOM_IP_ID is defined.
Obtained from:	KAME
2003-10-01 21:24:28 +00:00
ume
1510816eb2 use arc4random() 2003-10-01 21:10:02 +00:00
simon
7b927af0e1 tftp.1:
- Add the optional port argument to SYNOPSIS.
main.c:
- Sync usage with the manual page.

Approved by:	trhodes (main.c part)
Obtained from:	OpenBSD (jmc)
MFC after:	2 weeks
2003-10-01 21:01:14 +00:00
ume
57a2e3592f - include opt_random_ip_id.h
- we don't need to obtain microtime when using ip6_randomid.
2003-10-01 20:24:20 +00:00
ume
f0203cacdc we don't need ip6_id when RANDOM_IP_ID is defined. 2003-10-01 18:23:27 +00:00
ume
a7837fa779 include opt_random_ip_id.h 2003-10-01 17:28:42 +00:00
ume
4d9c2d35dd Don't compiled ip6_randomid() in if RANDOM_IP_ID is not defined. 2003-10-01 16:22:58 +00:00
ume
59fe55cb24 Obey RANDOM_IP_ID.
Requested by:	sam
2003-10-01 16:00:12 +00:00
ume
7a9738e262 randomize IPv6 fragment ID.
Obtained from:	KAME
2003-10-01 15:13:29 +00:00
ticso
5ef7586009 Fix indention
Noticed by:	johan
2003-10-01 14:49:53 +00:00
ticso
12047aec4c Don't call makedev().
Cache result of make_dev() and use it when calling destroy_dev().
2003-10-01 13:53:51 +00:00
nectar
7f355f9a0e Remove files no longer included with OpenSSL as of version 0.9.7c. 2003-10-01 12:38:27 +00:00
nectar
367ddb50f9 Merge conflicts after import of OpenSSL 0.9.7c. 2003-10-01 12:37:51 +00:00
nectar
d8e0ea4b40 This commit was generated by cvs2svn to compensate for changes in r120631,
which included commits to RCS files with non-trunk default branches.
2003-10-01 12:32:41 +00:00
nectar
ee25ce74b3 Vendor import of OpenSSL 0.9.7c 2003-10-01 12:32:41 +00:00
nectar
33988c2cf4 Update list of files to remove prior to import of OpenSSL 0.9.7c. 2003-10-01 12:21:16 +00:00
mux
9be0f94423 Remove extra parentheses from the __GNUC_PREREQ__ macro.
Prodded by:	bde
2003-10-01 11:26:20 +00:00
sos
c8f8c81f54 Fix the problem with accessing certain FLASH devices. The problem
was that accessing the status reg could occour too fast, confusing
the logic in the flash part. Could not have been located without:

HW donated by: Jonas Bülow <jonas@servicefactory.se>
2003-10-01 09:58:19 +00:00
jeff
346aa00460 - Add a memory barrier before the sse2_pagezero() function returns. This
code uses write combining which must be committed to memory prior to
   other uses of this page.

Spotted by:	alc
2003-10-01 08:52:46 +00:00
ru
e7ebf2c29a By popular demand, added the "static ARP" per-interface option. 2003-10-01 08:32:37 +00:00
simokawa
52f3ed4716 Fix a bug in fwdev_clone().
Spotted by: grog
2003-10-01 06:04:30 +00:00
jeff
d259685f66 - Hide more #ifdef logic in a new invlcaddr inline. This function flushes
the full tlb if you're on an I386or does an invlpg otherwise.

Glanced at by:	peter
2003-10-01 05:56:46 +00:00
imp
002709d385 Document the implications of the callout_stop() returning 0 if the
callout has finished or is in progress.  Also document that the
locking of the callout code for FreeBSD 5 has eliminated the 'or is in
progress' clause as a possibility and that such elimination is an
accident of the implementation and shouldn't be relied upon.
2003-10-01 05:48:48 +00:00
jeff
8155be3845 - Define an inline pagezero() to select the appropriate full-page zeroing
function from one of bzero, i686_pagezero, or sse2_pagezero.
 - Use pagezero() in the three pmap functions that need to zero full pages.
2003-10-01 05:42:58 +00:00
jeff
44e39f9ee3 - Add ss2_pagezero() for zeroing pages using the movnti instruction. This
instruction is enabled with SSE2 but does not use SSE registers.  It is a
   "non-temporal" move which bypasses the cache and does not dirty lines.
2003-10-01 05:25:27 +00:00
peter
351a02de72 Use __register_t instead of register_t, otherwise <sys/types.h> is a
prerequisite for <ucontext.h> on amd64.  Oops.
2003-10-01 01:08:04 +00:00
grog
ee8a01df24 Remove a poorly chosen line break. 2003-10-01 00:59:13 +00:00
grog
0033357042 Get some holidays more correct. This isn't helped by the lack of firm
information from the government web sites.
2003-10-01 00:58:35 +00:00
grog
eaf65c32d1 Remove Australian holidays. They're wrong, and more correct ones are
in calendar.australia.
2003-10-01 00:57:49 +00:00
jeff
8ad009c95e - Correct a problem with the last commit. The CMAP ptes need to be zeroed
prior to invalidating the TLB to be certain that the processor doesn't
   keep a cached copy.

Discussed with:	pete
Paniced:	tegge
Pointy Hat:	The usual spot
2003-10-01 00:27:09 +00:00
julian
12a28a5774 fix typos in comments.
Submitted by: Vincent Jardin <vjardin@wanadoo.fr>
2003-09-30 22:39:22 +00:00
mux
9ce524bfd6 Allow the compiler to micro-optimize byte swapping functions by
evaluating them at compile time rather than at run time.  As for x86
and amd64, this requires GCC and it's enabled only if __OPTIMIZE__ is
defined (ie, if at least -O is used).

Reviewed by:	jake
2003-09-30 22:35:27 +00:00
mux
2b4da533fa Use __predict_false() in the KASSERT() macro. We expect this test
to fail most of the time.
2003-09-30 20:54:12 +00:00
mux
3a1106281d Introduce new __predict_false(exp) and __predict_true(exp) keywords.
Their purpose is to give explicit hints to the compiler to judge
the likelyhood of a test to succeed or fail.  Not all architectures
have support for such optimizations, but for those who do, it can
give a nice performance improvement in hot loops.

Obviously, this should be used very rarely in very specific code.

Reviewed by:	peter
Obtained from:	OpenBSD
2003-09-30 20:45:14 +00:00
mux
17b036038d Define a new __GNUC_PREREQ__(maj, min) to test if we have a specific
version of GCC or later and use it where appropriate.  It makes this
file more readable.

Obtained from:	OpenBSD
2003-09-30 20:34:57 +00:00
njl
603a67c9fe Revert 1.24. It causes a hang on shutdown for Marcel. This is due to
AcpiEnterSleepState() calling a long AcpiOsStall() with interrupts
disabled.  This fix will instead be added to ACPI-CA.

PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
MFC after:
2003-09-30 19:12:37 +00:00
des
9af19ad623 Fix a (fortunately harmless) signed / unsigned bug. 2003-09-30 13:35:19 +00:00
ume
36f3985518 Reduce diffs against KAME. No functional change.
Obtained from:	KAME
2003-09-30 10:52:49 +00:00
ume
bc921c081b Reduce diffs against KAME. No functional change.
Obtained from:	KAME
2003-09-30 09:06:58 +00:00
jeff
db2419a0a1 - On my Pentium4-M laptop, invalpg takes ~1100 cycles if the page is found in
the TLB and ~1600 if it is not.  Therefore, it is more effecient to
   invalidate the TLB after operations that use CMAP rather than before.
 - So that the tlb is invalidated prior to switching off of a processor, we
   must change the switchin functions to switchout functions.
 - Remove td_switchout from the thread and move it to the x86 pcb.
 - Move the code that calls switchout into swtch.s.  These changes make this
   optimization truely x86 specific.
2003-09-30 08:11:36 +00:00
simokawa
fae05dc908 - Pick up a correct path_id for the bus on AC_PATH_REGISTERED.
- Call cam_periph_invalidate() only if the periph is found.
2003-09-30 08:03:52 +00:00
ume
182afdad39 Sync style and comments with latest KAME to reduce diffs.
No functional change.

Obtained from:	KAME
2003-09-30 07:57:05 +00:00
phk
349a1c2575 GEOMify. 2003-09-30 07:52:15 +00:00
tjr
ac45d6b57e Cite the published version of "Engineering a Sort Function" instead of
an email address.  Spell McIlroy correctly.
2003-09-30 07:05:46 +00:00
peter
ee83710173 MFi386: Do not depend on LEAPYEAR() macro boolean values being 0 or 1.
MFi386: Add quality field for timer0
2003-09-30 06:42:47 +00:00