Hi Jaegeuk, 01.09.2016, 02:46, "Jaegeuk Kim" <[email protected]>: > On Wed, Aug 31, 2016 at 11:52:00AM +0300, Alexander Gordeev wrote: >> Hi Jaegeuk, >> >> 29.08.2016, 21:00, "Jaegeuk Kim" <[email protected]>: >> > On Mon, Aug 29, 2016 at 07:50:24PM +0300, Alexander Gordeev wrote: >> >> Hi, >> >> >> >> I have an update about the first of the bugs, that I reported. >> >> >> >> 19.08.2016, 20:23, "Alexander Gordeev" <[email protected]>: >> >> > Hi, >> >> > >> >> > I'd also like to report two bugs. I used f2fs-stable branch >> linux-3.10.y. >> >> > I'm using some proprietary modules also, but in my understanding they >> shouldn't affect the fs. >> >> > >> >> > 1. I have a Sandisk 16GB microSDHC card, that is quite old and may be >> at its end of life. >> >> > The bug is produced every time I try to delete any file on it. >> >> > >> > >> > ... >> > >> >> As you can see, after to warnings goes an oops. I think it was >> overlooked. >> >> But it makes the most trouble to me. >> >> >> >> I tried to understand what's going on. >> >> It turns out that se->cur_valid_map is NULL in update_sit_entry(). >> >> Probably, this is not expected. >> > >> > Thank you for the analysis. :) >> > It seems the blkaddr is out-of-range. >> > Can you print out its blkaddr? >> > >> > If possible, could you print out: >> > curseg->segno, curseg->next_blkoff,a curseg->next_segno >> > at the end of allocate_segment_by_default()? >> >> Thank you for the help! >> Here are the new traces: > > Thank you. > >> [ 49.274678] ------------[ cut here ]------------ >> [ 49.280216] WARNING: at >> /home/alex/work/s2l/amb_S2l_SDK_2.5/SDK2.5/s2l_linux_sdk/ambarella/kernel/linux-3.10/fs/f2fs/segment.c:1105 >> new_curseg+0x268/0x394 [f2fs]() > > This means there is no free segment. > Could you print out the below information before this f2fs_bug_on? > - prefree_segments(sbi) > - free_segments(sbi) > >> ... >> [ 49.518054] ---[ end trace 49dca462b4f988ff ]--- >> [ 49.522689] ------------[ cut here ]------------ >> [ 49.527375] WARNING: at >> /home/alex/work/s2l/amb_S2l_SDK_2.5/SDK2.5/s2l_linux_sdk/ambarella/kernel/linux-3.10/fs/f2fs/segment.c:1144 >> new_curseg+0x2f0/0x394 [f2fs]() > > This is caused by the above segno which was -1. > >> ... >> [ 49.764853] ---[ end trace 49dca462b4f98900 ]--- >> [ 49.857344] ------ segno = 7540, next_blkoff = 0, next_segno = 4294967295 >> -------- >> [ 49.913664] ------ blkaddr = 3889152 -------- >> [ 49.918173] Unable to handle kernel NULL pointer dereference at virtual >> address 00000000 > > Also, we can see next_segno was -1, which incur no se entry for this segment. > At this moment, I'd really like to see its /sys/kernel/debug/f2fs/status > whether > there is really not enough free segments.
I collected both /sys/kernel/debug/f2fs/status and numbers of blocks. The oops happens only when I try to delete anything. Also it can be caused by GC, but I turned background GC off. So I mounted the fs, dumped the status and then tried to remove a file. Here is what I got: =====[ partition info(sda). #0, RW]===== [SB: 1] [CP: 2] [SIT: 2] [NAT: 34] [SSA: 16] [MAIN: 7540(OverProv:424 Resv:50)] Utilization: 94% (3443739 valid blocks) - Node: 4458 (Inode: 1115, Other: 3343) - Data: 3439281 - Inline_xattr Inode: 0 - Inline_data Inode: 0 - Inline_dentry Inode: 0 - Orphan Inode: 0 Main area: 7540 segs, 3770 secs 3770 zones - COLD data: 6192, 3096, 3096 - WARM data: 6186, 3093, 3093 - HOT data: 6198, 3099, 3099 - Dir dnode: 4836, 2418, 2418 - File dnode: 5003, 2501, 2501 - Indir nodes: 7533, 3766, 3766 - Valid: 6728 - Dirty: 5 - Prefree: 0 - Free: 807 (0) CP calls: 0 (BG: 0) GC calls: 0 (BG: 0) - data segments : 0 (0) - node segments : 0 (0) Try to move 0 blocks (BG: 0) - data blocks : 0 (0) - node blocks : 0 (0) Extent Cache: - Hit Count: L1-1:0 L1-2:0 L2:0 - Hit Ratio: 0% (0 / 0) - Inner Struct Count: tree: 0(0), node: 0 Balancing F2FS Async: - inmem: 0, wb_bios: 0 - nodes: 0 in 1 - dents: 0 in dirs: 0 ( 0) - datas: 0 in files: 0 - meta: 0 in 155 - NATs: 0/ 1 - SITs: 0/ 7540 - free_nids: 3496 Distribution of User Blocks: [ valid | invalid | free ] [-----------------------------------------------|-|--] IPU: 0 blocks SSR: 0 blocks in 0 segments LFS: 0 blocks in 0 segments BDF: 78, avg. vblocks: 510 Memory: 2325 KB - static: 1647 KB - cached: 54 KB - paged : 624 KB [ 107.562070] ------ blkaddr = 2590606, se->cur_valid_map = 8477f040 -------- [ 107.570415] ------ blkaddr = 2590607, se->cur_valid_map = 8477f040 -------- [ 107.577537] ------ blkaddr = 2590608, se->cur_valid_map = 8477f040 -------- [ 107.585093] ------ blkaddr = 2590609, se->cur_valid_map = 8477f040 -------- [ 107.592470] ------ blkaddr = 2590610, se->cur_valid_map = 8477f040 -------- [ 107.599760] ------ blkaddr = 2590611, se->cur_valid_map = 8477f040 -------- [ 107.606907] ------ blkaddr = 2590612, se->cur_valid_map = 8477f040 -------- [ 107.614333] ------ blkaddr = 2590613, se->cur_valid_map = 8477f040 -------- [ 107.621706] ------ blkaddr = 2590614, se->cur_valid_map = 8477f040 -------- [ 107.628913] ------ blkaddr = 2590615, se->cur_valid_map = 8477f040 -------- [ 107.636142] ------ blkaddr = 2590616, se->cur_valid_map = 8477f040 -------- [ 107.643401] ------ blkaddr = 2590617, se->cur_valid_map = 8477f040 -------- [ 107.650785] ------ blkaddr = 2590618, se->cur_valid_map = 8477f040 -------- [ 107.657863] ------ blkaddr = 2590619, se->cur_valid_map = 8477f040 -------- [ 107.665287] ------ blkaddr = 2590620, se->cur_valid_map = 8477f040 -------- [ 107.672514] ------ blkaddr = 2590621, se->cur_valid_map = 8477f040 -------- [ 107.679892] ------ blkaddr = 2590622, se->cur_valid_map = 8477f040 -------- [ 107.686979] ------ blkaddr = 2590623, se->cur_valid_map = 8477f040 -------- [ 107.694408] ------ blkaddr = 2590624, se->cur_valid_map = 8477f040 -------- [ 107.701613] ------ blkaddr = 2590625, se->cur_valid_map = 8477f040 -------- [ 107.708976] ------ blkaddr = 2590626, se->cur_valid_map = 8477f040 -------- [ 107.716036] ------ blkaddr = 2590627, se->cur_valid_map = 8477f040 -------- [ 107.723434] ------ blkaddr = 2590628, se->cur_valid_map = 8477f040 -------- [ 107.730638] ------ blkaddr = 2590629, se->cur_valid_map = 8477f040 -------- [ 107.737701] ------ blkaddr = 2590630, se->cur_valid_map = 8477f040 -------- [ 107.745034] ------ blkaddr = 2590631, se->cur_valid_map = 8477f040 -------- [ 107.752257] ------ blkaddr = 2590632, se->cur_valid_map = 8477f040 -------- [ 107.759695] ------ blkaddr = 2590633, se->cur_valid_map = 8477f040 -------- [ 107.766755] ------ blkaddr = 2590634, se->cur_valid_map = 8477f040 -------- [ 107.774133] ------ blkaddr = 2590635, se->cur_valid_map = 8477f040 -------- [ 107.781378] ------ blkaddr = 2590636, se->cur_valid_map = 8477f040 -------- [ 107.788831] ------ blkaddr = 2590637, se->cur_valid_map = 8477f040 -------- [ 107.795915] ------ blkaddr = 2590638, se->cur_valid_map = 8477f040 -------- [ 107.803334] ------ blkaddr = 2590639, se->cur_valid_map = 8477f040 -------- [ 107.810548] ------ blkaddr = 2590640, se->cur_valid_map = 8477f040 -------- [ 107.817776] ------ blkaddr = 2590641, se->cur_valid_map = 8477f040 -------- [ 107.825163] ------ blkaddr = 2590642, se->cur_valid_map = 8477f040 -------- [ 107.832667] ------ blkaddr = 2590643, se->cur_valid_map = 8477f040 -------- [ 107.840013] ------ blkaddr = 2590644, se->cur_valid_map = 8477f040 -------- [ 107.847204] ------ blkaddr = 2590645, se->cur_valid_map = 8477f040 -------- [ 107.854562] ------ blkaddr = 2590646, se->cur_valid_map = 8477f040 -------- [ 107.861929] ------ blkaddr = 2590647, se->cur_valid_map = 8477f040 -------- [ 107.869446] ------ blkaddr = 2590648, se->cur_valid_map = 8477f040 -------- [ 107.876609] ------ blkaddr = 2590649, se->cur_valid_map = 8477f040 -------- [ 107.884136] ------ blkaddr = 2590650, se->cur_valid_map = 8477f040 -------- [ 107.891471] ------ blkaddr = 2590651, se->cur_valid_map = 8477f040 -------- [ 107.898956] ------ blkaddr = 2590652, se->cur_valid_map = 8477f040 -------- [ 107.906147] ------ blkaddr = 2590653, se->cur_valid_map = 8477f040 -------- [ 107.913694] ------ blkaddr = 2590654, se->cur_valid_map = 8477f040 -------- [ 107.920974] ------ blkaddr = 2590655, se->cur_valid_map = 8477f040 -------- [ 107.928101] ------ blkaddr = 2590656, se->cur_valid_map = 8477f040 -------- [ 107.935448] ------ blkaddr = 2590657, se->cur_valid_map = 8477f040 -------- [ 107.942806] ------ blkaddr = 2590658, se->cur_valid_map = 8477f040 -------- [ 107.950291] ------ blkaddr = 2590659, se->cur_valid_map = 8477f040 -------- [ 107.957491] ------ blkaddr = 2590660, se->cur_valid_map = 8477f040 -------- [ 107.965063] ------ blkaddr = 2590661, se->cur_valid_map = 8477f040 -------- [ 107.972400] ------ blkaddr = 2590662, se->cur_valid_map = 8477f040 -------- [ 107.980144] ------ blkaddr = 2590663, se->cur_valid_map = 8477f040 -------- [ 107.987381] ------ blkaddr = 2590664, se->cur_valid_map = 8477f040 -------- [ 107.994762] ------ blkaddr = 2590665, se->cur_valid_map = 8477f040 -------- [ 108.001921] ------ blkaddr = 2590666, se->cur_valid_map = 8477f040 -------- [ 108.009080] ------ blkaddr = 2590667, se->cur_valid_map = 8477f040 -------- [ 108.016066] ------ blkaddr = 2590668, se->cur_valid_map = 8477f040 -------- [ 108.023221] ------ blkaddr = 2590669, se->cur_valid_map = 8477f040 -------- [ 108.030320] ------ blkaddr = 2590670, se->cur_valid_map = 8477f040 -------- [ 108.037281] ------ blkaddr = 2590671, se->cur_valid_map = 8477f040 -------- [ 108.044410] ------ blkaddr = 2590672, se->cur_valid_map = 8477f040 -------- [ 108.051493] ------ blkaddr = 2590673, se->cur_valid_map = 8477f040 -------- [ 108.058450] ------ blkaddr = 2590674, se->cur_valid_map = 8477f040 -------- [ 108.065579] ------ blkaddr = 2590675, se->cur_valid_map = 8477f040 -------- [ 108.072669] ------ blkaddr = 2590676, se->cur_valid_map = 8477f040 -------- [ 108.079785] ------ blkaddr = 2590677, se->cur_valid_map = 8477f040 -------- [ 108.086742] ------ blkaddr = 2590678, se->cur_valid_map = 8477f040 -------- [ 108.093880] ------ blkaddr = 2590679, se->cur_valid_map = 8477f040 -------- [ 108.100968] ------ blkaddr = 2590680, se->cur_valid_map = 8477f040 -------- [ 108.107925] ------ blkaddr = 2590681, se->cur_valid_map = 8477f040 -------- [ 108.115050] ------ blkaddr = 2590682, se->cur_valid_map = 8477f040 -------- [ 108.122131] ------ blkaddr = 2590683, se->cur_valid_map = 8477f040 -------- [ 108.129212] ------ blkaddr = 2590684, se->cur_valid_map = 8477f040 -------- [ 108.136168] ------ blkaddr = 2590685, se->cur_valid_map = 8477f040 -------- [ 108.143287] ------ blkaddr = 2590686, se->cur_valid_map = 8477f040 -------- [ 108.150366] ------ blkaddr = 2590687, se->cur_valid_map = 8477f040 -------- [ 108.157324] ------ blkaddr = 2590688, se->cur_valid_map = 8477f040 -------- [ 108.164445] ------ blkaddr = 2590689, se->cur_valid_map = 8477f040 -------- [ 108.171525] ------ blkaddr = 2590690, se->cur_valid_map = 8477f040 -------- [ 108.178484] ------ blkaddr = 2590691, se->cur_valid_map = 8477f040 -------- [ 108.185609] ------ blkaddr = 2590692, se->cur_valid_map = 8477f040 -------- [ 108.192687] ------ blkaddr = 2590693, se->cur_valid_map = 8477f040 -------- [ 108.199764] ------ blkaddr = 2590694, se->cur_valid_map = 8477f040 -------- [ 108.206719] ------ blkaddr = 2590695, se->cur_valid_map = 8477f040 -------- [ 108.213837] ------ blkaddr = 2590696, se->cur_valid_map = 8477f040 -------- [ 108.221095] ------ blkaddr = 2590697, se->cur_valid_map = 8477f040 -------- [ 108.228540] ------ blkaddr = 2590698, se->cur_valid_map = 8477f040 -------- [ 108.235771] ------ blkaddr = 2590699, se->cur_valid_map = 8477f040 -------- [ 108.242902] ------ blkaddr = 2590700, se->cur_valid_map = 8477f040 -------- [ 108.250014] ------ blkaddr = 2590701, se->cur_valid_map = 8477f040 -------- [ 108.256973] ------ blkaddr = 2590702, se->cur_valid_map = 8477f040 -------- [ 108.264124] ------ blkaddr = 2590703, se->cur_valid_map = 8477f040 -------- [ 108.271229] ------ blkaddr = 2590704, se->cur_valid_map = 8477f040 -------- [ 108.278188] ------ blkaddr = 2590705, se->cur_valid_map = 8477f040 -------- [ 108.285433] ------ blkaddr = 2590706, se->cur_valid_map = 8477f040 -------- [ 108.292539] ------ blkaddr = 2590707, se->cur_valid_map = 8477f040 -------- [ 108.299629] ------ blkaddr = 2590708, se->cur_valid_map = 8477f040 -------- [ 108.306587] ------ blkaddr = 2590709, se->cur_valid_map = 8477f040 -------- [ 108.313718] ------ blkaddr = 2590710, se->cur_valid_map = 8477f040 -------- [ 108.320803] ------ blkaddr = 2590711, se->cur_valid_map = 8477f040 -------- [ 108.327760] ------ blkaddr = 2590712, se->cur_valid_map = 8477f040 -------- [ 108.334883] ------ blkaddr = 2590713, se->cur_valid_map = 8477f040 -------- [ 108.341966] ------ blkaddr = 2590714, se->cur_valid_map = 8477f040 -------- [ 108.349047] ------ blkaddr = 2590715, se->cur_valid_map = 8477f040 -------- [ 108.356004] ------ blkaddr = 2590716, se->cur_valid_map = 8477f040 -------- [ 108.363130] ------ blkaddr = 2590717, se->cur_valid_map = 8477f040 -------- [ 108.370210] ------ blkaddr = 2590718, se->cur_valid_map = 8477f040 -------- [ 108.377244] ------ prefree_segments = 0, free_segments = 807 ------ [ 108.383526] ------------[ cut here ]------------ [ 108.388231] WARNING: at /home/alex/work/s2l/s2l_linux_sdk/ambarella/kernel/linux-3.10/fs/f2fs/segment.c:1105 new_curseg+0x280/0x3b8 [f2fs]() ... [ 108.628965] ---[ end trace c59ce5906bb6d95e ]--- [ 108.633563] ------------[ cut here ]------------ [ 108.638240] WARNING: at /home/alex/work/s2l/s2l_linux_sdk/ambarella/kernel/linux-3.10/fs/f2fs/segment.c:1144 new_curseg+0x308/0x3b8 [f2fs]() ... [ 108.878788] ---[ end trace c59ce5906bb6d95f ]--- [ 108.885201] ------ segno = 7540, next_blkoff = 0, next_segno = 4294967295 -------- [ 108.892808] ------ blkaddr = 2590719, se->cur_valid_map = 8477f040 -------- [ 108.899825] ------ blkaddr = 3889152, se->cur_valid_map = (null) -------- [ 108.906800] Unable to handle kernel NULL pointer dereference at virtual address 00000000 ... [ 109.429454] ---[ end trace c59ce5906bb6d960 ]--- Thanks! -- Alexander ------------------------------------------------------------------------------ _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
