All of lore.kernel.org
 help / color / mirror / Atom feed
From: malahal@us.ibm.com
To: dm-devel@redhat.com
Subject: Re: Desynchronizing dm-raid1
Date: Wed, 2 Apr 2008 18:40:42 -0700	[thread overview]
Message-ID: <20080403014042.GA3789@us.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0804021444120.22485@porkchop.devel.redhat.com>

Mikulas Patocka [mpatocka@redhat.com] wrote:
> Ideas how to fix it:
>
> 1. lock the buffers and unmap the pages while they are being written.
> --- upstream developers would likely reject it. No other driver than 
> dm-raid1 has problems with this and they wouldn't damp performance because 
> of one driver.

Very few drivers require it, so how about an interface to lock the pages
of an I/O available to drivers. Only needed RAID drivers would lock the
I/O while it is in progress and they only pay the performance penalty.
mmap pages are a bit tricky. They need to go into read-only mode when an
I/O is in progress. I know this would likely be rejected too!!!

> 4. make more region states.
> --- If the region is in RH_DIRTY state and all writes drain, the state is 
> changed to RH_MAYBE_DIRTY. (we don't know if the region is synchronized or 
> not). The disk dirty flag is kept.
> --- periodically (once in few minutes, so that it doesn't affect 
> performance much), the change all regions in RH_MAYBE_DIRTY state to 
> RH_CLEAN_CANDIDATE, then issue sync() on all filesystems. If, after the 
> sync(), the region is still in RH_CLEAN_CANDIDATE (i.e. it hasn't been 
> written during the sync()), it is moved to RH_CLEAN state and the on-disk 
> bit for the region is turned off.

Sounds good except that it uses sync()! Is there a way to sync only
pages related to a certain block device? How hard it is to implement
such an interface?

--Malahal.

  parent reply	other threads:[~2008-04-03  1:40 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.64.0803131238520.23136@porkchop.devel.redhat.com>
     [not found] ` <Pine.LNX.4.64.0803171338130.7598@porkchop.devel.redhat.com>
     [not found]   ` <47DEC402.10309@redhat.com>
     [not found]     ` <Pine.LNX.4.64.0803171611430.31803@porkchop.devel.redhat.com>
     [not found]       ` <20080317215631.GG29322@agk.fab.redhat.com>
     [not found]         ` <Pine.LNX.4.64.0803181921380.10939@porkchop.devel.redhat.com>
     [not found]           ` <20080318233955.GA12007@agk.fab.redhat.com>
     [not found]             ` <Pine.LNX.4.64.0803181942140.20490@porkchop.devel.redhat.com>
     [not found]               ` <20080319000241.GB12007@agk.fab.redhat.com>
     [not found]                 ` <Pine.LNX.4.64.0803182015001.21077@porkchop.devel.redhat.com>
     [not found]                   ` <20080319011757.GD12007@agk.fab.redhat.com>
2008-04-02 20:23                     ` Desynchronizing dm-raid1 Mikulas Patocka
2008-04-02 22:13                       ` Mikulas Patocka
2008-04-03  1:40                       ` malahal [this message]
2008-04-03 14:49                         ` Martin K. Petersen
2008-04-07 17:05                         ` Martin K. Petersen
2008-04-07 17:22                           ` malahal
2008-04-07 17:44                             ` Martin K. Petersen
2008-05-05 21:45                           ` Mikulas Patocka
2008-05-06 10:29                             ` [dm-devel] " Herbert Xu
2008-05-06 10:29                               ` Herbert Xu
2008-05-06 22:50                               ` Mikulas Patocka
2008-05-13  3:28                                 ` Mikulas Patocka
2008-05-13  3:38                                   ` [dm-devel] " Herbert Xu
2008-05-13 20:35                                     ` Mikulas Patocka
2008-05-14  1:14                                       ` [dm-devel] " Herbert Xu
2008-05-22  2:18                                         ` Mikulas Patocka
2008-05-22  2:42                                           ` [dm-devel] " Herbert Xu
2008-05-22 12:32                                             ` Mikulas Patocka
2008-05-22 23:53                                               ` [dm-devel] " Herbert Xu
2008-05-23 14:59                                                 ` Mikulas Patocka
2008-05-24  0:01                                                   ` Herbert Xu
2008-05-24 14:01                                                     ` Mikulas Patocka
2008-04-07 23:31                         ` Mikulas Patocka
2008-04-03  9:19                       ` Heinz Mauelshagen
2008-04-03 14:21                         ` malahal
2008-04-07 14:25                           ` Heinz Mauelshagen
2008-04-07 15:41                             ` malahal
2008-04-07 23:27                               ` Mikulas Patocka
2008-04-08  0:04                                 ` malahal
2008-04-07 23:38                         ` Mikulas Patocka

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=20080403014042.GA3789@us.ibm.com \
    --to=malahal@us.ibm.com \
    --cc=dm-devel@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 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.