marcel [Sat, 2 Jun 2007 21:30:39 +0000 (21:30 +0000)]
Remove definition of the GCC3 variable. It was introduced in rev.
1.50 to help out with the GCC 2 to GCC 3 transition and it became
obsolete when C flags compatible with GCC 3.x became the default.
With GCC 4 in the tree this variable (i.e. GCC3) is beyond bogus
because it causes confusion when looking for the newly introduced
WITH_GCC3 option that helps the GCC 3 -> GCC 4 bump.
njl [Sat, 2 Jun 2007 20:01:40 +0000 (20:01 +0000)]
Fix a bug introduced in the per-CPU Cx states commit. The wrong loop var
(j/i) was being used and it was being incremented, not decremented as before.
Factor out this code into a common function and call it from both the common
and per-CPU case.
njl [Sat, 2 Jun 2007 19:37:27 +0000 (19:37 +0000)]
Mute the main audio during reboot/shutdown. This prevents a burst of static
on the speakers of my Panasonic Y4. It might make sense to do this in the
mixer rc.d script as well.
njl [Sat, 2 Jun 2007 19:21:40 +0000 (19:21 +0000)]
AcpiAcquireGlobalLock() can sometimes sleep if the mutex is contested.
The global lock is a memory region shared with the BIOS and thus
has some strange behavior like the fact that the sleep is 1 ms max.
We use standard mutexes to synchronize with the SCI so acquiring
the global lock after locking the mutex resulted in a witness
warning.
To deal with this for now, acquire the global lock before all other
locks, similar to Giant. This should fix the witness "sleeping
with mutex held" issue on boot that occurred after the last ACPI-CA
import. In the future, we hope to move to the new mutex interface
in ACPI-CA instead of the pseudo-semaphore version we have now.
rrs [Sat, 2 Jun 2007 11:05:08 +0000 (11:05 +0000)]
- fix initial pcb vrf setting when the initial vrf is not the
default_vrf_id
- Missing lock/unlock of inp added as well in the v6 side.
- IFN hash table moves to sctppcbinfo since indexes are
unique across systems (including different VRFs) this makes it easier
to do ifn lookups.
Clean up more obsolete shared threading libraries:
- /lib/libpthread.so.2 was made obsolete by renaming libpthread to
libkse (!sparc64, 2007/05/13).
- /usr/lib/libthr.so.2 was made obsolete by moving the library to
/lib (!sparc64, 2007/05/13).
- /lib/libkse.so.2 existed for a few days before the version bump
for those who had libpthread as their default threading library.
Coding this "right" in ObsoleteFiles.inc is nearly impossible, so
just add the missing obsolete libraries to the version bump block.
brueffer [Sat, 2 Jun 2007 09:24:39 +0000 (09:24 +0000)]
New release notes:
- GCC SSP enabled by default
- X11BASE change
- touch -A
- fwip(4) and dcons(4) in GENERIC
- FireWire/dcons support in the i386/amd64 loader
Modified release notes:
- MFCs noted: newly supported ftpd RFCs, lagg(4), mpt(4) changes,
snd_atiixp(4) suspend/resume
- sa(8) entry moved to the correct place
- xorg 7.2 update
pav [Fri, 1 Jun 2007 15:17:51 +0000 (15:17 +0000)]
Add bsd.port.options.mk, a stub to include parts of bsd.port.mk that handle
OPTIONS resolving. This will allow us to load bsd.port.mk in port Makefiles in
three steps (options, pre, post), allowing us to manipulate USE_* flags
conditionally on OPTIONS values.
With hat: portmgr
Reviewed by: ru
MFC after: 1 week
kib [Fri, 1 Jun 2007 14:33:11 +0000 (14:33 +0000)]
Change the VOP_OPEN(), vn_open() vnode operation and d_fdopen() cdev operation
argument from being file descriptor index into the pointer to struct file:
part 2. Convert calls missed in the first big commit.
rrs [Fri, 1 Jun 2007 11:19:54 +0000 (11:19 +0000)]
- Take out the broken table-id concept. Panda Routers have a M-VRF
concept that is NOT well thought out for a multi-homed transport
protocol. So the useless table-id entries passed around need to
be removed.
- Add a event timer for the zero copy api.
- Fix a bug in sctp_timer.c when searching for an alternate
with the largest ssthresh (the compare was wrong).
jeff [Fri, 1 Jun 2007 01:20:11 +0000 (01:20 +0000)]
Forced commit to describe changes in the last revision.
- Move cpu limit handling to a callout that runs once per-second and sums
up all threads tick times to check for violations. This removes all code
from mi_switch() that touches the proc. This also cleans up ast() a bit
by removing one large case.
jeff [Fri, 1 Jun 2007 01:12:45 +0000 (01:12 +0000)]
- Move rusage from being per-process in struct pstats to per-thread in
td_ru. This removes the requirement for per-process synchronization in
statclock() and mi_switch(). This was previously supported by
sched_lock which is going away. All modifications to rusage are now
done in the context of the owning thread. reads proceed without locks.
- Aggregate exiting threads rusage in thread_exit() such that the exiting
thread's rusage is not lost.
- Provide a new routine, rufetch() to fetch an aggregate of all rusage
structures from all threads in a process. This routine must be used
in any place requiring a rusage from a process prior to it's exit. The
exited process's rusage is still available via p_ru.
- Aggregate tick statistics only on demand via rufetch() or when a thread
exits. Tick statistics are kept in the thread and protected by sched_lock
until it exits.
jfv [Thu, 31 May 2007 23:36:21 +0000 (23:36 +0000)]
Couple of the fixes needed revising. The ICH8 autoneg was still broken,
this change both simplifies the code and plugs a hole where the devise
was reset without keeping the management controller at bay :) Second,
the 82571 LAA reset problem was incomplete, this addition is necessary.
Just one of those days :)
attilio [Thu, 31 May 2007 22:52:15 +0000 (22:52 +0000)]
Revert VMCNT_* operations introduction.
Probabilly, a general approach is not the better solution here, so we should
solve the sched_lock protection problems separately.
trhodes [Thu, 31 May 2007 20:06:46 +0000 (20:06 +0000)]
The newfs_msdos utility does not store the boot signature in the
correct place on large sector disks. The boot signature should be at
offset 0x1fe in the BPB; newfs_msdos currently stores it 2 bytes from
the end of the sector.
thompsa [Thu, 31 May 2007 19:47:39 +0000 (19:47 +0000)]
Take back the name 'bridge' now that we are the one and only. This can be
phased back in over the next few major releases. if_bridge is still the
documented device name so nothing has changed yet.
piso [Thu, 31 May 2007 19:25:35 +0000 (19:25 +0000)]
In some particular cases (like in pccard and pccbb), the real device
handler is wrapped in a couple of functions - a filter wrapper and an
ithread wrapper. In this case (and just in this case), the filter
wrapper could ask the system to schedule the ithread and mask the
interrupt source if the wrapped handler is composed of just an ithread
handler: modify the "old" interrupt code to make it support
this situation, while the "new" interrupt code is already ok.
ariff [Thu, 31 May 2007 18:43:33 +0000 (18:43 +0000)]
Last major commit and updates for RELENG_7:
- Rework the entire pcm_channel structure:
* Remove rarely used link placeholder, instead, make each pcm_channel
as head/link of each own/each other. Unlock - Lock sequence due to
sleep malloc has been reduced.
* Implement "busy" queue which will contain list of busy/active
channels. This greatly reduce locking contention for example while
servicing interrupt for hardware with many channels or when virtual
channels reach its 256 peak channels.
- So I heard you like v chan ... O RLY?
Welcome to Virtual **Record** Channels (vrec, rec vchans, vchans for
recording, Rec-Chan, you decide), the ultimate solutions for your
nagging O_RDWR full-duplex wannabe (note: flash plugins) monopolizing
single record channel causing EBUSY. Vrec works exactly like Vchans
(or, should I rename it to "Vplay" :) , except that it operates on the
opposite direction (recording). Up to 256 vrecs (like vchans) are
possible.
Notes:
* Relocate dev.pcm.%d.{vchans,vchanformat,vchanrate} to each of its
respective node/direction:
dev.pcm.%d.play.* for "play" (cdev = dsp%d.vp%d)
dev.pcm.%d.rec.* for "record" (cdev = dsp%d.vr%d)
* Don't expect that it will magically give you ability to split
"recording source" (eg: 1 channel for cdrom, 1 channel for mic,
etc). Just admit that you only have a *single* recording source /
channel. Please bug your hardware vendor instead :)
- Bump maxautovchans from 4 to 16. For a full-fledged multimedia
desktop/workstation with too many soundservers installed (esound,
artsd, jackd, pulse/polypaudio, ding-dong pling plong mudkip fuh fuh,
etc), 4 seems inadequate. There will be no memory penalty here, since
virtual channels are allocate only by demand.
- Nuke/Rework the entire statically created cdev entries. Everything is
clonable through snd own clone manager which designed to withstand many
kind of abusive devfs droids such as:
* while : ; do /bin/test -e /dev/dsp ; done
* jot 16777216 0 | while read x ; do ls /dev/dsp0.$x ; done
* hundreds (could be thousands) concurrent threads/process opening
"/dev/dsp" (previously, this might result EBUSY even with just
3 contesting threads/procs).
o Reusable clone objects (instead of creating new one like there's no
tomorrow) after certain expiration deadline. The clone allocator will
decide whether to reuse, share, or creating new clone.
o Automatic garbage collector.
- Dynamic unit magic allocator. Maximum attached soundcards can be tuned
using tunable "hw.snd.maxunit" (Default to 512). Minimum is 16, and
maximum is 2048.
- ..other fixes, mostly related to concurrency issues.
deischen [Thu, 31 May 2007 13:07:37 +0000 (13:07 +0000)]
Export quad symbols. They were previously commented out. These symbols
really shouldn't be exported since they should be pulled from libgcc, but
the build of some applications is broken and they expect to see them in
libc. glibc exports these symbols, although Solaris doesn't appear to,
so export them for compatibility's sake.
kib [Thu, 31 May 2007 11:51:53 +0000 (11:51 +0000)]
Revert UF_OPENING workaround for CURRENT.
Change the VOP_OPEN(), vn_open() vnode operation and d_fdopen() cdev operation
argument from being file descriptor index into the pointer to struct file.
Proposed and reviewed by: jhb
Reviewed by: daichi (unionfs)
Approved by: re (kensmith)
rwatson [Thu, 31 May 2007 11:51:22 +0000 (11:51 +0000)]
Now that sx(9) locks support an interruptible lock acquire primitive,
properly observe the SB_NOINTR flag in sblock. This restores the
required behavior that lock acquisition be interruptible on the socket
buffer I/O serialization lock to allow threads waiting for I/O to be
signaled even if they aren't the thread currently holding the I/O lock.
With this change, the sblock regression test is again passed.
attilio [Thu, 31 May 2007 09:14:48 +0000 (09:14 +0000)]
Add functions sx_xlock_sig() and sx_slock_sig().
These functions are intended to do the same actions of sx_xlock() and
sx_slock() but with the difference to perform an interruptible sleep, so
that sleep can be interrupted by external events.
In order to support these new featueres, some code renstruction is needed,
but external API won't be affected at all.
Note: use "void" cast for "int" returning functions in order to avoid tools
like Coverity prevents to whine.
imp [Thu, 31 May 2007 03:40:29 +0000 (03:40 +0000)]
Add information for FreeBSD 1.0.2 from November 1993. I have a
January 1994 Trans-Ameritech Release 1 CD-ROM that has this directory
named "update_bsd_1.0.2" dated November 14, 1993.
I didn't add it into the main-line sequence of releases because that
would disrupt things too much...
njl [Thu, 31 May 2007 00:52:32 +0000 (00:52 +0000)]
Remove "acpi_bus_number: can't get _ADR" message. It usually appears as
we traverse \_SB and \ in the namespace, which won't have _ADR anyway.
Use a proper extern instead of our own private copy.
jfv [Wed, 30 May 2007 23:32:21 +0000 (23:32 +0000)]
A few small but significant fixes:
- Coverity Prevent(tm) CID 1906 a bogus use of bzero where unneeded.
- ICH8 systems autoneg to 100 rather than 1000, this can also be
seen in 82573, the logic was backwards.
- On new 82575 quadports half duplex tx speed is slow... this was due
to overwriting TCTL reg rather than adding bits.
rrs [Wed, 30 May 2007 22:34:21 +0000 (22:34 +0000)]
- Fixed (Apple) compiler warnings in sctp_input.c, sctputil.c, sctp_output.c
- Fixed a LOR in handling a cookie. Turns out create lock is applied.
And if we abort processing, this causes LOR. Changed to force the
timer to clean up, that way create lock is released.
rrs [Wed, 30 May 2007 17:39:45 +0000 (17:39 +0000)]
- Fix a memory overwrite when the mapping array
is expanded, size of expansion was not taken int consideration.
- Fix so vtag hash is 1 bigger so that it modulo's out
correctly, avoids a panic when restart with right modulo happens.
- do not dereference stcb when control->do_not_ref_stcb is set
- Fix up packet logging to not often use a lock and also to
add to options.
- Fix some logging option duplication in the sctputil.h
bz [Tue, 29 May 2007 22:32:12 +0000 (22:32 +0000)]
Implement ICMPv6 support in ipsec6_get_ulp().
This is needed to make security policies work correctly if ICMPv6 type
and/or code are given. See setkey(8) 'upperspec' para. for details.
imp [Tue, 29 May 2007 20:05:13 +0000 (20:05 +0000)]
Add more devices from the hps tree. These appear to have come from
OpenBSD's if_ral.c.
I didn't make the LINKSYS4 -> CISCOLINKSYS name change, nor did I
include the RALINK RT2573 that's supported by the rum(4) driver. I
didn't merge any code changes either.
attilio [Tue, 29 May 2007 19:34:32 +0000 (19:34 +0000)]
Add a small fix for lock profiling in sx locks.
"0" cannot be a correct value since when the function is entered at least
one shared holder must be present and since we want the last one "1" is
the correct value.
Note that lock_profiling for sx locks is far from being perfect.
Expect further fixes for that.