#
2d7e662f |
| 05-Mar-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
hammer - Fix coredump bug which can stall processes
* Fix a coredump bug which can stall the process. If a process > 100MB is in the process of being coredumped, a signal will cause the hammer_wr
hammer - Fix coredump bug which can stall processes
* Fix a coredump bug which can stall the process. If a process > 100MB is in the process of being coredumped, a signal will cause the hammer_write() path to hit tstop() due to the core-dump being in progress. Unfortunately the write might be happening from the kernel core generator itself which will stall the process forever with a number of locks held.
hammer only checks for signals on very large (> 100MB) read() and write() calls so the issue does not effect coredumps of smaller processes.
* Use CURSIG_NOBLOCK() instead of CURSIG().
show more ...
|
#
cbf26eb2 |
| 05-Sep-2015 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
sys/vfs/hammer: Adjust and cleanup _KERNEL
Remove no longer necessary _KERNEL that was originally added for usr.bin/fstat/hammer.c to include <vfs/hammer/hammer.h> by 872a7eee.
<vfs/hammer/hammer.h
sys/vfs/hammer: Adjust and cleanup _KERNEL
Remove no longer necessary _KERNEL that was originally added for usr.bin/fstat/hammer.c to include <vfs/hammer/hammer.h> by 872a7eee.
<vfs/hammer/hammer.h> isn't supposed to be necessary by userspace except for a few (actually only above file) unusual userspace programs that want to access in-kernel data structures (like incore inode), so it's better not to pollute <vfs/hammer/hammer.h> with bunch of _KERNEL ifdefs in the first place if possible.
Also see 23e66b3b and 1caa2035.
show more ...
|
#
745703c7 |
| 07-Jul-2015 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
hammer: Remove trailing whitespaces
- (Non-functional commits could make it difficult to git-blame the history if there are too many of those)
|
#
b0aab9b9 |
| 24-Aug-2010 |
Matthew Dillon <dillon@apollo.backplane.com> |
HAMMER VFS - Make all entry points MPSAFE, remove giant & critical sections
* All VFS, VOP, ioops, and bio_done entry points are now mpsafe and no longer use giant.
* Implement hmp->fs_token and
HAMMER VFS - Make all entry points MPSAFE, remove giant & critical sections
* All VFS, VOP, ioops, and bio_done entry points are now mpsafe and no longer use giant.
* Implement hmp->fs_token and hmp->io_token for each HAMMER mount.
All operations that previously needed the MP lock now use hmp->fs_token. All operations that interact with BIO callbacks now use hmp->io_token. All critical sections now use io_token (these previously interlocked against IO callbacks).
NOTE: read (for cached data) and getattr were MPSAFE before and continue to be MPSAFE.
show more ...
|
#
3824f392 |
| 20-Jun-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
HAMMER (and kernel) - Fix cpu-bound kernel thread issue.
* HAMMER now calls a new kernel function, lwkt_user_yield(), in its ioctl-based loops (such as the reblocker).
* Add a new LWKT function c
HAMMER (and kernel) - Fix cpu-bound kernel thread issue.
* HAMMER now calls a new kernel function, lwkt_user_yield(), in its ioctl-based loops (such as the reblocker).
* Add a new LWKT function called lwkt_user_yield(). This function causes a kernel thread to yield at user priority (instead of kernel priority).
This function also deals with a nasty issue related to the MP lock. A cpu-bound kernel thread holding the MP lock can prevent other cpus from serving interrupt threads which also need the MP lock. Detect the condition and release the MP lock for 10uS to give the other cpus a chance to pick it up. This is a bad hack but it actually does work.
* Move passive_release() from MD code to kern/lwkt_thread.c and add an inline for the passive release recovery function. Adjust all platforms to use the new API instead of rolling the same code for each platform.
Reported-by: Many, but especially Hasso Tepper <hasso@estpak.ee>
show more ...
|
#
855942b6 |
| 20-Mar-2008 |
Matthew Dillon <dillon@dragonflybsd.org> |
HAMMER 33C/many: features and bug fixes.
* Add a signal test for long-running ioctl's which allows them to be interrupted.
* Assert that a record update's delete_tid does not match it's create_ti
HAMMER 33C/many: features and bug fixes.
* Add a signal test for long-running ioctl's which allows them to be interrupted.
* Assert that a record update's delete_tid does not match it's create_tid and fix a case in the rename code and another case in the inode update code where this could occur.
* Add a feature to the pruning ioctl that the new snapshot softlink option for 'hammer prune' needs.
* Fix a minor overflow assertion in the transaction code.
show more ...
|