Linux NILFS development
 help / color / mirror / Atom feed
From: Andreas Rohner <andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
To: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Andreas Rohner <andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
Subject: [PATCH 0/1] nilfs2: add mount option that reduces super block writes
Date: Thu, 30 Jan 2014 03:46:59 +0100	[thread overview]
Message-ID: <cover.1391048231.git.andreas.rohner@gmx.net> (raw)
In-Reply-To: <CAFvQSYSu5CGxs+K6bZUCtq17PrS_paX3bXBuLBRTba_XWYGgAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi,

This is only a hacky proof of concept implementation and probably 
full of nasty bugs. I also havn't really tested it. I was 
just interested how hard it would be to implement Clemens' suggestion 
of writing the super block only at umount time and do a linear scan 
of all the segments in case of file system failure.

The linear scan is only performed if the file system wasn't shut down 
properly. So for normal operation there shouldn't be any slowdown.

I repurposed the ss_pad field of nilfs_segment_summary to contain the 
crc seed, because I needed a way to distinguish left over segments 
from previous nilfs2 volumes from real segments that are part of the 
current file system. 

I don't really expect it to be merged or anything. Maybe it can spark 
a discussion. Maybe somebody could try it out on an old SD-Card and 
time the mount command or something.

I tested it on a virtual machine. It seemed to recover fine when I 
killed the VM and mounted it again. Clearly more testing is 
necessary...

br,
Andreas Rohner

---
Andreas Rohner (1):
  nilfs2: add mount option that reduces super block writes

 fs/nilfs2/segbuf.c        |  3 ++-
 fs/nilfs2/segment.c       |  3 ++-
 fs/nilfs2/super.c         | 10 +++++++--
 fs/nilfs2/the_nilfs.c     | 54 ++++++++++++++++++++++++++++++++++++++++++++---
 include/linux/nilfs2_fs.h |  4 +++-
 5 files changed, 66 insertions(+), 8 deletions(-)

-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2014-01-30  2:46 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-15 10:44 Does nilfs2 do any in-place writes? Clemens Eisserer
     [not found] ` <CAFvQSYSzpX_WpUi9KpGj0pZvzhw2mfzzOqcgdj9ripXAjipmtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-15 10:52   ` Vyacheslav Dubeyko
2014-01-15 11:44     ` Clemens Eisserer
     [not found]       ` <CAFvQSYTG6HBVc9iodYyvCejwf889jiwOPsVb1Hi8cDrR9pOGeg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-15 12:01         ` Vyacheslav Dubeyko
2014-01-15 15:23           ` Ryusuke Konishi
     [not found]             ` <20140116.002353.94325733.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-01-16 10:08               ` Vyacheslav Dubeyko
2014-01-17 22:55                 ` Ryusuke Konishi
     [not found]                   ` <20140118.075519.43661574.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-01-20 11:54                     ` [writable snapshots discussion] " Vyacheslav Dubeyko
2014-01-18  0:00                 ` Ryusuke Konishi
     [not found]                   ` <20140118.090008.194171715.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-01-28  9:25                     ` [static superblock discussion] " Vyacheslav Dubeyko
     [not found]                       ` <1390901114.2942.11.camel-dzAnj6fV1RxGeWtTaGDT1UEK6ufn8VP3@public.gmane.org>
2014-01-29 12:44                         ` Andreas Rohner
     [not found]                           ` <52E8F7A7.8010505-hi6Y0CQ0nG0@public.gmane.org>
2014-01-29 13:19                             ` Vyacheslav Dubeyko
2014-01-29 18:18                         ` Clemens Eisserer
     [not found]                           ` <CAFvQSYSu5CGxs+K6bZUCtq17PrS_paX3bXBuLBRTba_XWYGgAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-30  2:46                             ` Andreas Rohner [this message]
     [not found]                               ` <cover.1391048231.git.andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-30  2:47                                 ` [PATCH 1/1] nilfs2: add mount option that reduces super block writes Andreas Rohner
     [not found]                                   ` <75ceb45c464097ab556baacf2d15d6ae4b792bb2.1391048231.git.andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-30  6:36                                     ` Vyacheslav Dubeyko
     [not found]                                       ` <127C78C3-9D47-439C-9639-263BC453D98D-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-01-30  6:02                                         ` Andreas Rohner
     [not found]                                           ` <52E9EB06.1000504-hi6Y0CQ0nG0@public.gmane.org>
2014-01-30  7:44                                             ` Vyacheslav Dubeyko
     [not found]                                               ` <8DBE8E18-F678-44B0-A6A6-5AFEC227AA86-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-01-30  6:52                                                 ` Andreas Rohner
2014-01-30  9:48                                                 ` Andreas Rohner
     [not found]                                                   ` <52EA2002.1030809-hi6Y0CQ0nG0@public.gmane.org>
2014-01-30 11:27                                                     ` Vyacheslav Dubeyko
     [not found]                                                       ` <A6830DB2-DC73-4ACC-BE73-7A6EC1AC7C18-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-01-30 11:33                                                         ` Andreas Rohner
     [not found]                                                           ` <52EA38A3.8060107-hi6Y0CQ0nG0@public.gmane.org>
2014-02-01 19:05                                                             ` Clemens Eisserer
2014-01-30  3:27                                 ` [PATCH 0/1] " Andreas Rohner
2014-01-30  5:29                                 ` Ryusuke Konishi
     [not found]                                   ` <20140130.142941.55837481.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-01-30  5:59                                     ` Andreas Rohner
2014-01-30  6:29                                     ` Andreas Rohner
     [not found]                                       ` <52E9F13A.5050805-hi6Y0CQ0nG0@public.gmane.org>
2014-01-30  8:46                                         ` Ryusuke Konishi
2014-01-30  8:35                             ` [static superblock discussion] Does nilfs2 do any in-place writes? Vyacheslav Dubeyko
     [not found]                               ` <71B2806D-7CF2-4992-A588-EB73EADFFF9F-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-01-30 10:09                                 ` Clemens Eisserer
     [not found]                                   ` <CAFvQSYQ84_BsqVC_ZM77P92jkP+1dh7NexvZWg4mFE7B3wSK0A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-30 12:42                                     ` Vyacheslav Dubeyko
     [not found]                                       ` <AE0F313D-5934-452B-80AB-5D691AF8A4BE-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-01-30 13:09                                         ` Clemens Eisserer
     [not found]                                           ` <CAFvQSYQGDXmUit1zFZ9_LAjdLjxM-i_yR2L6pwFDX_BEdjdXxQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-30 13:32                                             ` Vyacheslav Dubeyko
2014-01-30 14:03                                               ` Clemens Eisserer
     [not found]                                                 ` <CAFvQSYQ-qkXz677-obgHVN5fLQiF10-A=T2yNNAHKRcOGm_Pqw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-30 15:27                                                   ` Vyacheslav Dubeyko
     [not found]                                                     ` <720AFF13-6203-4A28-9850-3C2CAFF3B7BF-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2014-02-05 20:47                                                       ` Clemens Eisserer
     [not found]                                                         ` <CAFvQSYStT4uwxqtxATLbPOvHYjww=sw=C=f3vBi_qdu6MXAn5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-02-07  6:43                                                           ` Vyacheslav Dubeyko
2014-01-16 10:03           ` Clemens Eisserer
     [not found]             ` <CAFvQSYSC7+dd93pRH-uok9N+A_s=1VKrfGEppu3qRTg3q=CuXQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-01-16 10:10               ` Vyacheslav Dubeyko

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=cover.1391048231.git.andreas.rohner@gmx.net \
    --to=andreas.rohner-hi6y0cq0ng0@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.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