* master node can not be recovered @ 2015-11-02 16:10 Bean Huo 霍斌斌 (beanhuo) 2015-11-02 16:46 ` Richard Weinberger 2015-11-03 8:32 ` Artem Bityutskiy 0 siblings, 2 replies; 11+ messages in thread From: Bean Huo 霍斌斌 (beanhuo) @ 2015-11-02 16:10 UTC (permalink / raw) To: linux-mtd@lists.infradead.org; +Cc: Richard Weinberger Hi, Richard I tested my UBI power loss solution, have a question about master node. We all know that if master node be corrupted by power loss , we can recover it by second one. But from my testing results, in fact, It cannot be recovered by second backup master node. If first master node be corrupted by power loss, this relevant block will be correctly read, get_master_node will not reture 0, so next time recover operation will not run. Or I'm wrong? Best Regards! BeanHuo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-02 16:10 master node can not be recovered Bean Huo 霍斌斌 (beanhuo) @ 2015-11-02 16:46 ` Richard Weinberger 2015-11-03 9:12 ` Artem Bityutskiy 2015-11-03 8:32 ` Artem Bityutskiy 1 sibling, 1 reply; 11+ messages in thread From: Richard Weinberger @ 2015-11-02 16:46 UTC (permalink / raw) To: Bean Huo 霍斌斌 (beanhuo), linux-mtd@lists.infradead.org Bean, Am 02.11.2015 um 17:10 schrieb Bean Huo 霍斌斌 (beanhuo): > Hi, Richard > I tested my UBI power loss solution, have a question about master node. > We all know that if master node be corrupted by power loss , we can recover it by second one. But from my testing results, in fact, > It cannot be recovered by second backup master node. If first master node be corrupted by power loss, this relevant block will be correctly read, get_master_node will not reture 0, so next time recover operation will not run. > Or I'm wrong? ubifs_recover_master_node() is very strict. Can it be that in your case more than the last written page is corrupted? Thanks, //richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-02 16:46 ` Richard Weinberger @ 2015-11-03 9:12 ` Artem Bityutskiy 2015-11-04 7:43 ` Bean Huo 霍斌斌 (beanhuo) 2015-12-04 7:51 ` Bean Huo 霍斌斌 (beanhuo) 0 siblings, 2 replies; 11+ messages in thread From: Artem Bityutskiy @ 2015-11-03 9:12 UTC (permalink / raw) To: Richard Weinberger, Bean Huo 霍斌斌 (beanhuo), linux-mtd@lists.infradead.org On Mon, 2015-11-02 at 17:46 +0100, Richard Weinberger wrote: > ubifs_recover_master_node() is very strict. Just like the rest of the recovery code, the master node part is consistent with that. > Can it be that in your case more than the last written page is > corrupted? I suspect so too. ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: master node can not be recovered 2015-11-03 9:12 ` Artem Bityutskiy @ 2015-11-04 7:43 ` Bean Huo 霍斌斌 (beanhuo) 2015-11-04 8:03 ` Richard Weinberger 2015-12-04 7:51 ` Bean Huo 霍斌斌 (beanhuo) 1 sibling, 1 reply; 11+ messages in thread From: Bean Huo 霍斌斌 (beanhuo) @ 2015-11-04 7:43 UTC (permalink / raw) To: dedekind1@gmail.com, Richard Weinberger, linux-mtd@lists.infradead.org > On Mon, 2015-11-02 at 17:46 +0100, Richard Weinberger wrote: > > ubifs_recover_master_node() is very strict. > > Just like the rest of the recovery code, the master node part is consistent with > that. > > > Can it be that in your case more than the last written page is > > corrupted? > > I suspect so too. Hi, Artem The second master node not be corrupted. I will test again later, and send it out. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-04 7:43 ` Bean Huo 霍斌斌 (beanhuo) @ 2015-11-04 8:03 ` Richard Weinberger 2015-11-04 8:20 ` Artem Bityutskiy 0 siblings, 1 reply; 11+ messages in thread From: Richard Weinberger @ 2015-11-04 8:03 UTC (permalink / raw) To: Bean Huo 霍斌斌 (beanhuo), dedekind1@gmail.com, linux-mtd@lists.infradead.org Am 04.11.2015 um 08:43 schrieb Bean Huo 霍斌斌 (beanhuo): > >> On Mon, 2015-11-02 at 17:46 +0100, Richard Weinberger wrote: >>> ubifs_recover_master_node() is very strict. >> >> Just like the rest of the recovery code, the master node part is consistent with >> that. >> >>> Can it be that in your case more than the last written page is >>> corrupted? >> >> I suspect so too. > > Hi, Artem > The second master node not be corrupted. I will test again later, and send it out. UBIFS uses two LEBs to store master nodes. If UBIFS was interrupted (unclean reboot) while writing a master node it will double check whether only this last written page is corrupted and then copy the node from the second LEB. But if two or more pages are corrupted UBIFS will give up as this most not happen from UBIFS's point of view. Thanks, //richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-04 8:03 ` Richard Weinberger @ 2015-11-04 8:20 ` Artem Bityutskiy 2015-11-04 8:25 ` Bityutskiy, Artem 2015-11-04 8:40 ` Boris Brezillon 0 siblings, 2 replies; 11+ messages in thread From: Artem Bityutskiy @ 2015-11-04 8:20 UTC (permalink / raw) To: Richard Weinberger, Bean Huo 霍斌斌 (beanhuo), linux-mtd@lists.infradead.org On Wed, 2015-11-04 at 09:03 +0100, Richard Weinberger wrote: > But if two or more pages are corrupted UBIFS will give up as this > most not happen > from UBIFS's point of view. Right, and I hear that a lot of bug reports and frustration comes from this. This worked with SLCs we were using when implementing UBIFS (particularly, Samsung OneNAND was used, it was very high-quality NAND). Nowadays, this needs to be changed. UBIFS logic is this. If there is a corruption, then it must be in the last used NAND page. Pages after this NAND page must contain empty space. A small complication, which is not important now, is that UBIFS may operate with multiple NAND pages, this depends on what the driver tells is the min. IO size. No the logic behind this was that we always write data from the beginning of the LEB, and continue to its end. In case of a power cut, we can only get corruption in the last NAND page (or more strictly, min. I/O unit) where we were writing to. The next NAND page and all the NAND pages after it should be empty. The previous NAND page and all the NAND pages before it should contain valid data (CRC OK). Pretty simple. Worked well. So what has to be changed in this logic? Obviously, the definition of empty space should be changed, it seems, because obviously not every driver wants/can ECC-protect the empty space. What else? ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-04 8:20 ` Artem Bityutskiy @ 2015-11-04 8:25 ` Bityutskiy, Artem 2015-11-04 8:40 ` Boris Brezillon 1 sibling, 0 replies; 11+ messages in thread From: Bityutskiy, Artem @ 2015-11-04 8:25 UTC (permalink / raw) To: beanhuo@micron.com, richard@nod.at, linux-mtd@lists.infradead.org On Wed, 2015-11-04 at 10:20 +0200, Artem Bityutskiy wrote: > Right, and I hear that a lot of bug reports and frustration comes > from > this. This worked with SLCs we were using when implementing UBIFS > (particularly, Samsung OneNAND was used, it was very high-quality > NAND). Nowadays, this needs to be changed. > > UBIFS logic is this. If there is a corruption, then it must be in the > last used NAND page. Pages after this NAND page must contain empty > space. > > A small complication, which is not important now, is that UBIFS may > operate with multiple NAND pages, this depends on what the driver > tells > is the min. IO size. > > No the logic behind this was that we always write data from the > beginning of the LEB, and continue to its end. In case of a power > cut, > we can only get corruption in the last NAND page (or more strictly, > min. I/O unit) where we were writing to. The next NAND page and all > the > NAND pages after it should be empty. The previous NAND page and all > the > NAND pages before it should contain valid data (CRC OK). > > Pretty simple. Worked well. > > So what has to be changed in this logic? Obviously, the definition of > empty space should be changed, it seems, because obviously not every > driver wants/can ECC-protect the empty space. > > What else? And by the way, from my point of view, if someone wants to add MLC support, just fixing this problem is a good practical step forward. I see a lot of discussions about MLC support, and we even have some arguments, and the whole thing looks complex. But this is a much smaller isolated piece of work which would contribute to the MLC support effort, and the implementer would learn UBIFS while implementing this, and would be a lot more confident about making UBIFS changes. I think I can sense this attitude: oh, UBIFS is complex, let's try to do most in UBI, it seems simpler to deal with. -- Best Regards, Artem Bityutskiy --------------------------------------------------------------------- Intel Finland Oy Registered Address: PL 281, 00181 Helsinki Business Identity Code: 0357606 - 4 Domiciled in Helsinki This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-04 8:20 ` Artem Bityutskiy 2015-11-04 8:25 ` Bityutskiy, Artem @ 2015-11-04 8:40 ` Boris Brezillon 2015-11-04 8:57 ` Artem Bityutskiy 1 sibling, 1 reply; 11+ messages in thread From: Boris Brezillon @ 2015-11-04 8:40 UTC (permalink / raw) To: Artem Bityutskiy Cc: Richard Weinberger, Bean Huo 霍斌斌 "(beanhuo)", linux-mtd@lists.infradead.org Hi Artem, On Wed, 04 Nov 2015 10:20:50 +0200 Artem Bityutskiy <dedekind1@gmail.com> wrote: > On Wed, 2015-11-04 at 09:03 +0100, Richard Weinberger wrote: > > But if two or more pages are corrupted UBIFS will give up as this > > most not happen > > from UBIFS's point of view. > > Right, and I hear that a lot of bug reports and frustration comes from > this. This worked with SLCs we were using when implementing UBIFS > (particularly, Samsung OneNAND was used, it was very high-quality > NAND). Nowadays, this needs to be changed. > > UBIFS logic is this. If there is a corruption, then it must be in the > last used NAND page. Pages after this NAND page must contain empty > space. > > A small complication, which is not important now, is that UBIFS may > operate with multiple NAND pages, this depends on what the driver tells > is the min. IO size. > > No the logic behind this was that we always write data from the > beginning of the LEB, and continue to its end. In case of a power cut, > we can only get corruption in the last NAND page (or more strictly, > min. I/O unit) where we were writing to. The next NAND page and all the > NAND pages after it should be empty. The previous NAND page and all the > NAND pages before it should contain valid data (CRC OK). > > Pretty simple. Worked well. > > So what has to be changed in this logic? Obviously, the definition of > empty space should be changed, it seems, because obviously not every > driver wants/can ECC-protect the empty space. There's a series trying to address this problem by fixing bitflips in erased pages, and hopefully all NAND controller drivers will be fixed at some point (either by using the generic helper or by implementing a similar logic to detect bitflips in erased pages). > > What else? Well I don't know if this is the subject here, but for MLC NANDs, because of paired pages, the corruption can occur between two pages that have already been correctly written. The question is, what should we do in this case? Should we drop all the pages following the corrupted page in the LEB? Should we only drop the faulty page and parse the nodes in the valid pages we can find after this corruption (I don't know if it can be the case, but if some nodes depend on other nodes, doing that may not work)? Any other option? Best Regards, Boris [1]http://thread.gmane.org/gmane.linux.drivers.mtd/61358 -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-04 8:40 ` Boris Brezillon @ 2015-11-04 8:57 ` Artem Bityutskiy 0 siblings, 0 replies; 11+ messages in thread From: Artem Bityutskiy @ 2015-11-04 8:57 UTC (permalink / raw) To: Boris Brezillon Cc: Richard Weinberger, Bean Huo 霍斌斌 "(beanhuo)", linux-mtd@lists.infradead.org On Wed, 2015-11-04 at 09:40 +0100, Boris Brezillon wrote: > The question is, what should we do in this case? Should we drop all > the > pages following the corrupted page in the LEB? Should we only drop > the > faulty page and parse the nodes in the valid pages we can find after > this corruption (I don't know if it can be the case, but if some > nodes > depend on other nodes, doing that may not work)? Any other option? To recap my opinion expressed in the other thread. 1. We only care about paired pages in the power cut context. 2. This means that we care about paired pages in the same places where we care about losing data or metadata. 3. UBIFS has a number of places where it cares about data and metadata, and paired pages story should boil down to changes those places. Examples of the places would be: wbuf sync, the log, the master nodes, LPT. 4. The strategy seems to be pretty simple: skipping enough pages. And UBIFS already has the "padding" mechanism which does this. Or in other words, whenever we have to make sure the data does not get affected by a power cut, we skip pages. This happens when user syncs/fsyncs/unmounts/etc, when we commit, when we write the master node or a log nod, etc. All are limited number of places, where we already explicitly care about power cuts. ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: master node can not be recovered 2015-11-03 9:12 ` Artem Bityutskiy 2015-11-04 7:43 ` Bean Huo 霍斌斌 (beanhuo) @ 2015-12-04 7:51 ` Bean Huo 霍斌斌 (beanhuo) 1 sibling, 0 replies; 11+ messages in thread From: Bean Huo 霍斌斌 (beanhuo) @ 2015-12-04 7:51 UTC (permalink / raw) To: dedekind1@gmail.com, Richard Weinberger; +Cc: linux-mtd@lists.infradead.org Hi, For this, I have new update: Following is uncorruped master node info, There is no ECC error. As for backup master node, it alread be coruupted by Unclear power down, and contains random data. # nanddump -p -o -s 0x23054000 -l 0x1000 /dev/mtd4 ECC failed: 6 ECC corrected: 0 Number of bad blocks: 0 Number of bbt blocks: 0 Block size 1048576, page size 4096, OOB size 216 Dumping data starting at 0x23054000 and ending at 0x23055000... 0x23054000: 31 18 10 06 38 42 ad 67 cc f5 07 00 00 00 00 00 0x23054010: 00 02 00 00 07 00 00 00 26 18 00 00 00 00 00 00 0x23054020: 79 64 00 00 00 00 00 00 03 00 00 00 04 00 00 00 0x23054030: d2 06 00 00 08 51 07 00 94 00 00 00 0b 00 00 00 0x23054040: d2 06 00 00 00 60 07 00 58 00 03 00 00 00 00 00 0x23054050: 00 00 f6 69 00 00 00 00 30 e8 a5 02 00 00 00 00 0x23054060: 78 f7 13 01 00 00 00 00 00 00 00 00 00 00 00 00 0x23054070: 00 c0 db 00 00 00 00 00 06 00 00 00 9d 10 01 00 0x23054080: 06 00 00 00 00 20 01 00 06 00 00 00 00 10 01 00 0x23054090: 00 00 00 00 00 00 00 00 33 00 00 00 ab 06 00 00 0x230540a0: 0b 00 00 00 f2 06 00 00 00 00 00 00 00 00 00 00 0x230540b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230540c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230540d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230540e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230540f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230541f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054200: 31 18 10 06 57 8f 1d e0 00 00 00 00 00 00 00 00 0x23054210: 1c 00 00 00 05 00 00 00 e4 0d 00 00 00 00 00 00 0x23054220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230542f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230543f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230544f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230545f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230546f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230547f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230548f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x230549f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x23054ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 OOB Data: ff ff ff ff ff ff ff ff ff ff ff ff 01 45 a1 de OOB Data: 25 95 a6 49 bb 07 d5 cc 89 f1 c7 68 32 42 a2 cd OOB Data: c9 85 93 6c cd cb 1c 81 59 a2 37 95 63 9a b5 e4 OOB Data: 30 13 6d 22 55 eb ff ff ff ff ff ff ff ff ff ff OOB Data: ff ff 73 f4 44 96 fb c8 77 9c b7 21 0f 75 42 3e OOB Data: 9b ba 3e 30 cf 2f 8e 04 f3 cf ad e4 1f bd 50 08 OOB Data: d1 2e 11 68 7c 2f f6 5b 12 ae ef 97 ff ff ff ff OOB Data: ff ff ff ff ff ff ff ff 73 f4 44 96 fb c8 77 9c OOB Data: b7 21 0f 75 42 3e 9b ba 3e 30 cf 2f 8e 04 f3 cf OOB Data: ad e4 1f bd 50 08 d1 2e 11 68 7c 2f f6 5b 12 ae OOB Data: ef 97 ff ff ff ff ff ff ff ff ff ff ff ff 73 f4 OOB Data: 44 96 fb c8 77 9c b7 21 0f 75 42 3e 9b ba 3e 30 OOB Data: cf 2f 8e 04 f3 cf ad e4 1f bd 50 08 d1 2e 11 68 OOB Data: 7c 2f f6 5b 12 ae ef 97 # mount -t ubifs /dev/ubi1_0 /mnt/ brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 UBI error: ubi_io_read: error -77 (ECC error) while reading 1040384 bytes from PEB 561:8192, read 1040384 bytes brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 brcmnand brcmnand.0: uncorrectable error at 0x2d34ec00 brcmnand brcmnand.0: uncorrectable error at 0x2d354c00 UBI error: ubi_io_read: error -77 (ECC error) while reading 1040384 bytes from PEB 561:8192, read 1040384 bytes UBIFS error (pid 535): ubifs_recover_master_node: failed to recover master node mount: mounting /dev/ubi1_0 on /mnt/ failed: Invalid argument ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master node can not be recovered 2015-11-02 16:10 master node can not be recovered Bean Huo 霍斌斌 (beanhuo) 2015-11-02 16:46 ` Richard Weinberger @ 2015-11-03 8:32 ` Artem Bityutskiy 1 sibling, 0 replies; 11+ messages in thread From: Artem Bityutskiy @ 2015-11-03 8:32 UTC (permalink / raw) To: Bean Huo 霍斌斌 (beanhuo), linux-mtd@lists.infradead.org Cc: Richard Weinberger On Mon, 2015-11-02 at 16:10 +0000, Bean Huo 霍斌斌 (beanhuo) wrote: > Hi, Richard > I tested my UBI power loss solution, have a question about master > node. > We all know that if master node be corrupted by power loss , we can > recover it by second one. But from my testing results, in fact, > It cannot be recovered by second backup master node. If first master > node be corrupted by power loss, this relevant block will be > correctly read, get_master_node will not reture 0, so next time > recover operation will not run. > Or I'm wrong? There are debugging messages, can you please try to enable them and share the resutl, so that we could see what was going on? ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-12-04 7:52 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-11-02 16:10 master node can not be recovered Bean Huo 霍斌斌 (beanhuo) 2015-11-02 16:46 ` Richard Weinberger 2015-11-03 9:12 ` Artem Bityutskiy 2015-11-04 7:43 ` Bean Huo 霍斌斌 (beanhuo) 2015-11-04 8:03 ` Richard Weinberger 2015-11-04 8:20 ` Artem Bityutskiy 2015-11-04 8:25 ` Bityutskiy, Artem 2015-11-04 8:40 ` Boris Brezillon 2015-11-04 8:57 ` Artem Bityutskiy 2015-12-04 7:51 ` Bean Huo 霍斌斌 (beanhuo) 2015-11-03 8:32 ` Artem Bityutskiy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).