Вести с полей

From
Slawa Olhovchenkov (2:5030/500)
To
All
Date
2007-01-11T02:56:42Z
Area
RU.UNIX.BSD
Hello All!

From: Jeff Roberson <jroberson@chesapeake.net>
Subject: ULE 2.0

Hello everyone,

After a considerable vacation from ULE I have come back to address some
long standing concerns.  I felt that the old double-queue mechanism caused
very unnatural behavior and have finally come up with something I'm happy
to replace it with.  I've been working on this off and on for several
months now.  Some details are below.  More are at:
http://jeffr-tech.livejournal.com/3729.html

The version now in CVS(1.172) should restore ULE's earlier interactive
performance under load.  I have tested with a make -j128 kernel while
using mozilla and while playing a dvd.  Neither ever skip for
me.  nice now has a more gradual effect than before.  It no longer allows
the total starvation of processes.  ULE should also be very slightly
faster on UP as compared to before.  SMP behavior should have changed very
little although I did simplify some small parts of these algorithms.  In
general, non-interactive tasks are scheduled much more intelligently
although this may not be apparent under most workloads.

I'm hoping for the following types of feedback from anyone interested in
testing:

1)  Is the response to nice levels as you would hope?  I think nice +20
may not inhibit the nice'd thread enough at the moment.
2)  Is the interactive performance satisfactory?
3)  Is there any performance degredation for your common tasks?
4)  Does the cpu estimator give reasonable results?  See %cpu in top.  It
is expected that there will be periods where summing up all threads will
yield slightly over 100% cpu.

Any and all feedback is welcome.  Please make sure any problem reports are
sent to jroberson@chesapeake.net in the to line so I see them more
quickly.

Thanks,
Jeff

---------- Forwarded message ----------
Date: Thu, 4 Jan 2007 08:56:25 +0000 (UTC)
From: Jeff Roberson <jeff@FreeBSD.org>
To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject: cvs commit: src/sys/kern sched_ule.c

jeff        2007-01-04 08:56:25 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             sched_ule.c
  Log:
  ULE 2.0:
   - Remove the double queue mechanism for timeshare threads.  It was slow
     due to excess cache lines in play, caused suboptimal scheduling behavior
     with niced and other non-interactive processes, complicated priority
     lending, etc.
   - Use a circular queue with a floating starting index for timeshare
   threads.
     Enforces fairness by moving the insertion point closer to threads with
     worse priorities over time.
   - Give interactive timeshare threads real-time user-space priorities and
     place them on the realtime/ithd queue.
   - Select non-interactive timeshare thread priorities based on their cpu
     utilization over the last 10 seconds combined with the nice value.  This
     gives us more sane priorities and behavior in a loaded system as
     compared to the old method of using the interactivity score.  The
     interactive score quickly hit a ceiling if threads were non-interactive
     and penalized new hog threads.
   - Use one slice size for all threads.  The slice is not currently
     dynamically set to adjust scheduling behavior of different threads.
   - Add some new sysctls for scheduling parameters.

  Bug fixes/Clean up:
   - Fix zeroing of td_sched after initialization in sched_fork_thread()
   caused
     by recent ksegrp removal.
   - Fix KSE interactivity issues related to frequent forking and exiting of
     kse threads.  We simply disable the penalty for thread creation and exit
     for kse threads.
   - Cleanup the cpu estimator by using tickincr here as well.  Keep ticks
   and
     ltick/ftick in the same frequency.  Previously ticks were stathz and
     others were hz.
   - Lots of new and updated comments.
   - Many many others.

  Tested on:      up x86/amd64, 8way amd64.

  Revision  Changes    Path
  1.172     +332 -412  src/sys/kern/sched_ule.c


... Рецессивная аллель влияет на фенотип, только когда генотип гомозиготен
--- GoldED+/BSD 1.1.5
 * Origin:  (2:5030/500)
SEEN-BY: 50/12 203 400/814 450/186 1024 451/30 469/418 550/196 4614/20 4635/4
SEEN-BY: 5000/5000 5011/13 5012/46 5015/28 5019/26 5020/154 175 400 545 549
SEEN-BY: 5020/758 1523 1604 1630 2142 2238 2395 2450 2590 2871 4441 5021/3 29
SEEN-BY: 5022/128 5025/3 750 5027/12 5029/32 5030/500 556 966 1900 1957 2828
SEEN-BY: 5031/47 70 5035/38 5040/47 5042/13 5045/7 5049/50 97 5054/1 4 8 9 11
SEEN-BY: 5054/28 35 36 37 45 66 67 70 75 84 85 5059/9 37 5062/1 10 5063/3
SEEN-BY: 5064/7 5076/1 5077/70 5080/80 1003 5082/6 5083/21 5084/9 5085/13
SEEN-BY: 5090/108 5094/4 5095/20 5096/18 5099/11 6001/10
PATH: 5030/500 5020/4441 545 5054/1 37