| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Otherwise, the setting of the PG_M bit by one processor could be lost if
another processor is simultaneously changing the PG_W bit.
Reviewed by: tegge@
|
|
|
|
|
|
|
| |
main advantage of this is that daemon's are only signalled once per run,
instead of once for each file that is rotated.
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rig a PREPEND macro for ALTQ as the POLL/DEQUEUE semantic is very bad in
terms of locking. We make this a full functional queue to allow "bulk
dequeue" which will further reduce the locking overhead (for non-altq
enabled devices). Drivers will access this via the following macros, which
will show up in <net/if_var.h> once we expose ALTQ to the build:
IFQ_DRV_DEQUEUE(ifq, m) - takes a mbuf off the queue (driver queue first)
IFQ_DRV_PREPEND(ifq, m) - pushes a mbuf back to the driver queue
IFQ_DRV_PURGE(ifq) - drops all packets in both queues
IFQ_DRV_IS_EMPTY(ifq) - checks for pending mbufs in either queue
One has to make sure that the first three are protected by a driver mutex.
At the moment most network drivers still require Giant, so this is not an
issue. Even those that have thier own mutex usually hold it in if_start and
the like, so this requirement is almost always satisfied.
This evolved from a discussion with Andrew Gallatin.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
protect fields in the socket buffer. Add accessor macros to use the
mutex (SOCKBUF_*()). Initialize the mutex in soalloc(), and destroy
it in sodealloc(). Add addition, add SOCK_*() access macros which
will protect most remaining fields in the socket; for the time being,
use the receive socket buffer mutex to implement socket level locking
to reduce memory overhead.
Submitted by: sam
Sponosored by: FreeBSD Foundation
Obtained from: BSD/OS
|
|
|
|
| |
This should make watch(8)/snp(4) work again.
|
|
|
|
| |
with "update_".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sigsuspend, thread shouldn't wait, in old code, it may be
ignored.
When a signal handler is invoked in sigsuspend, thread gets
two different signal masks, one is in thread structure,
sigprocmask() can retrieve it, another is in ucontext
which is a third parameter of signal handler, the former is
the result of sigsuspend mask ORed with sigaction's sa_mask
and current signal, the later is the mask in thread structure
before sigsuspend is called. After signal handler is called,
the mask in ucontext should be copied into thread structure,
and becomes CURRENT signal mask, then sigsuspend returns to
user code.
Reviewed by: deischen
Tested by: Sean McNeil <sean@mcneil.com>
|
| |
|
|
|
|
|
|
|
| |
that the command succeeded. Sheesh! This makes CDROMs no longer cause an
instant panic at boot. Thanks to Jake Burkholder for providing a remote
test setup.
Also make device resets work, thanks to another typo.
|
|
|
|
|
|
| |
(The former are actually useful, and ieee_test(3) only documents
functions that aren't.) Add a sentence describing the domain of
scalb() and scalbf().
|
| |
|
|
|
|
|
|
| |
pass any traffic. Unfortunately this means no full-duplex link with auto-
negotiation on hme(4) using DP83840A PHYs again.
I really thought I had tested this also on a Netra t1 100...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- add locking
- disable ALTQ3_COMPAT by default (do not remove the code to keep the diff
towards KAME small)
- put some more code under ALTQ3 conditional compilation as it should be
- account for if_xname
- some more minor compile fixes
As people started wondering:
The strange path layout "altq/altq" is there to avoid "-Isys/contrib" and
make it "-Isys/contrib/altq" instead, as we will need at least <altq/altq.h>
and <altq/if_altq.h> for kernel compilation.
The "freebsd4_..." in the privious commit is just the best tag name in the
KAME tree I could find to classify this in order to track its history. It
does *not* mean that this will go to 4-STABLE or anything of that kind.
|
|\
| |
| |
| | |
which included commits to RCS files with non-trunk default branches.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
HEAD at this point). This will not exactly live in a vendor branch, but have
the vendor backing to make it easier to exchange diffs.
This will be followed by a diff which takes most of the .c files off the
vendor branch in order to:
- add locking
- disable ALTQ3_COMPAT code (which is outdated and "un-lockable")
There is work in progress to refine the configuration API. Import this "as
is" now to have more exposure time before 5-STABLE.
This is only the import, it will be some more days until you will actually
be able to compile ALTQ support into your kernel so don't hold your breath.
HEADUPs will be posted on current@ and net@ before this is actually enabled.
No-objection: re(scottl), core(rwatson)
|
|
|
|
| |
mistake as they are in rwatson_netperf.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ruleset, the pcb is looked up once per ipfw_chk() activation.
This is done by extracting the required information out of the PCB
and caching it to the ipfw_chk() stack. This should greatly reduce
PCB looking contention and speed up the processing of UID/GID based
firewall rules (especially with large UID/GID rulesets).
Some very basic benchmarks were taken which compares the number
of in_pcblookup_hash(9) activations to the number of firewall
rules containing UID/GID based contraints before and after this patch.
The results can be viewed here:
o http://people.freebsd.org/~csjp/ip_fw_pcb.png
Reviewed by: andre, luigi, rwatson
Approved by: bmilekic (mentor)
|
|
|
|
|
|
| |
unmanaged pages.
Tested by: marcel@
|
|
|
|
|
| |
own machine-dependent file. This makes alpha consistent with amd64, ia64,
and powerpc.
|
| |
|
|
|
|
|
|
|
|
|
| |
driver tries to submit the same request repeatedly, on finding the
controller cmd queue to be full.
Submitted by:ps, vkashyap
Reviewed by:re
Approved by:re
|
|
|
|
|
|
| |
I don the pointy-hat.
Problem reported by: Peter Holm <pho@>
|
|
|
|
|
|
| |
* remove extraneous semicolon between function definitions.
* vm_offset_t is not a pointer, so return 0, not NULL. This
fixes two warnings.
|
| |
|
|
|
|
|
|
| |
forward reference from where strip(1) is being mention (-s option).
PR: bin/28620
|
|
|
|
| |
Also quiet some warnings by tweaking the included headers.
|
|
|
|
|
|
|
|
| |
Since the algorithms are already supported in libmd,
the size increase is small when a dynamic root is used.
Approved by: joerg, ru
MFC after: 2 weeks
|
|
|
|
|
| |
make TARGET_ARCH=arm world now works (but still with external patches for
the toolchain bits).
|
|
|
|
| |
that is set in the bus front-end.
|
| |
|
|
|
|
| |
Spotted by: ru
|
|
|
|
| |
them... Otherwise the result will be truncated anyway.
|
|
|
|
|
| |
We inherited this from the sparc32 port of BSD4.4-Lite1. We have neither
a sparc32 port nor a SunOS4.x compatibility desire these days.
|
| |
|
|
|
|
| |
Now we are cleaing up remove a few lines of unused code.
|
|
|
|
|
|
| |
pmap_init().
Tested by: marcel@
|
|
|
|
|
|
| |
left over from debug.mpsafenet affecting only the forwarding
plane. Giant is now acquired in the ithread/netisr or in the
system call code.
|
| |
|
|
|
|
|
|
| |
ifp->if_output() basedd on debug.mpsafenet. That way once bpfwrite()
can be called without Giant, it will acquire Giant (if desired) before
entering the network stack.
|
|
|
|
|
|
|
| |
the need to synchronize access to the structure. I believe this
should fit into the stack under the necessary circumstances, but
if not we can either add synchronization or use a thread-local
malloc for the duration.
|
|
|
|
|
|
|
|
|
|
|
|
| |
versions of various routers seen:
- Introduce igmp_mtx.
- Protect global variable 'router_info_head' and list fields
in struct router_info with this mutex, as well as
igmp_timers_are_running.
- find_rti() asserts that the caller acquires igmp_mtx.
- Annotate a failure to check the return value of
MALLOC(..., M_NOWAIT).
|
|
|
|
| |
was done before 5-STABLE on purpose...
|
|
|
|
| |
packet for Radeon.
|
| |
|
|
|
|
| |
the correct exceptions from the old environment.
|
|
|
|
| |
the exception flags in the mxcsr as well as the x87 FPU.
|
|
|
|
|
|
|
| |
the valid length as 0. This prevents vsunlock() from removing a system
wire from memory that was not successfully wired (by us).
Submitted by: tegge
|
|
|
|
|
| |
Pointed out by: devel/nspr port
Thanks to: Kris Kennaway
|