#
142ba5f3 |
| 10-Feb-2001 |
John Baldwin <jhb@FreeBSD.org> |
- Make astpending and need_resched process attributes rather than CPU attributes. This is needed for AST's to be properly posted in a preemptive kernel. They are backed by two new flags in p_sf
- Make astpending and need_resched process attributes rather than CPU attributes. This is needed for AST's to be properly posted in a preemptive kernel. They are backed by two new flags in p_sflag: PS_ASTPENDING and PS_NEEDRESCHED. They are still accesssed by their old macros: aston(), astoff(), etc. For completeness, an astpending() macro has been added to check for a pending AST, and clear_resched() has been added to clear need_resched(). - Rename syscall2() on the x86 back to syscall() to be consistent with other architectures.
show more ...
|
Revision tags: vendor/ipfilter/3.4.16, vendor/ipfilter-sys/v3-4-16, vendor/acpica/20010125 |
|
#
d87ad35b |
| 30-Jan-2001 |
Peter Wemm <peter@FreeBSD.org> |
Remove unused GD_CPU_LOCKID, GD_OTHER_CPUS, PS_IDLESTACK and PS_IDLESTACK_TOP
|
Revision tags: vendor/sendmail/8.11.2 |
|
#
a448b62a |
| 21-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Make intr_nesting_level per-process, rather than per-cpu. Setup interrupt threads to run with it always >= 1, so that malloc can detect M_WAITOK from "interrupt" context. This is also necessary in
Make intr_nesting_level per-process, rather than per-cpu. Setup interrupt threads to run with it always >= 1, so that malloc can detect M_WAITOK from "interrupt" context. This is also necessary in order to context switch from sched_ithd() directly.
Reviewed By: peter
show more ...
|
#
3e899e10 |
| 21-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Remove the per-cpu pages used for copy and zero-ing pages of memory for SMP; just use the same ones as UP. These weren't used without holding Giant anyway, and the routines that use them would have
Remove the per-cpu pages used for copy and zero-ing pages of memory for SMP; just use the same ones as UP. These weren't used without holding Giant anyway, and the routines that use them would have to be protected from pre-emption to avoid migrating cpus.
show more ...
|
#
7dd2de5b |
| 20-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Rename the ASSYM MTX_RECURSE to MTX_RECURSECNT in order to not conflict with the flag of the same name.
|
#
87dce368 |
| 20-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Simplify the i386 asm MTX_{ENTER,EXIT} macros to just call the appropriate function, rather than doing a horse-and-buggy acquire. They now take the mutex type as an arg and can be used with sleep as
Simplify the i386 asm MTX_{ENTER,EXIT} macros to just call the appropriate function, rather than doing a horse-and-buggy acquire. They now take the mutex type as an arg and can be used with sleep as well as spin mutexes.
show more ...
|
#
75869092 |
| 12-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Remove unused per-cpu variables inside_intr and ss_eflags.
|
#
41ed17bf |
| 06-Jan-2001 |
Jake Burkholder <jake@FreeBSD.org> |
Use %fs to access per-cpu variables in uni-processor kernels the same as multi-processor kernels. The old way made it difficult for kernel modules to be portable between uni-processor and multi-proc
Use %fs to access per-cpu variables in uni-processor kernels the same as multi-processor kernels. The old way made it difficult for kernel modules to be portable between uni-processor and multi-processor kernels. It is no longer necessary to jump through hoops.
- always load %fs with the private segment on entry to the kernel - change the type of the self referntial pointer from struct privatespace to struct globaldata - make the globaldata symbol have value 0 in all cases, so the symbols in globals.s are always offsets, not aliases for fields in globaldata - define the globaldata space used for uniprocessor kernels in C, rather than assembler - change the assmebly language accessors to use %fs, add a macro PCPU_ADDR(member, reg), which loads the register reg with the address of the per-cpu variable member
show more ...
|
Revision tags: vendor/kerberosIV/1.0.5, vendor/acpica/20001215, vendor/gcc/cvs-20000711-1732 |
|
#
7d8e3aa0 |
| 14-Dec-2000 |
Jake Burkholder <jake@FreeBSD.org> |
Use _lapic+offset to access the local apic from assembly language files, rather than the symbols in globals.s. The offsets are generated by genassym.
|
#
5057d210 |
| 12-Dec-2000 |
John Baldwin <jhb@FreeBSD.org> |
Add in symbols needed in the WITNESS_ENTER and WITNESS_EXIT macros in i386/include/mutex.h.
|
Revision tags: vendor/kerberosIV/1.0-tfutil, vendor/kerberosIV/1.0-kdc_reply, vendor/kerberosIV/1.0-extra, vendor/acpica/20001201, vendor/groff/1.16.1, vendor/openssh/2.3.0, vendor/acpica/20001115, vendor/tcsh/6.10, vendor/file/3.33, vendor/binutils/2.10.1, vendor/binutils/2.10.0, release/4.2.0, vendor/openssh/20001110, vendor/openssl/0.9.6, vendor/bind/8.2.3-aa-patch, vendor/file/3.32, vendor/tcsh/6.09.01-20001031, vendor/isc-dhcp/2.0pl5_v3_fixes, vendor/isc-dhcp/FBSD_ISC_DHCP_2_0_PL5_+_V3_FIXES, vendor/isc-dhcp/FBSD_ISC_DHCP_2_0_PL5, vendor/isc-dhcp/2.0pl5, vendor/bind/8.2.3.t6b |
|
#
da936bf8 |
| 29-Oct-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove unneeded <stddef.h> #includes.
|
Revision tags: vendor/ipfilter/3.4.13, vendor/ipfilter-sys/v3-4-13, vendor/acpica/20001020, vendor/ipfilter/3.4.12, vendor/ipfilter-sys/v3-4-12, vendor/tzdata/tzdata2000g |
|
#
bce7f05a |
| 20-Oct-2000 |
John Baldwin <jhb@FreeBSD.org> |
- machine/mutex.h -> sys/mutex.h - Catch up to the MI mutex structure due to saveflags,saveipl,savepsr becoming saveintr.
|
Revision tags: vendor/gperf/2.7.2 |
|
#
9a25c236 |
| 12-Oct-2000 |
Bruce Evans <bde@FreeBSD.org> |
Moved the definitions of AST_PENDING and AST_RESCHED to the correct place.
|
Revision tags: vendor/ncurses/5.1-20001009 |
|
#
6c567274 |
| 06-Oct-2000 |
John Baldwin <jhb@FreeBSD.org> |
- Change fast interrupts on x86 to push a full interrupt frame and to return through doreti to handle ast's. This is necessary for the clock interrupts to work properly. - Change the clock inter
- Change fast interrupts on x86 to push a full interrupt frame and to return through doreti to handle ast's. This is necessary for the clock interrupts to work properly. - Change the clock interrupts on the x86 to be fast instead of threaded. This is needed because both hardclock() and statclock() need to run in the context of the current process, not in a separate thread context. - Kill the prevproc hack as it is no longer needed. - We really need Giant when we call psignal(), but we don't want to block during the clock interrupt. Instead, use two p_flag's in the proc struct to mark the current process as having a pending SIGVTALRM or a SIGPROF and let them be delivered during ast() when hardclock() has finished running. - Remove CLKF_BASEPRI, which was #ifdef'd out on the x86 anyways. It was broken on the x86 if it was turned on since cpl is gone. It's only use was to bogusly run softclock() directly during hardclock() rather than scheduling an SWI. - Remove the COM_LOCK simplelock and replace it with a clock_lock spin mutex. Since the spin mutex already handles disabling/restoring interrupts appropriately, this also lets us axe all the *_intr() fu. - Back out the hacks in the APIC_IO x86 cpu_initclocks() code to use temporary fast interrupts for the APIC trial. - Add two new process flags P_ALRMPEND and P_PROFPEND to mark the pending signals in hardclock() that are to be delivered in ast().
Submitted by: jakeb (making statclock safe in a fast interrupt) Submitted by: cp (concept of delaying signals until ast())
show more ...
|
Revision tags: vendor/misc-GNU/cvs/1.11, vendor/sendmail/8.11.1, release/4.1.1_cvs, vendor/openssh/2.2.0-2000-09-09 |
|
#
0384fff8 |
| 07-Sep-2000 |
Jason Evans <jasone@FreeBSD.org> |
Major update to the way synchronization is done in the kernel. Highlights include:
* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and c
Major update to the way synchronization is done in the kernel. Highlights include:
* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.)
* Per-CPU idle processes.
* Interrupts are run in their own separate kernel threads and can be preempted (i386 only).
Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
show more ...
|
Revision tags: vendor/bind/8.2.3.t5b-20000823, vendor/perl5/5.006.00.01, vendor/misc-GNU/awk/3.0.6, vendor/heimdal/0.2p-patch-2000-08-12, vendor/ipfilter/3.4.9, vendor/kerberosIV/1.0-patch-2000-08-12, vendor/ipfilter-sys/v3-4-9, vendor/sendmail/8.11.0, vendor/tzdata/tzdata2000f, vendor/SGI/vjs_20000806, vendor/isc-dhcp/2.0-fix_20000803, vendor/SGI/vjs_20000721, release/4.1.0, vendor/libpcap/1.26, vendor/isc-dhcp/2.0pl3_fix, vendor/isc-dhcp/2.0pl3, vendor/ipfilter-sys/v3-4-8, vendor/ipfilter/3.4.8, vendor/less/v358, vendor/isc-dhcp/2.0pl2, vendor/ncurses/5.1-20000701, vendor/isc-dhcp/2.0pl1, vendor/perl5/5.006, release/3.5.0, vendor/tcsh/6.09.01-20000610, vendor/gcc/cvs-20000603, vendor/openssh/2.1.0-2000-05-30, vendor/openssh/2.1.0-2000-06-03, vendor/gcc/2.95-20000526, vendor/bind/8.2.3.t5b, vendor/ncurses/5.0-19991023, vendor/ipfilter-sys/v3_4_4, vendor/ipfilter/3.4.4, vendor/less/v354, vendor/openssh/2.1, vendor/binutils/sourceware_binutils_anoncvs_20000512, vendor/binutils/sourceware_binutils-2_10-branch_anoncvs_20000512 |
|
#
9626b608 |
| 05-May-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>.
<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>.
<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes.
Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data.
Still a few bogus uses of struct buf to track down.
Repocopy by: peter
show more ...
|
Revision tags: vendor/tcsh/6.09.01-fix-history, vendor/tcsh/6.09.01-fix-20000418, vendor/tcsh/6.09.01, vendor/binutils/sourceware_binutils_anoncvs_19990502, vendor/binutils/sourceware_binutils_anoncvs_20000414, vendor/binutils/anoncvs_20000414, vendor/libgmp/2.0.2, vendor/openssl/0.9.5a, vendor/tcsh/6.09, vendor/opie/2.32, vendor/binutils/2.9.1, vendor/gcc/2.95-20000329, vendor/tzdata/tzdata2000d |
|
#
36e9f877 |
| 28-Mar-2000 |
Matthew Dillon <dillon@FreeBSD.org> |
Commit major SMP cleanups and move the BGL (big giant lock) in the syscall path inward. A system call may select whether it needs the MP lock or not (the default being that it does need it).
Commit major SMP cleanups and move the BGL (big giant lock) in the syscall path inward. A system call may select whether it needs the MP lock or not (the default being that it does need it).
A great deal of conditional SMP code for various deadended experiments has been removed. 'cil' and 'cml' have been removed entirely, and the locking around the cpl has been removed. The conditional separately-locked fast-interrupt code has been removed, meaning that interrupts must hold the CPL now (but they pretty much had to anyway). Another reason for doing this is that the original separate-lock for interrupts just doesn't apply to the interrupt thread mechanism being contemplated.
Modifications to the cpl may now ONLY occur while holding the MP lock. For example, if an otherwise MP safe syscall needs to mess with the cpl, it must hold the MP lock for the duration and must (as usual) save/restore the cpl in a nested fashion.
This is precursor work for the real meat coming later: avoiding having to hold the MP lock for common syscalls and I/O's and interrupt threads. It is expected that the spl mechanisms and new interrupt threading mechanisms will be able to run in tandem, allowing a slow piecemeal transition to occur.
This patch should result in a moderate performance improvement due to the considerable amount of code that has been removed from the critical path, especially the simplification of the spl*() calls. The real performance gains will come later.
Approved by: jkh Reviewed by: current, bde (exception.s) Some work taken from: luoqi's patch
show more ...
|
Revision tags: vendor/gcc/2.95.2, vendor/gcc/2.95.1, vendor/openssh/1.2.3-2000-03-25, vendor/gperf/2.7 |
|
#
21144e3b |
| 20-Mar-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new field in struct buf: b_iocmd. The b_iocmd is enforced to have exactly one bit set.
B_WRITE was bogusly defined as zero giving rise t
Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new field in struct buf: b_iocmd. The b_iocmd is enforced to have exactly one bit set.
B_WRITE was bogusly defined as zero giving rise to obvious coding mistakes.
Also eliminate the redundant struct buf flag B_CALL, it can just as efficiently be done by comparing b_iodone to NULL.
Should you get a panic or drop into the debugger, complaining about "b_iocmd", don't continue. It is likely to write on your disk where it should have been reading.
This change is a step in the direction towards a stackable BIO capability.
A lot of this patch were machine generated (Thanks to style(9) compliance!)
Vinum users: Greg has not had time to test this yet, be careful.
show more ...
|
Revision tags: release/4.0.0, vendor/libreadline/4.1, vendor/gcc/2.95-20000307, vendor/libpcap/0.5, vendor/openssh/1.2-2000-02-24, vendor/heimdal/0.2p, vendor/heimdal/0.2o, vendor/heimdal/0.2n, vendor/ipfilter/3.3.8, vendor/binutils/cygnus_sourceware_anoncvs_19990502, vendor/misc-GNU/grep/2.4d, vendor/tcpdump/3.5, vendor/ntp/4.0.99b, vendor/ncurses/5.0, vendor/gcc/2.95-20000120, vendor/misc-GNU/grep/2.4a, vendor/misc-GNU/texinfo/4.0, vendor/misc-GNU/bc/1.0.5a, vendor/openssl/0.9.4, vendor/ipfilter/3.3.6, vendor/groff/1.15, vendor/heimdal/0.2m, vendor/kerberosIV/1.0 |
|
#
c453bba7 |
| 08-Jan-2000 |
Bruce Evans <bde@FreeBSD.org> |
Compile genassym.c with ordinary ${CFLAGS}. The (small) needs for ${GEN_CFLAGS} and -U_KERNEL became negative when all all the genassym.c's were converted to be cross-built.
Makefile.*: - Cleanups
Compile genassym.c with ordinary ${CFLAGS}. The (small) needs for ${GEN_CFLAGS} and -U_KERNEL became negative when all all the genassym.c's were converted to be cross-built.
Makefile.*: - Cleanups associated with the old genassym. - Fixed deprecated spelling of ${.IMPSRC} as "$<".
show more ...
|
#
3abe5082 |
| 07-Jan-2000 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Use genassym(1). The definitions of NKPDE and NKPT have been removed because they are already defined in pmap.h, resulting in duplicate definitions.
Reviewed by: bde
|
Revision tags: vendor/misc-GNU/grep/2.4, vendor/misc-GNU/grep/2.3, vendor/ext2fs/2.3.35 |
|
#
664a31e4 |
| 29-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is cons
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
show more ...
|
Revision tags: release/3.4.0, vendor/NetBSD/fparseln_19990920, vendor/NetBSD/mailwrapper_19990529, vendor/OpenBSD/openbsd_fts_v1_22, vendor/sym/1.0.0-19991205_deo, vendor/misc-GNU/cvs/1.10.7, vendor/ntp/4.0.98f |
|
#
91c28bfd |
| 06-Dec-1999 |
Luoqi Chen <luoqi@FreeBSD.org> |
User ldt sharing.
|
Revision tags: vendor/bind/8.2.2p5, vendor/sym/0.12.0-19991127_deo, vendor/sym/0.11.0-19991120_deo, vendor/sym/0.11.0-19991120, vendor/sym/0.10.0-19991111, vendor/sym/0.9.0-19991024, vendor/gcc/egcs-1.1.2, vendor/gcc/2.7.2.3, vendor/ipfilter/3.3.3, vendor/amd/6.0.3s1, vendor/flex/2.5.4 |
|
#
645682fd |
| 11-Oct-1999 |
Luoqi Chen <luoqi@FreeBSD.org> |
Add a per-signal flag to mark handlers registered with osigaction, so we can provide the correct context to each signal handler.
Fix broken sigsuspend(): don't use p_oldsigmask as a flag, use SAS_OL
Add a per-signal flag to mark handlers registered with osigaction, so we can provide the correct context to each signal handler.
Fix broken sigsuspend(): don't use p_oldsigmask as a flag, use SAS_OLDMASK as we did before the linuxthreads support merge (submitted by bde).
Move ps_sigstk from to p_sigacts to the main proc structure since signal stack should not be shared among threads.
Move SAS_OLDMASK and SAS_ALTSTACK flags from sigacts::ps_flags to proc::p_flag. Move PS_NOCLDSTOP and PS_NOCLDWAIT flags from proc::p_flag to procsig::ps_flag.
Reviewed by: marcel, jdp, bde
show more ...
|
#
210430fd |
| 07-Oct-1999 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Simplification of the signal trampoline and other cleanups.
o Remove unused defines from genassym.c that were needed by the trampoline. o Add load_gs_param function to support.s that catches
Simplification of the signal trampoline and other cleanups.
o Remove unused defines from genassym.c that were needed by the trampoline. o Add load_gs_param function to support.s that catches a fault when %gs is loaded with an invalid descriptor. The function returns EFAULT in that case. o Remove struct trapframe from mcontext_t and replace it with the list of registers. o Modify sendsig and sigreturn accordingly.
This commit contains a patch by bde.
Reviewed by: luoqi, jdp
show more ...
|
#
c5c6b7b3 |
| 04-Oct-1999 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Re-introduction of sigcontext.
struct sigcontext and ucontext_t/mcontext_t are defined in such a way that both (ie struct sigcontext and ucontext_t) can be passed on to sigreturn. The signal handler
Re-introduction of sigcontext.
struct sigcontext and ucontext_t/mcontext_t are defined in such a way that both (ie struct sigcontext and ucontext_t) can be passed on to sigreturn. The signal handler is still given a ucontext_t for maximum flexibility.
For backward compatibility sigreturn restores the state for the alternate signal stack from sigcontext.sc_onstack and not from ucontext_t.uc_stack. A good way to determine which value the application has set and thus which value to use, is still open for discussion.
NOTE: This change should only affect those binaries that use sigcontext and/or ucontext_t. In the source tree itself this is only doscmd. Recompilation is required for those applications.
This commit also fixes a lot of style bugs without hopefully adding new ones.
NOTE: struct sigaltstack.ss_size now has type size_t again. For some reason I changed that into unsigned int.
Parts submitted by: bde sigaltstack bug found by: bde
show more ...
|