| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
really breaking things. Simple "close(0); dup(fd)" does not return descriptor
"0" in some cases. Further, this change also breaks some MAC interactions with
mac_execve_will_transition(). Under certain circumstances, fdcheckstd() can
be called in execve(2) causing an assertion that checks to make sure that
stdin, stdout and stderr reside at indexes 0, 1 and 2 in the process fd table
to fail, resulting in a kernel panic when INVARIANTS is on.
This should also kill the "dup(2) regression on 6.x" show stopper item on the
6.1-RELEASE TODO list.
This is a RELENG_6 candidate.
PR: kern/87208
Silence from: des
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
defined for an in-use socket. This allows us to eliminate countless tests
of whether so_pcb is non-NULL, eliminating dozens of error cases. For
now, retain the call to sotryfree() in the uipc_abort() path, but this
will eventually move to soabort().
These new assumptions should be largely correct, and will become more so
as the socket/pcb reference model is fixed. Removing the notion that
so_pcb can be non-NULL is a critical step towards further fine-graining
of the UNIX domain socket locking, as the so_pcb reference no longer
needs to be protected using locks, instead it is a property of the socket
life cycle.
|
|
|
|
| |
Submitted by: davidxu
|
|
|
|
|
|
| |
consumers ignore the return value, soabort() is required to succeed,
and protocols produce errors here to report multiple freeing of the
pcb, which we hope to eliminate.
|
|
|
|
|
|
|
|
| |
all other threads at user boundary, the race can crash kernel
under stress testing.
Reviewed by: jhb
MFC after: 3 days
|
|
|
|
|
|
|
| |
m_unshare and the caller can now control how mbufs are allocated
Reviewed by: andre, luigi, mlaier
MFC after: 1 week
|
| |
|
|
|
|
| |
Discussed with: phk
|
|
|
|
|
| |
without GC'ing the socket if a strong protocol reference to the socket
is present (SS_PROTOREF).
|
|
|
|
|
|
|
| |
"calcru: runtime went backwards" bug for threaded process.
2. Add comment about possible logical problem with scheduler.
MFC after: 3 days
|
|
|
|
|
| |
chain, instead of the entire mbuf... This should probably be reworked
so that it prints at max maxlen bytes for the entire chain...
|
|
|
|
|
|
| |
specified, the rightmost option takes effect." Fix code to obey
this. This makes e.g. "mount -r /usr" or "mount -ar" actually
mount file systems read-only.
|
| |
|
|
|
|
|
|
| |
Do this by making sure we are using the AUDITVNODE1 mask in the namei flags.
Obtained from: TrustedBSD Project
|
|
|
|
|
| |
Reintroduce the monotonicity for the normal case and make the two
special cases behave in what is belived to be the most sensible fasion.
|
|
|
|
|
|
|
|
|
|
| |
Fix detection of active unlinked files by checking VI_OWEINACT and
VI_DOINGINACT in addition to v_usecount.
Defer inactive handling for unlinked files if the file system is mostly
suspended (secondary writes being blocked).
Perform deferred inactive handling after the file system is resumed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
triggers.
This should eliminate all the trivial messages which result from minor
increases in cpu_tick frequency.
Machines which don't du cpu clock fiddling shouldn't issue "backwards"
messages now.
Laptops and other machines where the initial estimate of cputicks may be
waaaay off will still issue warnings.
|
|
|
|
| |
when the frequency increases.
|
|
|
|
| |
we have room for them.
|
|
|
|
| |
code for SIGKILL signal.
|
|
|
|
|
|
|
|
|
|
|
| |
replacement for vn_write_suspend_wait() to better account for secondary write
processing.
Close race where secondary writes could be started after ffs_sync() returned
but before the file system was marked as suspended.
Detect if secondary writes or softdep processing occurred during vnode sync
loop in ffs_sync() and retry the loop if needed.
|
|
|
|
| |
Tested by: kris@
|
|
|
|
|
|
|
|
|
| |
further mbuf clusters to attach to mbufs.
Reported by: kris
Tested by: kris
Sponsored by: TCP/IP Optimization Fundraise 2005
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
|
|
|
| |
whether or not to allocate a full mbuf cluster rather than just a plain
mbuf when adding on additional mbufs in m_getm(). In practice, there wasn't
any resulting mem trashing since m_getm() doesn't ever allocate an mbuf with
a packet header, and MINCLSIZE is the available payload in an mbuf with a
header rather than the available payload in a plain mbuf.
Discussed with: andre (lightly)
|
| |
|
| |
|
|
|
|
|
|
| |
the copied strings are properly terminated.
bzero the statfs32 struct in copy_statfs.
|
|
|
|
|
|
|
|
|
|
|
| |
Releasing items from the mt_zone can not be done by a simple
uma_zfree() call since mt_zone is allocated with the UMA_ZONE_MALLOC
flag. Use uma_zfree_arg instead and supply the slab.
This bug caused panics in low memory situations on unloading kernel
modules containing MALLOC_DEFINE(..) statements.
Submitted by: ups
|
|
|
|
|
| |
translating statfs into ostatfs. This allows 4.x binaries making
statfs calls to work on 6.x.
|
|
|
|
|
| |
Approved by: njl
MFC after: 1 day
|
|
|
|
|
|
| |
be called without any vnode locks held. Remove calls to vn_start_write() and
vn_finished_write() in vnode_pager_putpages() and add these calls before the
vnode lock is obtained to most of the callers that don't already have them.
|
| |
|
|
|
|
|
| |
signals sent by kill() syscall, without this, a signal sent by
sigqueue() can cause a signal sent by kill() to be lost.
|
|
|
|
| |
cpu_ticks to the low side of PPM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
has many positive effects including improved smp locking, reducing
interdependencies between mounts that can lead to deadlocks, etc.
- Add the softdep worklist and various counters to the ufsmnt structure.
- Add a mount pointer to the workitem and remove mount pointers from the
various structures derived from the workitem as they are now redundant.
- Remove the poor-man's semaphore protecting softdep_process_worklist and
softdep_flushworklist. Several threads may now process the list
simultaneously.
- Add softdep_waitidle() to block the thread until all pending
dependencies being operated on by other threads have been flushed.
- Use softdep_waitidle() in unmount and snapshots to block either
operation until the fs is stable.
- Remove softdep worklist processing from the syncer and move it into the
softdep_flush() thread. This thread processes all softdep mounts
once each second and when it is called via the new softdep_speedup()
when there is a resource shortage. This removes the softdep hook
from the kernel and various hacks in header files to support it.
Reviewed by/Discussed with: tegge, truckman, mckusick
Tested by: kris
|
| |
|
|
|
|
|
| |
handle, the timer_t and mqd_t types will be a pointer which userland
will define it.
|
|
|
|
|
|
|
|
| |
the header and trailers as iovec arguments instead of copying them
in inside of sendfile.
Reviewed by: jhb
MFC after: 3 weeks
|
|
|
|
| |
Submitted by: ru
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so other threads can not see it if we unlock the proc
lock (this can happen in knlist_delete). Don't do wakeup,
it is not necessary.
2. Decrease kaio_buffer_count in biohelper rather than
doing it in aio_bio_done_notify.
3. In aio_bio_done_notify, don't send notification if KAIO_RUNDOWN
was set, because the process is already in single thread mode.
4. Use assignment to initialize aiothreadflags.
5. AIOCBLIST_RUNDOWN is not useful, axe the code using it.
6. use LIO_NOP instead of zero.
|
|
|
|
|
| |
PR: kern/93759
Submitted by: Antoine Brodin <antoine.brodin laposte.net>
|
| |
|
|
|
|
|
|
| |
callout_drain() logic. We no longer need a separate non-spin mutex to
do sleep/wakeup with, instead we can now just use the one spin mutex to
manage all the callout functionality.
|
|
|
|
|
|
|
| |
2. Fix a bug, if thread got a SIGKILL signal, call sigexit() to kill
its process.
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
| |
is being called. Be sure to grab the ref before we unlock the vnode to
prevent the mount from disappearing.
Tested by: kris
|
|
|
|
|
|
|
|
|
| |
the last reference is dropped. I forgot that vnodes can stick around
for a very long time until processes discover that they are dead. This
means that a vnode reference is not sufficient to keep the mount
referenced and even more code will be required to ref mount points.
Discovered by: kris
|