History log of /freebsd/sys/kern/sched_ule.c (Results 226 – 250 of 810)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# c9a8cba4 11-Jan-2011 John Baldwin <jhb@FreeBSD.org>

Always use PRI_BASE() when checking the base type of a thread's priority
class.

MFC after: 2 weeks


# 78920008 10-Jan-2011 John Baldwin <jhb@FreeBSD.org>

Fix two harmless off-by-one errors.

Reviewed by: jeff
MFC after: 2 weeks


# 22d19207 06-Jan-2011 John Baldwin <jhb@FreeBSD.org>

- Move sched_fork() later in fork() after the various sections of the new
thread and proc have been copied and zeroed from the old thread and
proc. Otherwise attempts to modify thread or process

- Move sched_fork() later in fork() after the various sections of the new
thread and proc have been copied and zeroed from the old thread and
proc. Otherwise attempts to modify thread or process data in sched_fork()
could be undone.
- Don't copy td_{base,}_user_pri from the old thread to the new thread in
sched_fork_thread() in ULE. This is already done courtesy the bcopy()
of the thread copy region.
- Always initialize the real priority (td_priority) of new threads to the
new thread's base priority (td_base_pri) to avoid bogusly inheriting a
borrowed priority from the parent thread.

MFC after: 2 weeks

show more ...


# c8e368a9 29-Dec-2010 David Xu <davidxu@FreeBSD.org>

- Follow r216313, the sched_unlend_user_prio is no longer needed, always
use sched_lend_user_prio to set lent priority.
- Improve pthread priority-inherit mutex, when a contender's priority is
lo

- Follow r216313, the sched_unlend_user_prio is no longer needed, always
use sched_lend_user_prio to set lent priority.
- Improve pthread priority-inherit mutex, when a contender's priority is
lowered, repropagete priorities, this may cause mutex owner's priority
to be lowerd, in old code, mutex owner's priority is rise-only.

show more ...


# 6d4b9715 09-Dec-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r216133 through r216338 from ^/head.


# acbe332a 09-Dec-2010 David Xu <davidxu@FreeBSD.org>

MFp4:
It is possible a lower priority thread lending priority to higher priority
thread, in old code, it is ignored, however the lending should always be
recorded, add field td_lend_user_pri to fix t

MFp4:
It is possible a lower priority thread lending priority to higher priority
thread, in old code, it is ignored, however the lending should always be
recorded, add field td_lend_user_pri to fix the problem, if a thread does
not have borrowed priority, its value is PRI_MAX.

MFC after: 1 week

show more ...


# 0c21a60c 05-Dec-2010 Marcel Moolenaar <marcel@FreeBSD.org>

svn+ssh://svn.freebsd.org/base/head@216199


# c6d2d1b4 14-Nov-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r215189 through r215272 from ^/head.


# 42203378 13-Nov-2010 Edward Tomasz Napierala <trasz@FreeBSD.org>

Remove unused variables.


# 1170f3d1 11-Nov-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r214895 through r215140 from ^/head.


# 9f518f20 10-Nov-2010 Attilio Rao <attilio@FreeBSD.org>

Fix typos.

Submitted by: gianni
MFC after: 3 days


# b9f2f8c3 01-Nov-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r214353 through r214648 from ^/head.


# 444528c0 01-Nov-2010 David Xu <davidxu@FreeBSD.org>

Use integer for size of cpuset, as it won't be bigger than INT_MAX,
This is requested by bge.
Also move the sysctl into file kern_cpuset.c, because it should
always be there, it is independent of thr

Use integer for size of cpuset, as it won't be bigger than INT_MAX,
This is requested by bge.
Also move the sysctl into file kern_cpuset.c, because it should
always be there, it is independent of thread scheduler.

show more ...


# b67cc292 29-Oct-2010 David Xu <davidxu@FreeBSD.org>

Add sysctl kern.sched.cpusetsize to export the size of kernel cpuset,
also add sysconf() key _SC_CPUSET_SIZE to get sysctl value.

Submitted by: gcooper


# 6f3544cd 26-Oct-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Merge svn+ssh://svn.freebsd.org/base/head@214309


# a8103ae8 21-Sep-2010 John Baldwin <jhb@FreeBSD.org>

Comment nit, set TDF_NEEDRESCHED after the comment describing why it is
done rather than before.

MFC after: 1 week


# 19b8a6db 18-Sep-2010 Andriy Gapon <avg@FreeBSD.org>

kern.sched.topology_spec sysctl: use step of 1 for group levels numeration

This is just a cosmetic change for prettier output.
'indent' variable/parameter serves two purposes: it specifies whitespac

kern.sched.topology_spec sysctl: use step of 1 for group levels numeration

This is just a cosmetic change for prettier output.
'indent' variable/parameter serves two purposes: it specifies whitespace
indentation level and also implies cpu group level/depth.
It would have been better to split those two uses,
but for now just a simple change.

MFC after: 1 week

show more ...


