| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Requested by: rwatson
|
|
|
|
|
|
| |
This is very helpful for detecting kernel modules memory leaks on unload.
Discussed and reviewed by: rwatson
|
|
|
|
|
|
| |
device cloning.
Approved by: netchild (mentor)
|
|
|
|
| |
excessive white space.
|
|
|
|
|
| |
will receive an mbuf chain with Ethernet header in the data portion of the
first mbuf.
|
|
|
|
|
|
|
|
|
|
|
| |
buffers *and* there are no buffers queued up for writing. The bug
was that NMODIFIED was being cleared even while there were buffers
scheduled to be written out, which leads to all sorts of interesting
bugs - one where the file could shrink (because of a post-op getattr
load, say) causing data in buffer(s) queued for write to be tossed,
resulting in data corruption.
Submitted by: Mohan Srinivasan
|
| |
|
|
|
|
|
|
| |
thread processing the reply.
Submitted by: Mohan Srinivasan
|
|
|
|
| |
signal memory is pre-allocated, so kernel can always notify user code.
|
|
|
|
|
|
|
|
|
| |
both proc pointer and thread pointer, if thread pointer is NULL,
tdsignal automatically finds a thread, otherwise it sends signal
to given thread.
Add utility function psignal_event to send a realtime sigevent
to a process according to the delivery requirement specified in
struct sigevent.
|
| |
|
| |
|
|
|
|
|
|
|
| |
limits beyond what should be capiable in a 32bit process, so we
must fixup the limits.
Reviewed by: jhb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
source is first enabled similar to how intr_event's now allocate ithreads
on-demand. Previously, we would map IDT vectors 1:1 to IRQs. Since we
only have 191 available IDT vectors for I/O interrupts, this limited us
to only supporting IRQs 0-190 corresponding to the first 190 I/O APIC
intpins. On many machines, however, each PCI-X bus has its own APIC even
though it only has 1 or 2 devices, thus, we were reserving between 24 and
32 IRQs just for 1 or 2 devices and thus 24 or 32 IDT vectors. With this
change, a machine with 100 IRQs but only 5 in use will only use up 5 IDT
vectors. Also, this change provides an API (apic_alloc_vector() and
apic_free_vector()) that will allow a future MSI interrupt source driver to
request IDT vectors for use by MSI interrupts on x86 machines.
Tested on: amd64, i386
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for code to start out on one CPU when thunking into Windows
mode in ctxsw_utow(), and then be pre-empted and migrated to another
CPU before thunking back to UNIX mode in ctxsw_wtou(). This is
bad, because then we can end up looking at the wrong 'thread environment
block' when trying to come back to UNIX mode. To avoid this, we now
pin ourselves to the current CPU when thunking into Windows code.
Few other cleanups, since I'm here:
- Get rid of the ndis_isr(), ndis_enable_interrupt() and
ndis_disable_interrupt() wrappers from kern_ndis.c and just invoke
the miniport's methods directly in the interrupt handling routines
in subr_ndis.c. We may as well lose the function call overhead,
since we don't need to export these things outside of ndis.ko
now anyway.
- Remove call to ndis_enable_interrupt() from ndis_init() in if_ndis.c.
We don't need to do it there anyway (the miniport init routine handles
it, if needed).
- Fix the logic in NdisWriteErrorLogEntry() a little.
- Change some NDIS_STATUS_xxx codes in subr_ntoskrnl.c into STATUS_xxx
codes.
- Handle kthread_create() failure correctly in PsCreateSystemThread().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based jumbo 9k and jumbo 16k cluster support.
All mbuf's with external storage attached are mandatory reference
counted. For clusters and jumbo clusters UMA provides the refcnt
storage directly. It does not have to be separatly allocated. Any
other type of external storage gets its own refcnt allocated from
an UMA mbuf refcnt zone instead of normal kernel malloc.
The refcount API MEXT_ADD_REF() and MEXT_REM_REF() is no longer
publically accessible. The proper m_* functions have to be used.
mb_ctor_clust() and mb_dtor_clust() both handle normal 2K as well
as 9k and 16k clusters.
Clusters and jumbo clusters may be obtained without attaching it
immideatly to an mbuf. This is for high performance cluster
allocation in network drivers where mbufs are attached after the
cluster has been filled.
Tested by: rwatson
Sponsored by: TCP/IP Optimizations Fundraise 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
destruction:
- Backout 1.62, since it doesn't fix all possible
problems.
- Upon node creation, put an additional reference on node.
- Add a mutex and refcounter to struct ngsock. Netgraph node,
control socket and data socket all count as references.
- Introduce ng_socket_free_priv() which removes one reference
from ngsock, and frees it when all references has gone.
- No direct pointers between pcbs and node, all pointing
is done via struct ngsock and protected with mutex.
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Introduce ng_topo_mtx, a mutex to protect topology changes.
- In ng_destroy_node() protect with ng_topo_mtx the process
of checking and pointing at ng_deadnode. [1]
- In ng_con_part2() check that our peer is not a ng_deadnode,
and protect the check with ng_topo_mtx.
- Add KASSERTs to ng_acquire_read/write, to make more
understandible synopsis in case if called on ng_deadnode.
Reported by: Roselyn Lee [1]
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Introduce a new flags NGQF_QREADER and NGQF_QWRITER,
which tell how the item should be actually applied,
overriding NGQF_READER/NGQF_WRITER flags.
- Do not differ between pending reader or writer. Use only
one flag that is raised, when there are pending items.
- Schedule netgraph ISR in ng_queue_rw(), so that callers
do not need to do this job.
- Fix several comments.
Submitted by: julian
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having an additional MT_HEADER mbuf type is superfluous and redundant
as nothing depends on it. It only adds a layer of confusion. The
distinction between header mbuf's and data mbuf's is solely done
through the m->m_flags M_PKTHDR flag.
Non-native code is not changed in this commit. For compatibility
MT_HEADER is mapped to MT_DATA.
Sponsored by: TCP/IP Optimization Fundraise 2005
|
|
|
|
| |
reclaim a pv entry by destroying a mapping to an inactive page.
|
| |
|
|
|
|
|
| |
Requested by: kris
Ok'd by: scottl
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
which included commits to RCS files with non-trunk default branches.
|
| |
| |
| |
| | |
These fixes will be submitted vendor.
|
|\ \
| |/
| |
| | |
which included commits to RCS files with non-trunk default branches.
|
| | |
|
| |
| |
| |
| |
| | |
from HEAD about 4 years ago when we started flattening out the ACPICA
distribution.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Other callers such as some rfork() cases weren't locking Giant anyway.
Reviewed by: csjp
MFC after: 1 week
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ktr_tid as part of gathering of ktr header data for new ktrace
records. The continued use of intptr_t is required for file layout
reasons, and cannot be changed to lwpid_t at this point.
MFC after: 1 month
Reviewed by: davidxu
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
intptr_t. The buffer length needs to be written to disk as part
of the trace log, but the kernel pointer for the buffer does not.
Add a new ktr_buffer pointer to the kernel-only ktrace request
structure to hold that pointer. This frees up an integer in the
ktrace record format that can be used to hold the threadid,
although older ktrace files will have a garbage ktr_buffer field
(or more accurately, a kernel pointer value).
MFC after: 2 weeks
Space requested by: davidxu
|
| |
| |
| |
| | |
sizeof(kq_queue), not sizeof(kq_queue) * mp_ncpus.
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a copy-on-write fault occurs on the page, the new copy should inherit
a part of the original page's wire count.
Submitted by: tegge
MFC after: 1 week
|
| | |
|
| |
| |
| |
| |
| |
| | |
Obtained from: KAME
Reported in: freebsd-net@freebsd
MFC after: 1 day
|
| | |
|
| |
| |
| |
| | |
It has -200 quality for now so it will not get automatically selected.
|
| |
| |
| |
| |
| |
| |
| | |
- Fix locking in detach(), we only need to lock across vr_stop().
Tested by: Mike Tancsa mike at sentex dot net
MFC after: 1 week
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fails, reclaim a pv entry by destroying a mapping to an inactive
page.
Change the format strings in many of the assertions that were recently
converted from PMAP_DIAGNOSTIC printf()s so that they are compatible
with PAE. Avoid unnecessary differences between the amd64 and i386
format strings.
|
| |
| |
| |
| |
| |
| |
| | |
on 64bit systems.
Submitted by: ps, ups
Reviewed by: jhb
|
| |
| |
| |
| | |
MFC after: 1 week
|
| |
| |
| |
| | |
second.
|