From: Alexander Aring <aahringo@redhat.com>
To: teigland@redhat.com
Cc: gfs2@lists.linux.dev, aahringo@redhat.com
Subject: [PATCHv3 v6.8-rc6 00/18] dlm: bring message parsing to softirq context
Date: Mon, 26 Feb 2024 20:48:51 -0500 [thread overview]
Message-ID: <20240227014909.93945-1-aahringo@redhat.com> (raw)
Hi,
this is version 3 of my attempt to bring dlm message parsing to softirq
context. This will "minimal" improve the dlm message parsing that is
still message after message parsing. There is still a context switch
involed that is the dlm callback workqueue. This patch mostly have the
effect that we call "queue_work()" more often. In future we will get
rid of the dlm callback workqueue and call the DLM user callback
directly in the dlm message processing softirq context. However this
requires that DLM users adapt the changes and signal this capability
over a new lockspace flag.
- Alex
changes since v3:
- add patches that got meanwhile on the mailinglist to resend them.
- add "remove schedule in dlm receive path" to remove a schedule()
in the dlm msg processing path.
- change commit message of "dlm: do dlm message processing in softirq
context" to mention the
changes since v2:
I changed in v2 that we split the root_list to root_list and a per
lockspace masters list. The root_list can be used as a stack list
variable in ls_recover() as it's only used for recovery handling. The
masters list is somehow special because it is being used for other dlm
nodes to dump the nodes master rsbs. The current implementation
guarantees that this happens in a very special part of the recovery
handling by using a kind of distributed cluster barriers. I added more
sanity checks for this handling and a more per node based recovery log
mechanism. There is also a TODO that describes we should keep track of
all masters rsb while lockspace locking handling and not create them
while recovery handling which I think should improve the handling to
maybe get rid of those barriers.
Alexander Aring (16):
dlm: fix off-by-one waiters refcount handling
dlm: put lkbs instead of force free
dlm: remove allocation parameter in msg allocation
dlm: switch to GFP_ATOMIC in dlm allocations
dlm: move root_list functionality to recover.c
dlm: move master dir dump to own list
dlm: move root_list to ls_recover() stack
dlm: implement directory dump context
dlm: drop holding waiters mutex in waiters recovery
dlm: convert ls_waiters_mutex to spinlock
dlm: convert res_lock to spinlock
dlm: make requestqueue handling non sleepable
dlm: ls_recv_active semaphore to rwlock
dlm: remove schedule in dlm receive path
dlm: convert message parsing locks to disable bh
dlm: do dlm message processing in softirq context
Kunwu Chan (2):
fs: dlm: Simplify the allocation of slab caches in
dlm_midcomms_cache_create
fs: dlm: Simplify the allocation of slab caches in
dlm_lowcomms_msg_cache_create
fs/dlm/ast.c | 28 ++---
fs/dlm/debug_fs.c | 36 +++---
fs/dlm/dir.c | 147 ++++++++++++++++++----
fs/dlm/dir.h | 3 +-
fs/dlm/dlm_internal.h | 20 +--
fs/dlm/lock.c | 277 +++++++++++++++++++++++-------------------
fs/dlm/lock.h | 8 +-
fs/dlm/lockspace.c | 96 ++++++++-------
fs/dlm/lowcomms.c | 68 +++++------
fs/dlm/lowcomms.h | 5 +-
fs/dlm/member.c | 23 ++--
fs/dlm/memory.c | 14 +--
fs/dlm/memory.h | 4 +-
fs/dlm/midcomms.c | 67 +++++-----
fs/dlm/midcomms.h | 3 +-
fs/dlm/rcom.c | 33 +++--
fs/dlm/recover.c | 126 ++++++-------------
fs/dlm/recover.h | 10 +-
fs/dlm/recoverd.c | 125 ++++++++++++++++---
fs/dlm/requestqueue.c | 43 ++-----
fs/dlm/user.c | 34 +++---
21 files changed, 657 insertions(+), 513 deletions(-)
--
2.43.0
next reply other threads:[~2024-02-27 1:49 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-27 1:48 Alexander Aring [this message]
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 01/18] fs: dlm: Simplify the allocation of slab caches in dlm_midcomms_cache_create Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 02/18] fs: dlm: Simplify the allocation of slab caches in dlm_lowcomms_msg_cache_create Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 03/18] dlm: fix off-by-one waiters refcount handling Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 04/18] dlm: put lkbs instead of force free Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 05/18] dlm: remove allocation parameter in msg allocation Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 06/18] dlm: switch to GFP_ATOMIC in dlm allocations Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 07/18] dlm: move root_list functionality to recover.c Alexander Aring
2024-02-27 1:48 ` [PATCHv3 v6.8-rc6 08/18] dlm: move master dir dump to own list Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 09/18] dlm: move root_list to ls_recover() stack Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 10/18] dlm: implement directory dump context Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 11/18] dlm: drop holding waiters mutex in waiters recovery Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 12/18] dlm: convert ls_waiters_mutex to spinlock Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 13/18] dlm: convert res_lock " Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 14/18] dlm: make requestqueue handling non sleepable Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 15/18] dlm: ls_recv_active semaphore to rwlock Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 16/18] dlm: remove schedule in dlm receive path Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 17/18] dlm: convert message parsing locks to disable bh Alexander Aring
2024-02-27 1:49 ` [PATCHv3 v6.8-rc6 18/18] dlm: do dlm message processing in softirq context Alexander Aring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240227014909.93945-1-aahringo@redhat.com \
--to=aahringo@redhat.com \
--cc=gfs2@lists.linux.dev \
--cc=teigland@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox