The NetBSD Project

CVS log for src/sys/sys/proc.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / sys

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: vmlocking


Revision 1.243.2.9 / (download) - annotate - [select for diffs], Thu Nov 1 21:58:26 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.8: +7 -2 lines
Diff to previous 1.243.2.8 (colored) next main 1.244 (colored)

- Fix interactivity problems under high load. Beacuse soft interrupts
  are being stacked on top of regular LWPs, more often than not aston()
  was being called on a soft interrupt thread instead of a user thread,
  meaning that preemption was not happening on EOI.

- Don't use bool in a couple of data structures. Sub-word writes are not
  always atomic and may clobber other fields in the containing word.

- For SCHED_4BSD, make p_estcpu per thread (l_estcpu). Rework how the
  dynamic priority level is calculated - it's much better behaved now.

- Kill the l_usrpri/l_priority split now that priorities are no longer
  directly assigned by tsleep(). There are three fields describing LWP
  priority:

        l_priority: Dynamic priority calculated by the scheduler.
                This does not change for kernel/realtime threads,
                and always stays within the correct band. Eg for
                timeshared LWPs it never moves out of the user
                priority range. This is basically what l_usrpri
                was before.

        l_inheritedprio: Lent to the LWP due to priority inheritance
                (turnstiles).

        l_kpriority: A boolean value set true the first time an LWP
                sleeps within the kernel. This indicates that the LWP
                should get a priority boost as compensation for blocking.
                lwp_eprio() now does the equivalent of sched_kpri() if
                the flag is set. The flag is cleared in userret().

- Keep track of scheduling class (OTHER, FIFO, RR) in struct lwp, and use
  this to make decisions in a few places where we previously tested for a
  kernel thread.

- Partially fix itimers and usr/sys/intr time accounting in the presence
  of software interrupts.

- Use kthread_create() to create idle LWPs. Move priority definitions
  from the various modules into sys/param.h.

- newlwp -> lwp_create

Revision 1.243.2.8 / (download) - annotate - [select for diffs], Thu Oct 25 19:43:12 2007 UTC (16 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.7: +2 -3 lines
Diff to previous 1.243.2.7 (colored)

- Simplify debugger/procfs reference counting of processes. Use a per-proc
  rwlock: rw_tryenter(RW_READER) to gain a reference, and rw_enter(RW_WRITER)
  by the process itself to drain out reference holders before major changes
  like exiting.
- Fix numerous bugs and locking issues in procfs.
- Mark procfs MPSAFE.

Revision 1.243.2.7 / (download) - annotate - [select for diffs], Tue Oct 9 13:45:10 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.6: +13 -9 lines
Diff to previous 1.243.2.6 (colored)

Sync with head.

Revision 1.243.2.6 / (download) - annotate - [select for diffs], Mon Aug 20 21:28:19 2007 UTC (16 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.5: +1 -4 lines
Diff to previous 1.243.2.5 (colored)

Sync with HEAD.

Revision 1.243.2.5 / (download) - annotate - [select for diffs], Sun Aug 19 22:10:13 2007 UTC (16 years, 8 months ago) by yamt
Branch: vmlocking
Changes since 1.243.2.4: +3 -2 lines
Diff to previous 1.243.2.4 (colored)

proc_free: release proclist_lock earlier as suggested by Andrew Doran.
calling lwp_free with the lock held leads a deadlock.

    1. CPU1: do_sys_wait -> lwp_free busy-waits for an LWP exiting on CPU2,
     holding proclist_lock.

    2. CPU2: the exiting LWP is interrupted by softclock.

    3. CPU2: softclock -> sched_pstats tries to acquire proclist_lock.
     it also busy-waits because the owning LWP is running.

Revision 1.243.2.4 / (download) - annotate - [select for diffs], Sun Jul 1 21:51:00 2007 UTC (16 years, 9 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.3: +1 -2 lines
Diff to previous 1.243.2.3 (colored)

Adapt to callout API change.

Revision 1.243.2.3 / (download) - annotate - [select for diffs], Sat Jun 9 23:58:16 2007 UTC (16 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.2: +4 -1 lines
Diff to previous 1.243.2.2 (colored)

Sync with head.

Revision 1.243.2.2 / (download) - annotate - [select for diffs], Fri Jun 8 14:18:12 2007 UTC (16 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.243.2.1: +13 -31 lines
Diff to previous 1.243.2.1 (colored)

Sync with head.

Revision 1.243.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:52:05 2007 UTC (17 years, 1 month ago) by ad
Branch: vmlocking
Changes since 1.243: +3 -3 lines
Diff to previous 1.243 (colored)

Sync with head.

Revision 1.243 / (download) - annotate - [select for diffs], Fri Mar 9 14:11:23 2007 UTC (17 years, 1 month ago) by ad
Branch: MAIN
Branch point for: vmlocking
Changes since 1.242: +2 -2 lines
Diff to previous 1.242 (colored)

- Make the proclist_lock a mutex. The write:read ratio is unfavourable,
  and mutexes are cheaper use than RW locks.
- LOCK_ASSERT -> KASSERT in some places.
- Hold proclist_lock/kernel_lock longer in a couple of places.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>