Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
5443be45
Commit
5443be45
authored
Aug 15, 2008
by
Chris Mason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Btrfs: Give all the worker threads descriptive names
Signed-off-by:
Chris Mason
<
chris.mason@oracle.com
>
parent
777e6bd7
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
10 deletions
+24
-10
fs/btrfs/async-thread.c
fs/btrfs/async-thread.c
+5
-2
fs/btrfs/async-thread.h
fs/btrfs/async-thread.h
+4
-1
fs/btrfs/disk-io.c
fs/btrfs/disk-io.c
+15
-7
No files found.
fs/btrfs/async-thread.c
View file @
5443be45
...
@@ -153,7 +153,7 @@ int btrfs_stop_workers(struct btrfs_workers *workers)
...
@@ -153,7 +153,7 @@ int btrfs_stop_workers(struct btrfs_workers *workers)
/*
/*
* simple init on struct btrfs_workers
* simple init on struct btrfs_workers
*/
*/
void
btrfs_init_workers
(
struct
btrfs_workers
*
workers
,
int
max
)
void
btrfs_init_workers
(
struct
btrfs_workers
*
workers
,
char
*
name
,
int
max
)
{
{
workers
->
num_workers
=
0
;
workers
->
num_workers
=
0
;
INIT_LIST_HEAD
(
&
workers
->
worker_list
);
INIT_LIST_HEAD
(
&
workers
->
worker_list
);
...
@@ -161,6 +161,7 @@ void btrfs_init_workers(struct btrfs_workers *workers, int max)
...
@@ -161,6 +161,7 @@ void btrfs_init_workers(struct btrfs_workers *workers, int max)
spin_lock_init
(
&
workers
->
lock
);
spin_lock_init
(
&
workers
->
lock
);
workers
->
max_workers
=
max
;
workers
->
max_workers
=
max
;
workers
->
idle_thresh
=
32
;
workers
->
idle_thresh
=
32
;
workers
->
name
=
name
;
}
}
/*
/*
...
@@ -184,7 +185,9 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers)
...
@@ -184,7 +185,9 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers)
INIT_LIST_HEAD
(
&
worker
->
worker_list
);
INIT_LIST_HEAD
(
&
worker
->
worker_list
);
spin_lock_init
(
&
worker
->
lock
);
spin_lock_init
(
&
worker
->
lock
);
atomic_set
(
&
worker
->
num_pending
,
0
);
atomic_set
(
&
worker
->
num_pending
,
0
);
worker
->
task
=
kthread_run
(
worker_loop
,
worker
,
"btrfs"
);
worker
->
task
=
kthread_run
(
worker_loop
,
worker
,
"btrfs-%s-%d"
,
workers
->
name
,
workers
->
num_workers
+
i
);
worker
->
workers
=
workers
;
worker
->
workers
=
workers
;
if
(
IS_ERR
(
worker
->
task
))
{
if
(
IS_ERR
(
worker
->
task
))
{
kfree
(
worker
);
kfree
(
worker
);
...
...
fs/btrfs/async-thread.h
View file @
5443be45
...
@@ -69,11 +69,14 @@ struct btrfs_workers {
...
@@ -69,11 +69,14 @@ struct btrfs_workers {
/* lock for finding the next worker thread to queue on */
/* lock for finding the next worker thread to queue on */
spinlock_t
lock
;
spinlock_t
lock
;
/* extra name for this worker */
char
*
name
;
};
};
int
btrfs_queue_worker
(
struct
btrfs_workers
*
workers
,
struct
btrfs_work
*
work
);
int
btrfs_queue_worker
(
struct
btrfs_workers
*
workers
,
struct
btrfs_work
*
work
);
int
btrfs_start_workers
(
struct
btrfs_workers
*
workers
,
int
num_workers
);
int
btrfs_start_workers
(
struct
btrfs_workers
*
workers
,
int
num_workers
);
int
btrfs_stop_workers
(
struct
btrfs_workers
*
workers
);
int
btrfs_stop_workers
(
struct
btrfs_workers
*
workers
);
void
btrfs_init_workers
(
struct
btrfs_workers
*
workers
,
int
max
);
void
btrfs_init_workers
(
struct
btrfs_workers
*
workers
,
char
*
name
,
int
max
);
int
btrfs_requeue_work
(
struct
btrfs_work
*
work
);
int
btrfs_requeue_work
(
struct
btrfs_work
*
work
);
#endif
#endif
fs/btrfs/disk-io.c
View file @
5443be45
...
@@ -492,11 +492,11 @@ static int __btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
...
@@ -492,11 +492,11 @@ static int __btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
/*
/*
* when we're called for a write, we're already in the async
* when we're called for a write, we're already in the async
* submission context. Just jump in
g
o btrfs_map_bio
* submission context. Just jump in
t
o btrfs_map_bio
*/
*/
if
(
rw
&
(
1
<<
BIO_RW
))
{
if
(
rw
&
(
1
<<
BIO_RW
))
{
return
btrfs_map_bio
(
BTRFS_I
(
inode
)
->
root
,
rw
,
bio
,
return
btrfs_map_bio
(
BTRFS_I
(
inode
)
->
root
,
rw
,
bio
,
mirror_num
,
0
);
mirror_num
,
1
);
}
}
/*
/*
...
@@ -528,6 +528,12 @@ static int btree_writepage(struct page *page, struct writeback_control *wbc)
...
@@ -528,6 +528,12 @@ static int btree_writepage(struct page *page, struct writeback_control *wbc)
{
{
struct
extent_io_tree
*
tree
;
struct
extent_io_tree
*
tree
;
tree
=
&
BTRFS_I
(
page
->
mapping
->
host
)
->
io_tree
;
tree
=
&
BTRFS_I
(
page
->
mapping
->
host
)
->
io_tree
;
if
(
current
->
flags
&
PF_MEMALLOC
)
{
redirty_page_for_writepage
(
wbc
,
page
);
unlock_page
(
page
);
return
0
;
}
return
extent_write_full_page
(
tree
,
page
,
btree_get_extent
,
wbc
);
return
extent_write_full_page
(
tree
,
page
,
btree_get_extent
,
wbc
);
}
}
...
@@ -1363,8 +1369,9 @@ struct btrfs_root *open_ctree(struct super_block *sb,
...
@@ -1363,8 +1369,9 @@ struct btrfs_root *open_ctree(struct super_block *sb,
* queue work function gets called at interrupt time, and so it
* queue work function gets called at interrupt time, and so it
* cannot dynamically grow.
* cannot dynamically grow.
*/
*/
btrfs_init_workers
(
&
fs_info
->
workers
,
fs_info
->
thread_pool_size
);
btrfs_init_workers
(
&
fs_info
->
workers
,
"worker"
,
btrfs_init_workers
(
&
fs_info
->
submit_workers
,
fs_info
->
thread_pool_size
);
btrfs_init_workers
(
&
fs_info
->
submit_workers
,
"submit"
,
min_t
(
u64
,
fs_devices
->
num_devices
,
min_t
(
u64
,
fs_devices
->
num_devices
,
fs_info
->
thread_pool_size
));
fs_info
->
thread_pool_size
));
...
@@ -1374,9 +1381,10 @@ struct btrfs_root *open_ctree(struct super_block *sb,
...
@@ -1374,9 +1381,10 @@ struct btrfs_root *open_ctree(struct super_block *sb,
*/
*/
fs_info
->
submit_workers
.
idle_thresh
=
64
;
fs_info
->
submit_workers
.
idle_thresh
=
64
;
btrfs_init_workers
(
&
fs_info
->
fixup_workers
,
1
);
btrfs_init_workers
(
&
fs_info
->
fixup_workers
,
"fixup"
,
1
);
btrfs_init_workers
(
&
fs_info
->
endio_workers
,
fs_info
->
thread_pool_size
);
btrfs_init_workers
(
&
fs_info
->
endio_workers
,
"endio"
,
btrfs_init_workers
(
&
fs_info
->
endio_write_workers
,
fs_info
->
thread_pool_size
);
btrfs_init_workers
(
&
fs_info
->
endio_write_workers
,
"endio-write"
,
fs_info
->
thread_pool_size
);
fs_info
->
thread_pool_size
);
/*
/*
...
...
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