From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] drbd threads and workqueues: For what is each responsible?
Date: Mon, 26 Sep 2016 13:58:38 +0200 [thread overview]
Message-ID: <20160926115838.GA3302@soda.linbit> (raw)
In-Reply-To: <alpine.LRH.2.11.1609251548430.29933@mail.ewheeler.net>
On Sun, Sep 25, 2016 at 04:47:49PM -0700, Eric Wheeler wrote:
> Hello all,
>
> Would someone kindly point me at documentation or help me summarize the
> kernel thread and workqueues used by each DRBD resource?
>
> These are the ones I've found, please correct or add to my annotations as
> necessary to get a better understanding of the internal data flow:
>
> drbd_submit (workqueue, device->submit.wq):
> The workqueue that handles new read/write requests from the block layer,
> updates the AL as necessary, sends IO to the peer (or remote-reads if
> diskless). Does this thread write blocklayer-submitted IO to the
> backing device, too, or just metadata writes?
>
>
> drbd_receiver (thread, connection->receiver):
> The connection handling thread. Does this thread do anything besides
> make sure the connection is up and handle cleanup on disconnect?
>
> It looks like drbd_submit_peer_request is called several times from
> drbd_receiver.c, but is any disk IO performed by this thread?
>
>
> drbd_worker (thread, connection->worker):
> The thread that does drbd work which is not directly related to IO
> passed in by the block layer; action based on the work bits from
> device->flags such as:
> do_md_sync, update_on_disk_bitmap, go_diskless, drbd_ldev_destroy, do_start_resync
> Do metadata updates happen through this thread via
> do_md_sync/update_on_disk_bitmap, or are they passed off to another
> thread for writes? Is any blocklayer-submitted IO submitted by this
> thread?
>
>
> drbd_ack_receiver (thread, connection->ack_receiver):
> Thread that receives all ACK types from the peer node.
> Does this thread perform any disk IO? What kind?
>
>
> drbd_ack_sender (workqueue, connection->ack_sender):
> Thread that sends ACKs to the peer node.
> Does this thread perform any disk IO? What kind?
May I ask what you are doing?
It may help if I'm aware of your goals.
--
: Lars Ellenberg
: LINBIT | Keeping the Digital World Running
: DRBD -- Heartbeat -- Corosync -- Pacemaker
: R&D, Integration, Ops, Consulting, Support
DRBD® and LINBIT® are registered trademarks of LINBIT
next prev parent reply other threads:[~2016-09-26 11:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-25 23:47 [Drbd-dev] drbd threads and workqueues: For what is each responsible? Eric Wheeler
2016-09-26 11:58 ` Lars Ellenberg [this message]
2016-09-26 19:34 ` Eric Wheeler
2016-09-27 10:41 ` Lars Ellenberg
2016-09-29 22:34 ` Eric Wheeler
2016-10-03 9:52 ` Lars Ellenberg
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=20160926115838.GA3302@soda.linbit \
--to=lars.ellenberg@linbit.com \
--cc=drbd-dev@lists.linbit.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.