linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: srimugunthan dhandapani <srimugunthan.dhandapani@gmail.com>
To: "Jörn Engel" <joern@logfs.org>
Cc: linux-mtd@lists.infradead.org, linux-fsdevel@vger.kernel.org
Subject: Re: logfs unmount bug
Date: Wed, 31 Aug 2011 12:52:54 +0530	[thread overview]
Message-ID: <CAMjNe_d2pOC9+2nSy2PA=2aigF95vZv3_A-jPyWyTXteW3mqFw@mail.gmail.com> (raw)
In-Reply-To: <20110831055854.GA12713@logfs.org>

On Wed, Aug 31, 2011 at 11:28 AM, Jörn Engel <joern@logfs.org> wrote:

> I can do.  Can you ensure you have my patch applied, rerun the rest
> case and send me the kernel results?

I applied your patch1  and the bonnie output is the same(stuck at
"Creating  files in sequential order ..."). The kernel is from your
git directory(http://git.kernel.org/?p=linux/kernel/git/joern/logfs.git;a=summary)
I am pretty sure i applied the patch. The git diff output is below[1]

 The kernel log is at
 https://docs.google.com/leaf?id=0BycgLWCW61phNjY0ZDg4ZjUtYzAyMy00YTgwLWFlMmItNjlmZWIzMWFlNGUy&hl=en_US

While i still have your attention, i would like to point out at max
writepage size restriction in logfs. Currently logfs has a max
writepage size as 4K. Currently, large page nand flashes and MLC nand
come in  8K page sizes. As the usecase for logfs is large nand
flashes(mostly with parallel and DMA write capabilities),  it may be
essential to remove the 4K write page size restriction.
I was only able to change the logfs-tools for >4K writepage size. If
you send a patch, that makes logfs useable for writepagesize >4K, i
can try on real hardware, instead of nandsim and give you the results
:-)


[1]
diff --git a/fs/logfs/file.c b/fs/logfs/file.c
index c2ad702..ee3c76a 100644
--- a/fs/logfs/file.c
+++ b/fs/logfs/file.c
@@ -158,7 +158,6 @@ static int logfs_writepage(struct page *page, struct writeba
        zero_user_segment(page, offset, PAGE_CACHE_SIZE);
        return __logfs_writepage(page);
 }
-
 static void logfs_invalidatepage(struct page *page, unsigned long offset)
 {
        struct logfs_block *block = logfs_block(page);
@@ -166,12 +165,24 @@ static void logfs_invalidatepage(struct page *page, unsign
        if (block->reserved_bytes) {
                struct super_block *sb = page->mapping->host->i_sb;
                struct logfs_super *super = logfs_super(sb);
-
                super->s_dirty_pages -= block->reserved_bytes;
-               block->ops->free_block(sb, block);
-               BUG_ON(bitmap_weight(block->alias_map, LOGFS_BLOCK_FACTOR));
+       //      block->ops->free_block(sb, block);
+       //      BUG_ON(bitmap_weight(block->alias_map, LOGFS_BLOCK_FACTOR));
+               if (bitmap_weight(block->alias_map, LOGFS_BLOCK_FACTOR))
+               {
+                       printk(KERN_DEBUG"logfs_invalidatepage(%lx, %x, %llx)\n"
+                                       page->mapping->host->i_ino,
+                                       page->mapping->host->i_nlink,
+                                       page->mapping->host->i_size);
+                       move_page_to_btree(page);
+               } else
+               {
+                       block->ops->free_block(sb, block);
+               }
        } else
+       {
                move_page_to_btree(page);
+       }
        BUG_ON(PagePrivate(page) || page->private);
 }

diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h
index 9e74902..24c19a6 100644
--- a/fs/logfs/logfs.h
+++ b/fs/logfs/logfs.h
@@ -35,7 +35,9 @@
 #define LOGFS_DEBUG_BLOCKMOVE  (0x0400)
 #define LOGFS_DEBUG_ALL                (0xffffffff)

-#define LOGFS_DEBUG            (0x01)
+//#define LOGFS_DEBUG          (0x01)
+
+#define LOGFS_DEBUG LOGFS_DEBUG_ALL
 /*
  * To enable specific log messages, simply define LOGFS_DEBUG to match any
  * or all of the above.

Thanks,
mugunthan
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2011-08-31  7:22 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-04 19:35 logfs unmount bug srimugunthan dhandapani
2011-08-05 16:03 ` Jörn Engel
2011-08-06 14:09   ` srimugunthan dhandapani
2011-08-08  8:31     ` Jörn Engel
2011-08-08 14:44       ` srimugunthan dhandapani
2011-08-09 14:58         ` Jörn Engel
2011-08-10 11:06           ` srimugunthan dhandapani
2011-08-12  9:34             ` Jörn Engel
2011-08-12 17:26               ` srimugunthan dhandapani
2011-08-16 17:17                 ` Jörn Engel
2011-08-21 21:19                   ` srimugunthan dhandapani
2011-08-26 19:49                     ` Jörn Engel
2011-08-29 10:07                       ` srimugunthan dhandapani
2011-08-31  5:58                         ` Jörn Engel
2011-08-31  7:22                           ` srimugunthan dhandapani [this message]
2011-08-31  7:49                             ` Jörn Engel
2011-08-31 12:49                               ` srimugunthan dhandapani
2011-08-31 14:17                                 ` Jörn Engel
2011-09-01  6:08                                   ` srimugunthan dhandapani
2011-09-01  9:46                                     ` srimugunthan dhandapani
2011-09-01 21:34                                     ` Jörn Engel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMjNe_d2pOC9+2nSy2PA=2aigF95vZv3_A-jPyWyTXteW3mqFw@mail.gmail.com' \
    --to=srimugunthan.dhandapani@gmail.com \
    --cc=joern@logfs.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).