diff options
author | Soumya Koduri <skoduri@redhat.com> | 2020-04-06 12:36:44 +0530 |
---|---|---|
committer | Rinku Kothiya <rkothiya@redhat.com> | 2020-05-09 12:01:07 +0000 |
commit | d48de09adaffdf6b75f30d78f8a1cd287e6fa8ae (patch) | |
tree | 95939a4a47e5b250bec8295be19bb4485bf9ab09 /events/Makefile.am | |
parent | 41f0dbd6d9176bc65b5a39287ba490f734f39035 (diff) |
gfapi: Suspend synctasks instead of blocking them
There are certain conditions which blocks the current
execution thread (like waiting on mutex lock or condition
variable or I/O response). In such cases, if it is a
synctask thread, we should suspend the task instead
of blocking it (like done in SYNCOP using synctask_yield)
This is to avoid deadlock like the one mentioned below -
1) synctaskA sets fs->migration_in_progress to 1 and
does I/O (LOOKUP)
2) Other synctask threads wait for fs->migration_in_progress
to be reset to 0 by synctaskA and hence blocked
3) but synctaskA cannot resume as all synctask threads are blocked
on (2).
Note: this same approach is already used by few other components
like syncbarrier etc.
Change-Id: If90f870d663bb242c702a5b86ac52eeda67c6f0d
Fixes: #1146
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
(cherry picked from commit 55914f968d907ed747774da15285b42653afda61)
Diffstat (limited to 'events/Makefile.am')
0 files changed, 0 insertions, 0 deletions