| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Observed by: jkh
|
|
|
|
| |
Submitted by: Daniel M. Eischen <eischen@vigrid.com>
|
|
|
|
| |
Submitted by: Daniel M. Eischen <eischen@vigrid.com>
|
| |
|
|
|
|
| |
collector thread running after a fork.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the thread kernel into a garbage collector thread which is started when
the fisrt thread is created (other than the initial thread). This
removes the window of opportunity where a context switch will cause a
thread that has locked the malloc spinlock, to enter the thread kernel,
find there is a dead thread and try to free memory, therefore trying
to lock the malloc spinlock against itself.
The garbage collector thread acts just like any other thread, so
instead of having a spinlock to control accesses to the dead thread
list, it uses a mutex and a condition variable so that it can happily
wait to be signalled when a thread exists.
|
|
|
|
|
|
|
| |
launching an application into space when someone tries to debug it.
The dead thread list now has it's own link pointer, so use that when
reporting the grateful dead.
|
|
|
|
|
|
| |
one renamed to SIGSUSPEND) to fix sigwait().
Submitted by: Daniel M. Eischen <eischen@vigrid.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add support of a thread being listed in the dead thread list as well
as the thread list.
- Add a new thread state to make sigwait work properly. (Submitted by
Daniel M. Eischen <eischen@vigrid.com>)
- Add global variable for the garbage collector mutex and condition
variable.
- Delete a couple of prototypes that are no longer required.
- Add a prototype for the garbage collector thread.
|
|
|
|
|
|
|
|
|
| |
realloc functions check for recursion within the malloc code itself. In
a thread-safe library, the single spinlock ensures that no two threads
go inside the protected code at the same time. The thread implementation
is responsible for ensuring that the spinlock does in fact protect malloc.
There was a window of opportunity in which this was not the case. I'll fix
that with a commit RSN.
|
|
|
|
| |
currently supported by CAM.
|
| |
|
|
|
|
| |
found while looking for the one.
|
|
|
|
|
|
|
| |
happen when an NFS exported filesystem tries to remove a locally
mounted on directory.
PR: kern/7272
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
|
|
|
|
|
| |
those people that have cards that become wedged when a bogus command is
issued that are too wedged to have a soft reset help.
|
|
|
|
|
| |
in the v_data field.
Obtained from: Charles Hannum, via Frank van der Linden <frank@wins.uva.nl>
|
| |
|
|
|
|
|
| |
of the NFS file *before* doing the nfs_vinvalbuf operation.
Otherwise some invalid data may show up in an mmap.
|
|
|
|
|
|
|
| |
Correct checks for null special file names
Add Usage entry for -v flag
Get terminology straight in man page
Reviewed by: bde
|
|
|
|
|
|
|
|
| |
for some of the fsinfo RPC fields. It is strictly speaking not
wrong to do this, as the spec says that "it is expected that a
server will make a best effort at supporting all the attributes",
but pretty unusual. You guessed it, it's NT servers that do it.'
Obtained from: Frank van der Linden <frank@wins.uva.nl>
|
|
|
|
|
|
|
|
|
| |
is being deleted due to an forcible unmount. The problem is
that vgone calls vclean() which then calls calls nfs_inactive()
with VXLOCK set on the vnode. Nfs_inactive() was calling vget()
to get a reference on the vnode, which in turn hung on VXLOCK.
Nfs_inactive() now checks v_usecount to make sure that the vnode
is not coming from vclean() before it does a vget().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is less than NFS_MINPACKET or greater than NFS_MAXPACKET in size, it
barfs and, I think, drops the connection.
However, there's no guarantee that in a multi-fragment RPC, all the
fragments will be at least as large as NFS_MINPACKET.
In fact, with the version of "tclnfs" we have here, which supports NFS
over TCP, at least when built under SunOS 4.1.3 (i.e., with 4.1.3's
user-mode ONC RPC library), I can *repeatably* cause "tclnfs" to send a
request with more than one fragment, one of which is only 8 bytes long.
I just do a 3877-byte write to a file, at an offset of 0.
The check that "slp->ns_reclen" is greater than or equal to
NFS_MINPACKET serves no useful purpose - if the NFS server code can't
handle packets < NFS_MINPACKET bytes, it can't handle them over *any*
protocol, so the check has to be done above the RPC-over-TCP layer - and
should be removed.
Obtained from: Fix from Guy Harris, forwarded by Rick Macklem.
|
|
|
|
|
|
| |
not be retried again, even if the SF_NO_PRINT flag is set.
Reviewed by: gibbs
|
|
|
|
|
| |
area can be passed (and mapped to page1!) as vesa.c does. Use contigmalloc
now to get proper alignment. Bump max buffer size to PAGE_SIZE
|
|
|
|
| |
Reviewed by: jb
|
|
|
|
|
| |
PR: 8094
Submitted by: Christoph Weber-Fahr <wefa@callcenter.systemhaus.net>
|
|
|
|
| |
so that they are not put in the cache.
|
|
|
|
| |
which says that the data is on server but not committed.
|
| |
|
|
|
|
|
| |
it is impossible to use this func otherwise, i.e. all vesa calls are
potentially broken. Max arg size limited to 1024 for now, bump it, if needed.
|
|
|
|
|
| |
1. use VFS_LKM vs ACTUALLY_LKM_NOT_KERNEL
2. don't pass -DCODA to lkm build
|
|
|
|
|
|
| |
Now comments will be ignored, rather than put junk in the password database.
Broken in: rev. 1.21
|
|
|
|
| |
Noticed by: Ollivier Robert
|
|
|
|
|
|
| |
was a pessimization that broke schedcpu(). (It caused the process to
be remrq()'d).
Reviewed by: Tor Egge
|
| |
|
|
|
|
| |
Reviewed by: jkh
|
|
|
|
|
|
| |
Warn unsuspecting users against current DEVFS pitfalls.
Reviewed by: jkh
|
| |
|
|
|
|
|
|
|
|
| |
various ports don't complain about it. It also requires that the pkg
registration bits be stick into the Xbin tarball so that they'll be
present in /usr/X11R6/lib/X11/pkgreg.tar.gz. The registration tarball
is removed upon first use to prevent it later spamming a genuine build
from ports if inadvertently extracted again.
|
|
|
|
|
|
| |
src/release/picobsd, otherwise it won't work.
Pointed out by: Randal Masutani <randal@comtest.com>
|
|
|
|
| |
Submitted by: "Anatoly A. Orehovsky" <tolik@mpeks.tomsk.su>
|
|
|
|
| |
Submitted by: "Anatoly A. Orehovsky" <tolik@mpeks.tomsk.su>
|
|
|
|
| |
Pointed out by: Randal Masutani <randal@comtest.com>
|
|
|
|
| |
Submitted by: Randal Masutani <randal@comtest.com>
|
|
|
|
| |
Submitted by: Randal S. Masutani <randal@comtest.com>
|
|
|
|
|
|
|
| |
kernel message buffer to be cleared. It comes handy in situations when
the only logging facility you have is the msgbuf.
Reviewed by: jkh
|
| |
|
|
|
|
| |
pointers to, and %d is not suitable for printing uint32_t's.
|
|
|
|
|
| |
with pointers smaller than u_longs, and 2 possibly-truncating casts in
the same printf).
|