Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a58c3ef authored by Jan Kara's avatar Jan Kara Committed by Mark Fasheh
Browse files

[PATCH] ocfs2: Remove expensive bitmap scanning



Enable expensive bitmap scanning only if DEBUG option is enabled.
The bitmap scanning quite loads the CPU and on my machine the write
throughput of dd if=/dev/zero of=/ocfs2/file bs=1M count=500 conv=sync
improves from 37 MB/s to 45.4 MB/s in local mode...

Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent a46043e0
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -459,6 +459,15 @@ config OCFS2_DEBUG_MASKLOG
	  This option will enlarge your kernel, but it allows debugging of
	  ocfs2 filesystem issues.

config OCFS2_DEBUG_FS
	bool "OCFS2 expensive checks"
	depends on OCFS2_FS
	default n
	help
	  This option will enable expensive consistency checks. Enable
	  this option for debugging only as it is likely to decrease
	  performance of the filesystem.

config MINIX_FS
	tristate "Minix fs support"
	help
+3 −2
Original line number Diff line number Diff line
@@ -484,6 +484,7 @@ int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb,

	alloc = (struct ocfs2_dinode *) osb->local_alloc_bh->b_data;

#ifdef OCFS2_DEBUG_FS
	if (le32_to_cpu(alloc->id1.bitmap1.i_used) !=
	    ocfs2_local_alloc_count_bits(alloc)) {
		ocfs2_error(osb->sb, "local alloc inode %llu says it has "
@@ -494,6 +495,7 @@ int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb,
		status = -EIO;
		goto bail;
	}
#endif

	free_bits = le32_to_cpu(alloc->id1.bitmap1.i_total) -
		le32_to_cpu(alloc->id1.bitmap1.i_used);
@@ -712,9 +714,8 @@ static int ocfs2_sync_local_to_main(struct ocfs2_super *osb,
	void *bitmap;
	struct ocfs2_local_alloc *la = OCFS2_LOCAL_ALLOC(alloc);

	mlog_entry("total = %u, COUNT = %u, used = %u\n",
	mlog_entry("total = %u, used = %u\n",
		   le32_to_cpu(alloc->id1.bitmap1.i_total),
		   ocfs2_local_alloc_count_bits(alloc),
		   le32_to_cpu(alloc->id1.bitmap1.i_used));

	if (!alloc->id1.bitmap1.i_total) {