Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c700d531
Commit
c700d531
authored
Jun 11, 2002
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- get rid of rq->frozen, fix context switch races.
parent
3150c862
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
9 deletions
+2
-9
kernel/sched.c
kernel/sched.c
+2
-9
No files found.
kernel/sched.c
View file @
c700d531
...
...
@@ -135,7 +135,6 @@ struct prio_array {
*/
struct
runqueue
{
spinlock_t
lock
;
spinlock_t
frozen
;
unsigned
long
nr_running
,
nr_switches
,
expired_timestamp
;
signed
long
nr_uninterruptible
;
task_t
*
curr
,
*
idle
;
...
...
@@ -403,7 +402,7 @@ void sched_exit(task_t * p)
#if CONFIG_SMP || CONFIG_PREEMPT
asmlinkage
void
schedule_tail
(
void
)
{
spin_unlock_irq
(
&
this_rq
()
->
frozen
);
spin_unlock_irq
(
&
this_rq
()
->
lock
);
}
#endif
...
...
@@ -828,9 +827,6 @@ asmlinkage void schedule(void)
if
(
likely
(
prev
!=
next
))
{
rq
->
nr_switches
++
;
rq
->
curr
=
next
;
spin_lock
(
&
rq
->
frozen
);
spin_unlock
(
&
rq
->
lock
);
context_switch
(
prev
,
next
);
/*
...
...
@@ -840,10 +836,8 @@ asmlinkage void schedule(void)
*/
mb
();
rq
=
this_rq
();
spin_unlock_irq
(
&
rq
->
frozen
);
}
else
{
spin_unlock_irq
(
&
rq
->
lock
);
}
spin_unlock_irq
(
&
rq
->
lock
);
reacquire_kernel_lock
(
current
);
preempt_enable_no_resched
();
...
...
@@ -1599,7 +1593,6 @@ void __init sched_init(void)
rq
->
active
=
rq
->
arrays
;
rq
->
expired
=
rq
->
arrays
+
1
;
spin_lock_init
(
&
rq
->
lock
);
spin_lock_init
(
&
rq
->
frozen
);
INIT_LIST_HEAD
(
&
rq
->
migration_queue
);
for
(
j
=
0
;
j
<
2
;
j
++
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment