bde [Sat, 28 Oct 2006 13:12:06 +0000 (13:12 +0000)]
In the userland .mcount():
- Don't use a frame pointer. Our callers need a frame pointer, but we
could only use one to support things that aren't supported. (These
things are:
- profiling of profiling
- debugging of profiling. The core ENTRY() macro doesn't support
forcing a frame pointer for debugging, so don't do more here.)
- Ensure that we are in the text section and have normal alignment.
- Use the normal syntax for `.type'.
bde [Sat, 28 Oct 2006 11:03:03 +0000 (11:03 +0000)]
i386/include/profile.h:
Fixed a syntax error for the (!__KERNEL && !__GNUCLIKE_ASM) case in
rev.1.36. Apparently, this case has never been reached even by lint.
Submitted by: stefanf
{amd64,i386}/include/profile.h:
In case the above case is actually reached, break it properly by
providing null support that will fail at link time instead of a stub
that gives wrong (null) profiling at runtime.
netchild [Sat, 28 Oct 2006 09:51:10 +0000 (09:51 +0000)]
MFP4:
Rename MAX_SAMPLE_RATES macro to OSS_MAX_SAMPLE_RATES. The old
macro clashed with those used in other applications and libaries
(ex: RtAudio). 4Front responded by updating their spec, so we
will follow suit.
bde [Sat, 28 Oct 2006 07:59:11 +0000 (07:59 +0000)]
In MCOUNT_OVERHEAD(label), actually use the `label' parameter. We were
still using the global label named "profil", and this worked accidentally
because all callers use the same name.
bde [Sat, 28 Oct 2006 06:38:51 +0000 (06:38 +0000)]
Cleaned up includes. <machine/profile.h> was unused. <machine/timerreg.h>
was only used in the GUPROF case, so the messes to get its i386 prerequisites
included shouldn't have been needed.
Fixed some style bugs. Quote #error contents, and don't repeat an #error
directive on amd64.
bde [Sat, 28 Oct 2006 06:04:29 +0000 (06:04 +0000)]
Removed all traces of HIDENAME() in amd64 and i386 kernel code. Using
this used to be slightly cleaner than using ifdefs in a few places to
support both a.out and elf, but using it now just causes messes and
unportabilities. It seems to be impossible to implement the elf
HIDENAME() portably in cpp (since token pasting of "." and <name> is
invalid).
*/prof_machdep.c:
- Removed all uses of CNAME(). CNAME() is easy enough to use in pure
asm code, but using it in inline asm requires messy quoting. The
core pure asm code has been hacked on more and all uses of CNAME() in
it have already gone away. Just assume the elf convention here too.
- Removed now-uneeded include of <machine/asmacros.h>.
- Removed the workaround for a namespace conflict with this include.
jfv [Sat, 28 Oct 2006 00:47:55 +0000 (00:47 +0000)]
This is the merge of the Intel 6.2.9 driver. It provides all new shared code,
new device support, and it is hoped a more stable driver for 6.2. RELEASE.
This checkin was discussed and approved today by RE, scottl, jhb, and pdeuskar
bde [Fri, 27 Oct 2006 14:17:50 +0000 (14:17 +0000)]
Don't call mexitcount or provide a stub mexitcount to call when
profiling is configured but high resolution profiling is not configured.
Only functions in *.[Ss] called the stub, so efficiency was not
significantly affected.
oleg [Fri, 27 Oct 2006 13:05:37 +0000 (13:05 +0000)]
- Convert
net.inet.ip.dummynet.curr_time
net.inet.ip.dummynet.searches
net.inet.ip.dummynet.search_steps
to SYSCTL_LONG nodes. It will prevent frequent wrap around on 64bit archs.
- Implement simple mechanics for dummynet(4) internal time correction.
Under certain circumstances (system high load, dummynet lock contention, etc)
dummynet's tick counter can be significantly slower than it should be.
(I've observed up to 25% difference on one of my production servers).
Since this counter used for packet scheduling, it's accuracy is vital for
precise bandwidth limitation.
Introduce new sysctl nodes:
net.inet.ip.dummynet.
tick_lost - number of ticks coalesced by taskqueue thread.
tick_adjustment - number of time corrections done.
tick_diff - adjusted vs non-adjusted tick counter difference
tick_delta - last vs 'standard' tick differnece (usec).
tick_delta_sum - accumulated (and not corrected yet) time
difference (usec).
jb [Thu, 26 Oct 2006 22:11:35 +0000 (22:11 +0000)]
Remove the KSE option now that it's in DEFAULTS on these arches/machines.
The 'nooption' kernel config entry has to be used to turn KSE off now.
This isn't my preferred way of dealing with this, but I'll defer to
scottl's experience with the io/mem kernel option change and the grief
experienced over that.
jb [Thu, 26 Oct 2006 22:05:25 +0000 (22:05 +0000)]
Add 'options KSE' to the kernel config DEFAULTS on all arches/machines
except sun4v.
This change makes the transition from a default to an option more
transparent and is an attempt to head off all the compliants that are
likely from people who don't read UPDATING, based on experience with
the io/mem change.
bde [Thu, 26 Oct 2006 15:16:43 +0000 (15:16 +0000)]
Fixed high resolution profiling on arches that support it (amd64 and
i386). Use -mprofiler-epilogue again, and don't use -finstrument-functions.
The former has been fixed for arches that implement high-res profiling,
and the latter has been useless for kernel profiling since gcc-3.4
when it started forcing -fno-inline. -fno-inline gives a kernel with
performance characteristics too different from a normal kernel to be
worth profiling, by turning off inlining of all the little optimized
functions in headers. This interacts especially badly with FreeBSD's
use of "static inline" for all inlines in headers, by creating many
separate copies of the little functions, so not inlining tends to
increase cache pressure where it should reduce it, and (since gprof(1)
doesn't understand the copies) the statistics for the little functions
are hard to interpret even if you want them.
kib [Thu, 26 Oct 2006 13:20:28 +0000 (13:20 +0000)]
The attempt to rename "." with MAC framework compiled in would cause attempt
to twice unlock the vnode. Check that ni_vp and ni_dvp are different before
doing second unlock.
rwatson [Thu, 26 Oct 2006 12:55:32 +0000 (12:55 +0000)]
Better align output of "show uma" by moving from displaying the basic
counters of allocs/frees/use for each zone to the same statistics
shown by userspace "vmstat -z".
rwatson [Thu, 26 Oct 2006 10:17:13 +0000 (10:17 +0000)]
Increase usefulness of "show malloc" by moving from displaying the basic
counters of allocs/frees/use for each malloc type to calculating InUse,
MemUse, and Requests as displayed by the userspace vmstat -m. This is
more useful when debugging malloc(9)-related memory leaks, where the
count of allocs/frees may not usefully reflect that current memory
allocation (i.e., when highly variable size allocations occur with the
same malloc type, such as with contigmalloc).
ru [Wed, 25 Oct 2006 13:35:42 +0000 (13:35 +0000)]
Fix LEDs not working when atkbd is an active keyboard and the physical
keyboard is attached only after the system has already booted.
If USB keyboard is also present, and there's no kbdmux(4), the problem
has been hiding itself because as soon as we get to multi-user, the
USB keyboard becomes an active keyboard (see devd.conf), thus marking
atkbd inactive and letting the old code initialize the keyboard.
With kbdmux(4), or if there's no USB keyboard, the atkbd keyboard is
always active, whether it's physically attached or not, thus it never
initialized itself properly on a physical attach.
To fix this, move block that initialized the keyboard on attach upper
so it doesn't depend on the (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd))
condition. Also move KBD_FOUND_DEVICE() a few lines upper so that
KDSETLED and KDSETREPEAT that follow it propagate to the controller.
ru [Wed, 25 Oct 2006 12:22:19 +0000 (12:22 +0000)]
Fix non-working CAPS LED under X by applying fix from atkbd.c,v 1.27:
: revision 1.27
: date: 2000/05/28 12:43:24; author: ache; state: Exp; lines: +3 -2
: Manipulate with AltGR Led (really CapsLock Led) only in K_XLATE mode, because
: all other modes not set ALKED flag and it means that CapsLock always turned
: off for them.
: Real bug example is X11 which never turn on CapsLock with Russian keyboard.
:
: PR: 18651
: Submitted by: "Mike E. Matsnev" <mike@po.cs.msu.su>
bde [Wed, 25 Oct 2006 07:29:22 +0000 (07:29 +0000)]
Fixed -mprofiler-epilogue. The garbage collector apparently doesn't
understand that non-local variables can never be collected, and when
it collected the static variable for mexitcount_libfunc, gcc aborted
on the next use of this variable.
This quick fix is to reinitialize the variable on every use and depend
on garbage collection recovering the small amount of memory wasted by
this, and not worry by the small amount of time wasted by this. It
would be better to initialize the variable together with most of the
other libfuncs in optabs.c and depend on whatever magic is there to
prevent its collection, but we initialize it here to avoid taking at
least 2 more files off the vendor branch.
markus [Tue, 24 Oct 2006 23:52:22 +0000 (23:52 +0000)]
- Update USB HID usage tables according to the following specs:
* USB HID Usage Tables, V1.12
* USB Monitor Control Class Specification, V1.0
* USB Usage Tables for HID Power Devices, V1.0
* USB Device Class Definition for Physical Devices, V1.0
* USB HID Point of Sale Usage Tables, V1.02
- Fix spelling of 'Microsoft'
- Bring the so called Microsoft page, in line with the style of the rest of
the file.
- Remove NetBSD version string as it doesn't reflect reality any longer
ru [Tue, 24 Oct 2006 22:02:29 +0000 (22:02 +0000)]
Revert rev. 1.86 by jmallett@ as it breaks "ro" mounts specified
in /etc/fstab.
This has been happening due to the priority inversion; options
specified on the command line should take precedence over options
from fstab over default "noro" option, but since both the default
"noro" and options specified on the command line (-w, -r, -o ...)
were put into the same "options" variable, "noro" took precedence
over fstab "ro" (this is easily visible with "mount -d").
scottl [Tue, 24 Oct 2006 08:24:31 +0000 (08:24 +0000)]
Refine the checksum hack a little. It appears that the chip can handle UDP
and TCP checksum offloading fine, it only has a problem with IP checksums on
IP fragments.. Barring a fix or workaround available from the hardware, the
real solution would be to have finer grained control in the stack over what
can and cannot be assisted in hardware.
sobomax [Tue, 24 Oct 2006 08:18:10 +0000 (08:18 +0000)]
Ignore SIGSYS when BSM is compiled in. Otherwise, attempt to invoke su on
system that don't have audit framefork compiled into kernel or ia32 binary
on amd64 system will result in SIGSYS. There is one place in su.c itself
where it tries to check for errno != ENOSYS, but it has been a nop since su
does not catch SIGSYS anyway. There are few other places in libbsm,
where attempt to invoke audit syscal would result in SIGSYS if no audit
support is present in the kernel, so that the only reliable method for
now is to disable SIGSYS completely in the case when BSM is compiled in.
In the long run, both direct invocation of audit-related syscalls and
libbsm should be made more intellegent to handle the case when BSM is not
compiled into the kernel gracefully.
imp [Tue, 24 Oct 2006 00:44:40 +0000 (00:44 +0000)]
Document multiple hints lines.
Tweak machine description to more accurately reflect second argument being
the cpu architecture. Note correspondence with MACHINE and MACHINE_ARCH.
imp [Tue, 24 Oct 2006 00:31:59 +0000 (00:31 +0000)]
End my resistance to jmg's multiple hints files and bring in support
for having multiple hints files generate a correct hints.c (eg, with
all the specified ones catenated together).
erwin [Mon, 23 Oct 2006 20:49:49 +0000 (20:49 +0000)]
If the user did not chose a distribution from the menu, a sensible
default distribution (user) will be installed, however, no kernel
will be installed. Fix this by installing a sensible default kernel,
SMP/GENERIC, depending on WITH_SMP and number of CPUS found.
(Previously the option was inherited from MI NOTES.) So my tool in
rev. 1.26 reduced this to removing all "ATKBD_DFLT_KEYMAP" lines,
leaving the option effectively disabled as it was before, but since
it's actually supported on sparc64, turn it on now.
kib [Mon, 23 Oct 2006 07:25:25 +0000 (07:25 +0000)]
Revert the rev. 1.4, it causes breakage on most arches except i386.
Remove the const qualifier from ap argument for __v2printf, that induced
that breakage, and seems to be the real reason for bad code. ap is modified
inside the __v2printf body by va_arg macro.
marcel [Mon, 23 Oct 2006 00:38:58 +0000 (00:38 +0000)]
o Eliminate nexus_print_resources(). Use resource_list_print_type()
instead.
o Eliminate nexus_print_all_resources(). Inline the function body
in nexus_print_child().
mlaier [Mon, 23 Oct 2006 00:34:07 +0000 (00:34 +0000)]
net80211 seems to give us more rates than specified via ic_sup_rates under
yet to be investigated circumstances. If that happens truncate to the number
of rates that the firmware supports.
Found by: Jeremie Le Hen
Obtained from: OpenBSD (w/ changes)
MFC after: 3 days
emaste [Sun, 22 Oct 2006 21:33:57 +0000 (21:33 +0000)]
Clarify that the input hook requires binary packet data. Instead of
referencing an omitted example, include a short (Perl) example that
queues an ICMP Echo message.