# a157e425 13-Sep-2010 Alexander Motin <mav@FreeBSD.org>

Refactor timer management code with priority to one-shot operation mode.
The main goal of this is to generate timer interrupts only when there is
some work to do. When CPU is busy interrupts are gene

Refactor timer management code with priority to one-shot operation mode.
The main goal of this is to generate timer interrupts only when there is
some work to do. When CPU is busy interrupts are generating at full rate
of hz + stathz to fullfill scheduler and timekeeping requirements. But
when CPU is idle, only minimum set of interrupts (down to 8 interrupts per
second per CPU now), needed to handle scheduled callouts is executed.
This allows significantly increase idle CPU sleep time, increasing effect
of static power-saving technologies. Also it should reduce host CPU load
on virtualized systems, when guest system is idle.

There is set of tunables, also available as writable sysctls, allowing to
control wanted event timer subsystem behavior:
kern.eventtimer.timer - allows to choose event timer hardware to use.
On x86 there is up to 4 different kinds of timers. Depending on whether
chosen timer is per-CPU, behavior of other options slightly differs.
kern.eventtimer.periodic - allows to choose periodic and one-shot
operation mode. In periodic mode, current timer hardware taken as the only
source of time for time events. This mode is quite alike to previous kernel
behavior. One-shot mode instead uses currently selected time counter
hardware to schedule all needed events one by one and program timer to
generate interrupt exactly in specified time. Default value depends of
chosen timer capabilities, but one-shot mode is preferred, until other is
forced by user or hardware.
kern.eventtimer.singlemul - in periodic mode specifies how much times
higher timer frequency should be, to not strictly alias hardclock() and
statclock() events. Default values are 2 and 4, but could be reduced to 1
if extra interrupts are unwanted.
kern.eventtimer.idletick - makes each CPU to receive every timer interrupt
independently of whether they busy or not. By default this options is
disabled. If chosen timer is per-CPU and runs in periodic mode, this option
has no effect - all interrupts are generating.

As soon as this patch modifies cpu_idle() on some platforms, I have also
refactored one on x86. Now it makes use of MONITOR/MWAIT instrunctions
(if supported) under high sleep/wakeup rate, as fast alternative to other
methods. It allows SMP scheduler to wake up sleeping CPUs much faster
without using IPI, significantly increasing performance on some highly
task-switching loads.

Tested by: many (on i386, amd64, sparc64 and powerc)
H/W donated by: Gheorghe Ardelean
Sponsored by: iXsystems, Inc.

show more ...


# 9f9ad565 10-Sep-2010 Alexander Motin <mav@FreeBSD.org>

Do not IPI CPU that is already spinning for load. It doubles effect of
spining (comparing to MWAIT) on some heavly switching test loads.


# ba4932b5 02-Sep-2010 Matthew D Fleming <mdf@FreeBSD.org>

Fix UP build.

MFC after: 2 weeks


# 0f7a0ebd 01-Sep-2010 Matthew D Fleming <mdf@FreeBSD.org>

Fix a bug with sched_affinity() where it checks td_pinned of another
thread in a racy manner, which can lead to attempting to migrate a
thread that is pinned to a CPU. Instead, have sched_switch() d

Fix a bug with sched_affinity() where it checks td_pinned of another
thread in a racy manner, which can lead to attempting to migrate a
thread that is pinned to a CPU. Instead, have sched_switch() determine
which CPU a thread should run on if the current one is not allowed.

KASSERT in sched_bind() that the thread is not yet pinned to a CPU.

KASSERT in sched_switch() that only migratable threads or those moving
due to a sched_bind() are changing CPUs.

sched_affinity code came from jhb@.

MFC after: 2 weeks

show more ...


# 8c7a92bd 19-Aug-2010 John Baldwin <jhb@FreeBSD.org>

Remove unused KTRACE includes.


# b17f9ad2 16-Aug-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Merge svn+ssh://svn.freebsd.org/base/head@211344


# d9d8d144 06-Aug-2010 John Baldwin <jhb@FreeBSD.org>

Add a new ipi_cpu() function to the MI IPI API that can be used to send an
IPI to a specific CPU by its cpuid. Replace calls to ipi_selected() that
constructed a mask for a single CPU with calls to

Add a new ipi_cpu() function to the MI IPI API that can be used to send an
IPI to a specific CPU by its cpuid. Replace calls to ipi_selected() that
constructed a mask for a single CPU with calls to ipi_cpu() instead. This
will matter more in the future when we transition from cpumask_t to
cpuset_t for CPU masks in which case building a CPU mask is more expensive.

Submitted by: peter, sbruno
Reviewed by: rookie
Obtained from: Yahoo! (x86)
MFC after: 1 month

show more ...


Revision tags: release/8.1.0_cvs, release/8.1.0
# 611daf7e 15-Jul-2010 Ivan Voras <ivoras@FreeBSD.org>

A cosmetic change - don't output empty <flags>.


12345678910>>...33