Add an informational debugging printf of the maximum time spent in
EcEventWait(). If you get AE_HARDWARE_NO_RESPONSE errors, please enable
this info by setting hw.acpi.verbose=1 in loader.conf.
Backed out the micro-optimization in 1.4. It was to help gcc-2.6.3
on i486's (and probably i386's), but it has had very little effect
since gcc-2.7 or gcc-2.95. With gcc-3.3, it gave a small
pessimization for at least i386's, athlon-xp's and pentium4's, a
small optimization (I think) for pentium1's, and made no difference
for i386's. (movzbl is best for all the later processors, and the
micro-optimization was to stop it being used on i486's.)
harti [Fri, 25 Jul 2003 12:40:03 +0000 (12:40 +0000)]
When deciding whether to download the microcode or not look at the API rather
than at the vendor. We have three different Fore cards and only the PCA200
need the microcode. Look also at the RAM address and load the code only if
it is not zero. A zero RAM address means either a bug in the driver or
this is a interface created by harp(4) in which case fatm(4) handles the
microcode issue.
o Do not overwrite saved interrupt priority level by alloc_hash(),
use a separate variable.
o Restore interrupt priority level before return (no-op in HEAD).
Spotted by: Don Bowman <don@sandvine.com>
MFC after: 5 days
Moved the boot floppy generation code out from release.9 to release.10.
The release.9 target is now responsible only for generation of MFS root
file systems, that are built for all architectures, even those that do
not provide a floppy installation option. The release.10 target is now
responsible for creation of a set of boot, MFS root, and fixit floppies,
and the NO_FLOPPIES variable now affects only this target.
Also, replaced the FIXIT_TARGET variable with a check of whether the
*FIXITSIZE variables are present for a given architecture, similar to
how this is done when generating boot floppies.
Remove __aligned(16) from the definition of struct _ia64_fpreg. It's
a non-standard construct. Instead, redefine struct _ia64_fpreg as a
union and put a long double in it. On ia64 and for LP64, this is
defined by the ABI to have 16-byte alignment. For ILP32 a long double
has 4-byte alignment, but we don't support ILP32.
Note that the in-memory image of a long double does not match the in-
memory image of spilled FP registers. This means that one cannot use
the fpr_flt field to interpet the bits. For this reason we continue
to use an aggregate type.
harti [Fri, 25 Jul 2003 06:43:41 +0000 (06:43 +0000)]
Hand the packet to bpf not only in the LLC/SNAP case, but for all
connections. While this confuses tcpdump, it enables other applications
to see and analyze non-IP traffic (signalling, for example).
Pointed out by: Vincent Jardin <vjardin@wanadoo.fr>
Don't check for the existance of src/crypto/ for building items that
may contain crypto. The days of ITAR paranoia are over, and the simple
macro tests that remain are sufficient.
Missing quotes around a variable. In this case we are only
evaluating the $_precmd command as a string. We're not actually
trying to evaluate the contents of the command.
Reported by: Glenn Johnson <gjohnson@srrc.ars.usda.gov>
The previous commit included some commented-out macro-assignments
with comments documenting their function. These macros were of
considerable use to me in building a test "make release".
Make sure that a "make release" (more accurately the bit that makes
the crunched binary) get a non-cryptographic telnet. This is overkill
in that it covers stuff that is not normally used in a crunched binary.
harti [Thu, 24 Jul 2003 10:33:01 +0000 (10:33 +0000)]
Create a subtree 'harp' of the net sysctl tree. This uses a fixed
OID as the other protocol family sub-trees do, that is equal to the
protocol family identifier. Make the ATM layer debugging flags
available under this tree.
Submitted by: Vincent Jardin <vjardin@wanadoo.fr>
MFC after: 2 weeks
Implement _get_curthread and _set_curthread. We use GCCs builtin
function this, which expands to PAL calls (rduniq and wruniq).
This needs adjustment when TLS is implemented.
gordon [Thu, 24 Jul 2003 07:42:42 +0000 (07:42 +0000)]
Fix rescue build using -j. The problem appears to be make not being able
to find the source when the object was specified as <directory>/foo.o.
The fix makes the build go through a make objs before compiling the rest
of the crunchgen. This ensures that the dhclient bits are built in the
correct place where they are picked up for the final compile of rescue.
I'd like to thank dwhite@ and gad@ for helping me track down the problem.
Implement alpha_pal_wrunique() and alpha_pal_rdunique(). Both are
used to set and get the thread pointer. Note that a context switch
will automaticly save and restore the thread pointer.
Use a spare for the thread pointer (mc_thrptr). The thread pointer
is only read and written by set_mcontext() and get_mcontext() for
use by threading libraries.
peter [Thu, 24 Jul 2003 02:05:48 +0000 (02:05 +0000)]
Connect libncp/libsmb to the build. They compile, but have a couple of
silly bugs that probably wont quite make a segfault. eg: passing a pointer
to an int to sysctl instead of a pointer to a size_t.
peter [Thu, 24 Jul 2003 00:04:01 +0000 (00:04 +0000)]
Fix an annoying bug in tar. When it converted 'tar zcf' to 'tar -z -c -f'
it forgot to null terminate the new argv[] array. If you mixed this
with $TAR_OPTIONS, phkmalloc and a whole bunch of other variables, you
could end up with a segfault. This isn't strictly a phkmalloc victory
since tar walks off the end of an array rather than use uninitialized
malloc memory, but phkmalloc makes it easier to provoke.
Document an additional error return value. The connect(2) call can also
return EACCES on non-Unix domain sockets as demonstrated by the
following program:
Added the (undocumented) EMUL_BOOT variable (for TARGET=i386 only)
that causes the bootable ISO images to be created using the floppy
emulation (the old method) as opposed to the new "cdboot" method.
Only copy boot.flp to the 2nd CD-ROM if this variable is defined.
peter [Wed, 23 Jul 2003 20:29:13 +0000 (20:29 +0000)]
Initialize 'blocked' to NULL. I think this was a real problem, but I
am not sure about that. The lack of -Werror and the inline noise hid
this for a while.
peter [Wed, 23 Jul 2003 20:03:42 +0000 (20:03 +0000)]
Provide a knob for raising the inline instruction estimate threshold and
set an initial value. This is aimed at getting us closer to being able to
turn -Werror back on and we can adjust the settings later on. Yes, we
could turn off -Wno-inline instead, but that would hide the effect of
gcc's bogo-estimator ignoring inline (either rightly or wrongly).
Annotate pmap_changebit() as __always_inline. This function was
written as a template that when inlined is specialized for the caller
through constant value propagation and dead code elimination. Thus,
the specialized code that is generated for pmap_clear_reference() et
al. avoids several conditional branches inside of a loop.
Add a new macro APIC_ICRLO_RESV_MASK that contains all of the reserved
fields in the low 32 bits of the local APIC ICR register. Use this macro
in place of APIC_RESV2_MASK when masking off existing bits from the ICR
when writing to it to send an IPI.
Added the WORLDDIR variable (defaulting to ${.CURDIR}/..) that
points to a directory where "make buildworld" was run. Useful
for building 5.x snapshots on 4.x.
harti [Wed, 23 Jul 2003 14:28:57 +0000 (14:28 +0000)]
Convert a lot of uma_zalloc() calls to be NOWAIT instead of WAITOK. All
these may be called from contexts where we cannot sleep (callout handlers
for example).
Do not define BIGBOOTSIZE and the friends for amd64; it serves
no useful purpose other than wasting CPU time in "make release"
creating useless boot.flp.
peter [Wed, 23 Jul 2003 04:53:47 +0000 (04:53 +0000)]
Only provide one copy of the math functions. If we provide a MD function,
do not also provide a __generic_XXX version as well. This is how we
used to runtime select the generic vs i387 versions on the i386 platform.
This saves a pile of #defines in the src/math_private.h file to undo the
__generic_XXX renames in some of the *.c files.
peter [Wed, 23 Jul 2003 04:28:51 +0000 (04:28 +0000)]
Remove _ARCH_INDIRECT, it was the glue to enable having both hardware
and software versions of the floating point code in libm. The runtime
selection was done by reading the hw.floatingpoint sysctl via
__get_hw_float().