21
I Use This!
High Activity

Commits : Listings

Analyzed 1 day ago. based on code collected 1 day ago.
May 01, 2023 — May 01, 2024
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
Profiling cleanup 1/2: fix crashes (all registers need to be left intact from assembly), and fix a few syntax issues, etc. It isn't ticking away properly yet but at least it isn't crashing. More... almost 21 years ago
Add externs for *_nonlocked atomic extensions to avoid warning. More... almost 21 years ago
This is the initial implmentation of the LWKT messaging infrastructure. Messages are sent to message ports and typically replied to a message port embedded in the originating thread's thread structure (td_msgport). The port functions match up and optimization client sync/asynch requests verses target synch/asynch responses. More... almost 21 years ago
zfreei->zfree (there is no zfreei anymore) More... almost 21 years ago
Remove references to the no longer existant PZERO. More... almost 21 years ago
Nuke huge mbuf macros stage 2/2: Cleanup the MCL*() cluster inlines by moving them into procedures, similar to 1/2. More... almost 21 years ago
Remove the priority part of the priority|flags argument to tsleep(). Only flags are passed now. The priority was a user scheduler thingy that is not used by the LWKT subsystem. For process statistics assume sleeps without P_SINTR set to be disk-waits, and sleeps with it set to be normal sleeps. More... almost 21 years ago
Nuke huge mbuf macros stage 1/2: Remove massive inline mbuf macros to reduce L1/L2 cache pollution. Est. performance improvement of 4-6% and the kernel is 42KB smaller. More... almost 21 years ago
Remove an unnecessary cli that was causing 'trap 12 with interrupts disabled' warnings from start_init() (harmless, but annoying). More... almost 21 years ago
Make the kernel load properly recognize ABS symbols (.SET assembly instruction) whos value is 0. It was improperly assuming that symbols with a 0 value could not be found, and also confusing ABS symbols with COMMON symbols. More... almost 21 years ago
GDB changes required for gdb -k kernel /dev/mem. Still selected by process, not thread. A "thread" command still needs to be added. More... almost 21 years ago
The comment was wrong, ptmmap *is* used, put it back in (fix crash accessing /dev/mem) More... almost 21 years ago
Fix minor compile warning. More... almost 21 years ago
Fix minor buildworld issues, mainly #include file dependancies and fields that have moved from struct proc to struct thread. More... almost 21 years ago
Add missing required '*' in indirect jmp (fix assembler warning). More... almost 21 years ago
oops, fix bug in last commit, and adjust the p_slptime check. More... almost 21 years ago
Make the pigs display more meaningful by showing processes which haven't slept recently even if they aren't using much cpu. Things like buildworlds were not showing up at all. This combined with the graph display makes pigs far more useful. More... almost 21 years ago
Collapse gd_astpending and gd_reqpri together into gd_reqflags. gd_reqflags now rollsup requests made pending for doreti. Cleanup a number of scheduling primitives and note that we do not need to use locked bus cycles on per-cpu variables. More... almost 21 years ago
Forward FAST interrupts to the MP lock holder + minor fixes. More... almost 21 years ago
partially fix pctcpu and userland rescheduling. We really have to distribute hardclock/statclock to all cpus to make it work properly. More... almost 21 years ago
account for the time array being in microseconds now, and allow the interval to be specified as a fraction of a second. More... almost 21 years ago
Make the cpu/stat display work properly again. More... almost 21 years ago
Fix overflow in delta percentage calculation due to the fact that our 32 bit cp_time[] counters are now in microseconds. More... almost 21 years ago
Cleanup hardclock() and statclock(), making them work properly even though we do not replicate the clock interrupts across all cpus. More... almost 21 years ago
misc cleanup. Add a case where we don't want an idlethread to HLT (if there are pending fast ints that need the MP lock). More... almost 21 years ago
MP Implmentation 4/4: Final cleanup for this stage. Deal with a race that occurs due to not having to hold the MP lock through an lwkt_switch() where another cpu may pull off a process from the userland scheduler and schedule its thread before the original cpu has completely switched out it. Oddly enough latencies were enough that this bug never caused a crash! More... almost 21 years ago
MP Implmentation 3B/4: Remove Xcpuast and Xforward_irq, replacing them with IPI messaging functions. Fix user scheduling issues so user processes are dependably scheduled on available cpus. More... almost 21 years ago
MP Implmentation 3A/4: Fix stupid bug introduced in last commit. More... almost 21 years ago
MP Implmentation 3A/4: Cleanup MP lock operations to allow the MP lock to occassionally be out of synch from td_mpcount, so we don't have to disable interrupts and so we can call try_mplock() from the middle of a switch function. More... almost 21 years ago
MP Implmentation 3/4: MAJOR progress on SMP, full userland MP is now working! A number of issues relating to MP lock operation have been fixed, primarily that we have to read %cr2 before get_mplock() since get_mplock() may switch away. Idlethreads can now safely HLT without any performance detriment. The userland scheduler has been almost completely rewritten and is now using an extremely flexible abstraction with a lot of room to grow. pgeflag has been removed from mapdev (without per-page invalidation it isn't safe to use PG_G even on UP). Necessary locked bus cycles have been added for the pmap->pm_active field in swtch.s. CR3 has been unoptimized for the moment (see comment in swtch.s). Since the switch code runs without the MP lock we have to adjust pm_active PRIOR to loading %cr3. Additional sanity checks have been added to the code (see PARANOID_INVLTLB and ONLY_ONE_USER_CPU in the code), plus many more in kern_switch.c. A passive release mechanism has been implemented to optimize P_CURPROC/lwkt priority shifting when going from user->kernel and kernel->user. Note: preemptive interrupts don't care due to the way preemption works so no additional complexity there. non-locking atomic functions to protect only against local interrupts have been added. astpending now uses non-locking atomic functions to set and clear bits. private_tss has been moved to a per-cpu variable. The LWKT thread module has been considerably enhanced and cleaned up, including some fixes to handle MPLOCKED vs td_mpcount races (so eventually we can do MP locking without a pushfl/cli/popfl combo). stopevent() needs critical section protection, maybe. More... almost 21 years ago