#
85da7a56 |
| 26-Dec-2004 |
Jeff Roberson <jeff@FreeBSD.org> |
- Define KTR points for KTR_SCHED.
|
#
7842f65e |
| 14-Dec-2004 |
Jeff Roberson <jeff@FreeBSD.org> |
- Garbage collect several unused members of struct kse and struce ksegrp. As best as I can tell, some of these were never used.
|
#
6db36923 |
| 21-Nov-2004 |
David Schultz <das@FreeBSD.org> |
Remove local definitions of RANGEOF() and use __rangeof() instead. Also remove a few bogus casts.
|
#
f42a43fa |
| 08-Nov-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Add basic critical section tracing to KTR using event type KTR_CRITICAL. This generates a KTR event for each critical section entered and exited.
It would be desirable to also log the filename and l
Add basic critical section tracing to KTR using event type KTR_CRITICAL. This generates a KTR event for each critical section entered and exited.
It would be desirable to also log the filename and line number of the source entering or exiting the critical section, but this requires hacking up the critical section API, so I've not done that yet.
show more ...
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
b96741f4 |
| 16-Oct-2004 |
Scott Long <scottl@FreeBSD.org> |
If a process needs to be swapped in, wakeup the swapper from within critical_exit as the process is getting scheduled to run. This is subotimal but for now avoid the LOR between the scheduler and th
If a process needs to be swapped in, wakeup the swapper from within critical_exit as the process is getting scheduled to run. This is subotimal but for now avoid the LOR between the scheduler and the sleepq systems. This is a 5.3 candidate.
Submitted by: davidxu MFC After: 3 days
show more ...
|
#
7c71b645 |
| 14-Oct-2004 |
Stephan Uphoff <ups@FreeBSD.org> |
Fix maybe_preempt_in_ksegrp for !SMP.
Tested by: tegge Reviewed by: julian Approved by: sam (mentor) MFC after: 3 days
|
#
13e7430f |
| 12-Oct-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make !SMP kernels compile, and as far as I can tell, work again.
|
#
84f9d4b1 |
| 12-Oct-2004 |
Stephan Uphoff <ups@FreeBSD.org> |
Prevent preemption in slot_fill. Implement preemption between threads in the same ksegp in out of slot situations to prevent priority inversion.
Tested by: pho Reviewed by: jhb, julian Approved by
Prevent preemption in slot_fill. Implement preemption between threads in the same ksegp in out of slot situations to prevent priority inversion.
Tested by: pho Reviewed by: jhb, julian Approved by: sam (mentor) MFC: ASAP
show more ...
|
#
042b7b1a |
| 10-Oct-2004 |
Julian Elischer <julian@FreeBSD.org> |
Don't release the slot twice.. sched_rem() has already done it.
Submitted by: stephan uphoff (ups at tree dot com) MFC after: 3 days
|
#
c20c691b |
| 06-Oct-2004 |
Julian Elischer <julian@FreeBSD.org> |
When preempting a thread, put it back on the HEAD of its run queue. (Only really implemented in 4bsd)
MFC after: 4 days
|
#
d39063f2 |
| 05-Oct-2004 |
Julian Elischer <julian@FreeBSD.org> |
Use some macros to trach available scheduler slots to allow easier debugging.
MFC after: 4 days
|
#
8daa8c60 |
| 19-Sep-2004 |
David Schultz <das@FreeBSD.org> |
The zone from which proc structures are allocated is marked UMA_ZONE_NOFREE to guarantee type stability, so proc_fini() should never be called. Move an assertion from proc_fini() to proc_dtor() and
The zone from which proc structures are allocated is marked UMA_ZONE_NOFREE to guarantee type stability, so proc_fini() should never be called. Move an assertion from proc_fini() to proc_dtor() and garbage-collect the rest of the unreachable code. I have retained vm_proc_dispose(), since I consider its disuse a bug.
show more ...
|
#
14f0e2e9 |
| 16-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
clean up thread runq accounting a bit.
MFC after: 3 days
|
#
9da3e923 |
| 16-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
e specific code to revert a partial add ot teh run queue, not remrunqueue() which can't handle a partially added thread.
MFC after: 1 week
|
#
e8807f22 |
| 15-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Oops accidentally removed #ifdef SCHED_4BSD as part of another commit This function is not yet used in ULE
|
#
1f9f5df6 |
| 14-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Commit a fix for some panics we've been seeing with preemption.
MFC after: 2 days
|
#
b2578c6c |
| 14-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Add some kasserts
|
#
3389af30 |
| 10-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Add some code to allow threads to nominat a sibling to run if theyu are going to sleep.
MFC after: 1 week
|
#
54983505 |
| 07-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Make debug printf less threatenning and make it only print out once.
MFC after: 2 days
|
#
6a574b2a |
| 06-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Don't do IPIs on behalf of interrupt threads. just punt straight on through to teh preemption code.
Make a KASSSERT out of a condition that can no longer occur. MFC after: 1 week
|
#
ed062c8d |
| 05-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Refactor a bunch of scheduler code to give basically the same behaviour but with slightly cleaned up interfaces.
The KSE structure has become the same as the "per thread scheduler private data" stru
Refactor a bunch of scheduler code to give basically the same behaviour but with slightly cleaned up interfaces.
The KSE structure has become the same as the "per thread scheduler private data" structure. In order to not make the diffs too great one is #defined as the other at this time.
The KSE (or td_sched) structure is now allocated per thread and has no allocation code of its own.
Concurrency for a KSEGRP is now kept track of via a simple pair of counters rather than using KSE structures as tokens.
Since the KSE structure is different in each scheduler, kern_switch.c is now included at the end of each scheduler. Nothing outside the scheduler knows the contents of the KSE (aka td_sched) structure.
The fields in the ksegrp structure that are to do with the scheduler's queueing mechanisms are now moved to the kg_sched structure. (per ksegrp scheduler private data structure). In other words how the scheduler queues and keeps track of threads is no-one's business except the scheduler's. This should allow people to write experimental schedulers with completely different internal structuring.
A scheduler call sched_set_concurrency(kg, N) has been added that notifies teh scheduler that no more than N threads from that ksegrp should be allowed to be on concurrently scheduled. This is also used to enforce 'fainess' at this time so that a ksegrp with 10000 threads can not swamp a the run queue and force out a process with 1 thread, since the current code will not set the concurrency above NCPU, and both schedulers will not allow more than that many onto the system run queue at a time. Each scheduler should eventualy develop their own methods to do this now that they are effectively separated.
Rejig libthr's kernel interface to follow the same code paths as linkse for scope system threads. This has slightly hurt libthr's performance but I will work to recover as much of it as I can.
Thread exit code has been cleaned up greatly. exit and exec code now transitions a process back to 'standard non-threaded mode' before taking the next step. Reviewed by: scottl, peter MFC after: 1 week
show more ...
|
#
44692526 |
| 03-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
remove unused code
MFC after: 2 days
|
#
9923b511 |
| 02-Sep-2004 |
Scott Long <scottl@FreeBSD.org> |
Turn PREEMPTION into a kernel option. Make sure that it's defined if FULL_PREEMPTION is defined. Add a runtime warning to ULE if PREEMPTION is enabled (code inspired by the PREEMPTION warning in ke
Turn PREEMPTION into a kernel option. Make sure that it's defined if FULL_PREEMPTION is defined. Add a runtime warning to ULE if PREEMPTION is enabled (code inspired by the PREEMPTION warning in kern_switch.c). This is a possible MT5 candidate.
show more ...
|
#
6804a3ab |
| 01-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Give the 4bsd scheduler the ability to wake up idle processors when there is new work to be done.
MFC after: 5 days
|
#
2630e4c9 |
| 01-Sep-2004 |
Julian Elischer <julian@FreeBSD.org> |
Give setrunqueue() and sched_add() more of a clue as to where they are coming from and what is expected from them.
MFC after: 2 days
|