On Thu, Aug 25, 2016 at 01:30:09PM +0800, Wang Xiaoguang wrote: > Hi, > > On 08/24/2016 08:44 PM, David Sterba wrote: > > On Fri, Aug 19, 2016 at 05:59:46PM +0800, Wang Xiaoguang wrote: > >> The basic idea is simple. Assume a middle tree node A is shared and > >> its referenceing fs/file tree root ids are 5, 258 and 260, then we > >> only check node A in the tree who has the smallest root id. That means > >> in this case, when checking root tree(5), we check inode A, for root > >> tree 258 and 260, we can just skip it. > >> > >> Notice even with this patch, we still may visit a shared node or leaf > >> multiple times. This happens when a inode metadata occupies multiple > >> leaves. > >> > >> leaf_A leaf_B > >> When checking inode item in leaf_A, assume inode[512] have file extents > >> in leaf_B, and leaf_B is shared. In the case, for inode[512], we must > >> visit leaf_B to have inode item check. After finishing inode[512] check, > >> here we walk down tree root to leaf_B to check whether node or leaf > >> is shared, if some node or leaf is shared, we can just skip it and below > >> nodes or leaf's check. > >> > >> I also fill a disk partition with linux source codes and create 3 snapshots > >> in it. Before this patch, it averagely took 46s to finish one btrfsck > >> execution, with this patch, it averagely took 15s. > >> > >> Signed-off-by: Wang Xiaoguang <wangxg.fnst@xxxxxxxxxxxxxx> > > Can you please refresh the patch on top of current devel branch? I get > > too many conflicts to resolve. > This patch is to improve low memory mode fs/file tree check, but it seems > Lu Fengqi's low memory fs/file tree check patches are not merged into your > devel branch :) Are they not? The low-memory patchset has been released in 4.7.1, the devel branch is always on top of master branch. I see both branches pushed to the public git repos so I don't see what you mean. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
