Distributed Replicated Block Device (DRBD) development
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox