AW: [PATCH] right meaning of PARITY_ENABLE_RMW and PARITY_PREFER_RMW

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Von: linux-raid-owner@xxxxxxxxxxxxxxx [linux-raid-owner@xxxxxxxxxxxxxxx]" im Auftrag von "Shaohua Li [shli@xxxxxxxxxx]
> Gesendet: Mittwoch, 25. Mai 2016 18:02
> An: Song Liu
> Cc: linux-raid@xxxxxxxxxxxxxxx; Markus Stockhausen; neilb@xxxxxxx
> Betreff: Re: [PATCH] right meaning of PARITY_ENABLE_RMW and PARITY_PREFER_RMW
> 
> On Mon, May 23, 2016 at 05:25:06PM -0700, Song Liu wrote:
> > In current handle_stripe_dirtying, the code prefers rmw with
> > PARITY_ENABLE_RMW; while prefers rcw with PARITY_PREFER_RMW.
> >
> > This patch reverses this behavior.
> >
> > Signed-off-by: Song Liu <songliubraving@xxxxxx>
> > Signed-off-by: Shaohua Li <shli@xxxxxx>
> > ---
> >  drivers/md/raid5.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
> > index 8959e6d..ad9e15a 100644
> > --- a/drivers/md/raid5.c
> > +++ b/drivers/md/raid5.c
> > @@ -3600,7 +3600,7 @@ static void handle_stripe_dirtying(struct r5conf *conf,
> >       pr_debug("for sector %llu, rmw=%d rcw=%d\n",
> >               (unsigned long long)sh->sector, rmw, rcw);
> >       set_bit(STRIPE_HANDLE, &sh->state);
> > -     if ((rmw < rcw || (rmw == rcw && conf->rmw_level == PARITY_ENABLE_RMW)) && rmw > 0) {
> > +     if ((rmw < rcw || (rmw == rcw && conf->rmw_level == PARITY_PREFER_RMW)) && rmw > 0) {
> >               /* prefer read-modify-write, but need to get some data */
> >               if (conf->mddev->queue)
> >                       blk_add_trace_msg(conf->mddev->queue,
> > @@ -3627,7 +3627,7 @@ static void handle_stripe_dirtying(struct r5conf *conf,
> >                       }
> >               }
> >       }
> > -     if ((rcw < rmw || (rcw == rmw && conf->rmw_level != PARITY_ENABLE_RMW)) && rcw > 0) {
> > +     if ((rcw < rmw || (rcw == rmw && conf->rmw_level != PARITY_PREFER_RMW)) && rcw > 0) {
> >               /* want reconstruct write, but need to get some data */
> >               int qread =0;
> >               rcw = 0;
> > 
> > The patch looks correct, I'll apply.
> 
> I'm wondering why original code is in current way. It dosn't work like what the
> patch log (d06f191f8ecae) describes. Neil/Markus, is any patch missed?

Hi,

simple reason for usage of PARITY_ENABLE_RMW was the patch order. Option
PARITY_PREFER_RMW was implemented after all the rest. I guess I missed 
changing that condition.

Thanks for the fix.

Markus
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.

�ber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

Vorstand:
Kadir Akin
Dr. Michael Höhnerbach

Vorsitzender des Aufsichtsrates:
Hans Kristian Langva

Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

executive board:
Kadir Akin
Dr. Michael Höhnerbach

President of the supervisory board:
Hans Kristian Langva

Registry office: district court Cologne
Register number: HRB 52 497

****************************************************************************

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux