All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Weinberger <richard@nod.at>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	dedekind1@gmail.com
Subject: Re: [PATCH 4/4] UBI: Implement bitrot checking
Date: Sun, 12 Apr 2015 18:32:32 +0200	[thread overview]
Message-ID: <552A9E20.6010207@nod.at> (raw)
In-Reply-To: <20150412183101.2cbcde3f@bbrezillon>

Am 12.04.2015 um 18:31 schrieb Boris Brezillon:
> On Sun, 12 Apr 2015 18:14:40 +0200
> Richard Weinberger <richard@nod.at> wrote:
> 
>>> IMHO the following code chunk, starting here:
>>>
>>>> +			wl_wrk = prepare_erase_work(e, -1, -1, 1);
>>>> +			if (IS_ERR(wl_wrk)) {
>>>> +				err = PTR_ERR(wl_wrk);
>>>> +				goto out;
>>>> +			}
>>>> +
>>>> +			__schedule_ubi_work(ubi, wl_wrk);
>>>
>>> and ending here ^, could be placed in an helper function
>>> (re_erase_peb ?)
>>
>> As long we have only one user of that pattern I'd keep it as is.
>> We have in UBI already a gazillion helper functions.
> 
> Okay, then maybe you should comment what you're doing here: erase an
> already erased PEB where bitflips have occured.

Makes sense!

>>
>>>> +			err = 0;
>>>> +		}
>>>> +		/*
>>>> +		 * e is target of a move operation, all we can do is kicking
>>>> +		 * wear leveling such that we can catch it later or wear
>>>> +		 * leveling itself scrubbs the PEB.
>>>> +		 */
>>>> +		else if (ubi->move_to == e || ubi->move_from == e) {
>>>> +			spin_unlock(&ubi->wl_lock);
>>>> +
>>>> +			err = ensure_wear_leveling(ubi, 1);
>>>> +		}
>>>> +		/*
>>>> +		 * e is member of a fastmap pool. We are not allowed to
>>>> +		 * remove it from that pool as the on-flash fastmap data
>>>> +		 * structure refers to it. Let's schedule a new fastmap write
>>>> +		 * such that the said PEB can get released.
>>>> +		 */
>>>> +		else {
>>>> +			ubi_schedule_fm_work(ubi);
>>>> +			spin_unlock(&ubi->wl_lock);
>>>> +
>>>> +			err = 0;
>>>> +		}
>>>
>>> I'm nitpicking again, but I like to have a single place where spinlocks
>>> are locked and unlocked, so here is a rework suggestion for the code
>>> inside the 'if (err == UBI_IO_BITFLIPS)' statement:
>>
>> A single lock/unlock place is nice but in this case the whole logic fits
>> into a single page on screen. "do_this" and "do_that" variables don't make
>> the code more readable IMHO.
>> But as with all nitpicks it is a matter of taste and we could waste multiple
>> days on such things.
> 
> Isn't that the whole point of code reviews :-P ?

;-)

Thanks,
//richard

  reply	other threads:[~2015-04-12 16:32 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-29 12:13 UBI: Bitrot checking Richard Weinberger
2015-03-29 12:13 ` Richard Weinberger
2015-03-29 12:13 ` [PATCH 1/4] UBI: Introduce ubi_schedule_fm_work() Richard Weinberger
2015-03-29 12:13   ` Richard Weinberger
2015-03-29 12:13 ` [PATCH 2/4] UBI: Introduce prepare_erase_work() Richard Weinberger
2015-03-29 12:13   ` Richard Weinberger
2015-03-29 12:13 ` [PATCH 3/4] UBI: Introduce in_pq() Richard Weinberger
2015-03-29 12:13   ` Richard Weinberger
2015-03-29 12:13 ` [PATCH 4/4] UBI: Implement bitrot checking Richard Weinberger
2015-03-29 12:13   ` Richard Weinberger
2015-04-02 17:34   ` Andrea Scian
2015-04-02 17:34     ` Andrea Scian
2015-04-02 17:54     ` Richard Weinberger
2015-04-02 17:54       ` Richard Weinberger
2015-04-02 19:19       ` Andrea Scian
2015-04-02 19:19         ` Andrea Scian
2015-04-08 10:34         ` Richard Weinberger
2015-04-08 10:34           ` Richard Weinberger
2015-04-08 21:02           ` Andrea Scian
2015-04-08 21:02             ` Andrea Scian
2015-04-08 11:48   ` David Oberhollenzer
2015-04-12 14:12   ` Boris Brezillon
2015-04-12 16:09     ` Richard Weinberger
2015-04-12 16:43       ` Boris Brezillon
2015-04-12 16:55         ` Richard Weinberger
2015-04-12 20:42           ` [PATCH 4/4] UBI: Implement bitrot checking (linux-mtd Digest, Vol 145, Issue 24) Andrea Scian
2015-04-12 20:42             ` Andrea Scian
2015-04-12 21:01             ` Richard Weinberger
2015-04-12 21:01               ` Richard Weinberger
2015-04-12 21:30               ` Boris Brezillon
2015-04-12 21:37                 ` Richard Weinberger
2015-04-12 21:33               ` Andrea Scian
2015-04-12 21:33                 ` Andrea Scian
2015-04-12 21:42                 ` Richard Weinberger
2015-04-12 21:42                   ` Richard Weinberger
2015-04-13 17:17                   ` linux-mtd digest emails (was Re: [PATCH 4/4] UBI: Implement bitrot checking) Brian Norris
2015-04-13 17:17                     ` Brian Norris
2015-04-12 15:14   ` [PATCH 4/4] UBI: Implement bitrot checking Boris Brezillon
2015-04-12 16:14     ` Richard Weinberger
2015-04-12 16:31       ` Boris Brezillon
2015-04-12 16:32         ` Richard Weinberger [this message]
2015-04-12 17:01   ` Boris Brezillon
2015-04-12 17:09     ` Richard Weinberger
2015-04-12 19:20       ` Boris Brezillon
2015-04-12 19:53         ` Richard Weinberger
2015-04-12 21:24           ` Boris Brezillon
2015-04-12 21:34             ` Richard Weinberger
2015-04-13  3:36               ` nick
2015-04-12 17:36     ` Richard Weinberger
     [not found] <mailman.40253.1428858576.22890.linux-mtd@lists.infradead.org>
     [not found] <mailman.38750.1427638218.22890.linux-mtd@lists.infradead.org>

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=552A9E20.6010207@nod.at \
    --to=richard@nod.at \
    --cc=boris.brezillon@free-electrons.com \
    --cc=dedekind1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    /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.