gfs2 filesystem and dlm development
 help / color / mirror / Atom feed
From: Alexander Aring <aahringo@redhat.com>
To: teigland@redhat.com
Cc: gfs2@lists.linux.dev, aahringo@redhat.com
Subject: [PATCHv2 dlm/next 00/13] dlm: bring message parsing to softirq context
Date: Sun, 19 Nov 2023 11:38:04 -0500	[thread overview]
Message-ID: <20231119163817.751872-1-aahringo@redhat.com> (raw)

Hi,

this is version 2 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. This patch will move the dlm
message parsing into a softirq context where we probably can easily
trigger parallel message processing and take advantage that the message
processing runs on a per cpu basis.

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.

- Alex

Alexander Aring (13):
  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: convert message parsing locks to disable bh
  dlm: do dlm message processing in softirq context

 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         | 236 ++++++++++++++++++++++--------------------
 fs/dlm/lock.h         |   7 +-
 fs/dlm/lockspace.c    |  65 ++++++------
 fs/dlm/lowcomms.c     |  66 +++++-------
 fs/dlm/lowcomms.h     |   5 +-
 fs/dlm/member.c       |  23 ++--
 fs/dlm/memory.c       |  14 +--
 fs/dlm/memory.h       |   4 +-
 fs/dlm/midcomms.c     |  64 ++++++------
 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, 603 insertions(+), 489 deletions(-)

-- 
2.39.3


             reply	other threads:[~2023-11-19 16:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-19 16:38 Alexander Aring [this message]
2023-11-19 16:38 ` [PATCHv2 dlm/next 01/13] dlm: remove allocation parameter in msg allocation Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 02/13] dlm: switch to GFP_ATOMIC in dlm allocations Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 03/13] dlm: move root_list functionality to recover.c Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 04/13] dlm: move master dir dump to own list Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 05/13] dlm: move root_list to ls_recover() stack Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 06/13] dlm: implement directory dump context Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 07/13] dlm: drop holding waiters mutex in waiters recovery Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 08/13] dlm: convert ls_waiters_mutex to spinlock Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 09/13] dlm: convert res_lock " Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 10/13] dlm: make requestqueue handling non sleepable Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 11/13] dlm: ls_recv_active semaphore to rwlock Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 12/13] dlm: convert message parsing locks to disable bh Alexander Aring
2023-11-19 16:38 ` [PATCHv2 dlm/next 13/13] dlm: do dlm message processing in softirq context Alexander Aring
2024-01-17 21:02   ` 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=20231119163817.751872-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