lkml.org 
[lkml]   [2015]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/4] UBI: Implement bitrot checking
    Hi Richard,

    After the 'coding style related'/'useless' comments, now comes a real
    question related to the approach you've taken :-).

    On Sun, 29 Mar 2015 14:13:17 +0200
    Richard Weinberger <richard@nod.at> wrote:

    [...]
    > +
    > +/**
    > + * ubi_wl_trigger_bitrot_check - triggers a re-read of all physical erase
    > + * blocks.
    > + * @ubi: UBI device description object
    > + */
    > +void ubi_wl_trigger_bitrot_check(struct ubi_device *ubi)
    > +{
    > + int i;
    > + struct ubi_wl_entry *e;
    > +
    > + ubi_msg(ubi, "Running a full read check");
    > +
    > + for (i = 0; i < ubi->peb_count; i++) {
    > + spin_lock(&ubi->wl_lock);
    > + e = ubi->lookuptbl[i];
    > + spin_unlock(&ubi->wl_lock);
    > + if (e) {
    > + atomic_inc(&ubi->bit_rot_work);
    > + schedule_bitrot_check(ubi, e);
    > + }
    > + }

    Do we really need to create a ubi_work per PEB ?
    Couldn't we create a single work being rescheduled inside the worker
    function (after updating the ubi_wl_entry of course).

    I'm pretty sure I'm missing something obvious that you'll probably
    point out ;-).


    --
    Boris Brezillon, Free Electrons
    Embedded Linux and Kernel engineering
    http://free-electrons.com


    \
     
     \ /
      Last update: 2015-04-12 19:41    [W:4.022 / U:0.372 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site