#
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>.
|