public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* New filesystem for Linux
@ 2006-11-02 21:52 Mikulas Patocka
  2006-11-02 22:32 ` Gabriel C
                   ` (7 more replies)
  0 siblings, 8 replies; 99+ messages in thread
From: Mikulas Patocka @ 2006-11-02 21:52 UTC (permalink / raw)
  To: linux-kernel

Hi

As my PhD thesis, I am designing and writing a filesystem, and it's now in 
a state that it can be released. You can download it from 
http://artax.karlin.mff.cuni.cz/~mikulas/spadfs/

It has some new features, such as keeping inode information directly in 
directory (until you create hardlink) so that ls -la doesn't seek much, 
new method to keep data consistent in case of crashes (instead of 
journaling), free space is organized in lists of free runs and converted 
to bitmap only in case of extreme fragmentation.

It is not very widely tested, so if you want, test it.

I have these questions:

* There is a rw semaphore that is locked for read for nearly all 
operations and locked for write only rarely. However locking for read 
causes cache line pingpong on SMP systems. Do you have an idea how to make 
it better?

It could be improved by making a semaphore for each CPU and locking for 
read only the CPU's semaphore and for write all semaphores. Or is there a 
better method?

* This leads to another observation --- on i386 locking a semaphore is 2 
instructions, on x86_64 it is a call to two nested functions. Has it some 
reason or was it just implementator's laziness? Given the fact that locked 
instruction takes 16 ticks on Opteron (and can overlap about 2 ticks with 
other instructions), it would make sense to have optimized semaphores too.

* How to implement ordered-data consistency? That would mean that on 
internal sync event, I'd have to flush all pages of a files that were 
extended. I could scan all dirty inodes and find pages to flush --- what 
kernel function would you recommend for doing it? Currently I call only 
sync_blockdev which doesn't touch buffers attached to pages.

Mikulas

^ permalink raw reply	[flat|nested] 99+ messages in thread
* Re: New filesystem for Linux
@ 2006-11-06 17:40 Al Boldi
  0 siblings, 0 replies; 99+ messages in thread
From: Al Boldi @ 2006-11-06 17:40 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: linux-kernel

Albert Cahalan wrote:
> On 11/4/06, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> > Albert Cahalan <acahalan@gmail.com> wrote:
> > > BTW, a person with disk recovery experience told me that drives
> > > will sometimes reorder the sectors. Sector 42 becomes sector 7732,
> > > sector 880880 becomes sector 12345, etc. The very best filesystems
> > > can handle with without data loss. (for example, ZFS) Merely great
> > > filesystems will at least recognize that the data has been trashed.
> >
> > Uh? This should be transparent to the host computer, so logical sector
> > numbers won't change.
>
> "should be" does not imply "won't"   :-)
>
> On a drive which is capable of remapping sectors, imagine what
> happens if the remapping data itself is corrupted. (the user data
> is perfectly fine and is not being relocated)

I would consider this a defective drive.

> What I mean is that the logical sector numbers not only change,
> but they are the only thing changing. The user data never moves
> to a different physical location, and is never intended to move.
> The user data is perfectly readable. It just appears in the wrong
> place as viewed by the OS.

Just like defective drive electronics; the data is ok, but the electronics 
corrupts the I/O.

No FS could help you there, AFAIK.

BTW, why is this thread not on fsdevel?


Thanks!

--
Al


^ permalink raw reply	[flat|nested] 99+ messages in thread

end of thread, other threads:[~2006-11-06 21:19 UTC | newest]

Thread overview: 99+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-02 21:52 New filesystem for Linux Mikulas Patocka
2006-11-02 22:32 ` Gabriel C
2006-11-03  1:22   ` Mikulas Patocka
2006-11-03  1:41     ` Andrew Morton
2006-11-03 17:14       ` Oleg Verych
2006-11-03 17:09         ` Mikulas Patocka
2006-11-03 17:36           ` Oleg Verych
2006-11-03 18:14             ` Mikulas Patocka
2006-11-03 19:08             ` Adrian Bunk
2006-11-03 19:32               ` Oleg Verych
2006-11-03 19:00         ` Alan Cox
2006-11-03 19:14           ` Andi Kleen
2006-11-03  2:09     ` Gabriel C
2006-11-03  8:26       ` Jan Engelhardt
2006-11-03 11:52         ` Mikulas Patocka
2006-11-03 11:59           ` Mikulas Patocka
2006-11-03 12:50             ` Jan Engelhardt
2006-11-03 18:48               ` Mikulas Patocka
2006-11-03 21:51                 ` Jan Engelhardt
2006-11-03 11:47       ` Mikulas Patocka
2006-11-02 22:53 ` Eric Dumazet
2006-11-03  1:28   ` Mikulas Patocka
2006-11-03  1:43     ` Andrew Morton
2006-11-04 18:40   ` Mikulas Patocka
2006-11-04 19:07     ` Eric Dumazet
2006-11-04 19:39     ` Tomasz Torcz
2006-11-05  1:58     ` Alan Cox
2006-11-05  2:09       ` Patrick McFarland
2006-11-05 13:03     ` Maurizio Lombardi
2006-11-05 20:16       ` H. Peter Anvin
2006-11-02 22:54 ` Grzegorz Kulewski
2006-11-02 23:10   ` Eric Dumazet
2006-11-02 23:19   ` Mikulas Patocka
2006-11-02 23:29     ` Grzegorz Kulewski
2006-11-03  1:34       ` Mikulas Patocka
2006-11-03 20:30         ` Christoph Lameter
2006-11-04 18:46           ` Mikulas Patocka
2006-11-05 12:02             ` Theodore Tso
2006-11-03 22:00         ` Oleg Verych
2006-11-03 22:42           ` Mikulas Patocka
2006-11-03  0:57     ` Nigel Cunningham
2006-11-03 13:05     ` Ric Wheeler
2006-11-06  2:42     ` Phillip Susi
2006-11-04 19:59   ` Albert Cahalan
2006-11-04 21:01     ` Jan-Benedict Glaw
2006-11-05 16:37       ` Albert Cahalan
2006-11-04 23:38     ` Mikulas Patocka
2006-11-04 23:46       ` Kyle Moffett
2006-11-05 20:26         ` H. Peter Anvin
2006-11-05 21:27           ` Rene Herman
2006-11-05 21:51             ` H. Peter Anvin
2006-11-06  0:36               ` Rene Herman
2006-11-05 21:49       ` Pavel Machek
2006-11-05  1:57     ` Alan Cox
2006-11-05 11:14       ` James Courtier-Dutton
2006-11-05 11:27         ` Brad Campbell
2006-11-05 12:37           ` Alan Cox
2006-11-06  2:48           ` Phillip Susi
2006-11-05 16:22         ` Albert Cahalan
2006-11-05 17:18       ` Mikulas Patocka
2006-11-05 18:14         ` Alan Cox
2006-11-05 18:18           ` Mikulas Patocka
2006-11-05 19:14             ` Alan Cox
2006-11-02 23:15 ` Linus Torvalds
2006-11-03 20:02   ` Paul E. McKenney
2006-11-02 23:41 ` Andi Kleen
2006-11-03  1:45   ` Mikulas Patocka
2006-11-03 13:47     ` Nikita Danilov
2006-11-03 14:39       ` Mikulas Patocka
2006-11-02 23:59 ` Jörn Engel
2006-11-03  1:19   ` Mikulas Patocka
2006-11-03 10:19     ` Jörn Engel
2006-11-03 11:56       ` Mikulas Patocka
2006-11-03 12:21         ` Jörn Engel
2006-11-03 13:31           ` Mikulas Patocka
2006-11-03 13:48             ` Jörn Engel
2006-11-03 14:19               ` Mikulas Patocka
2006-11-03 14:53                 ` Jörn Engel
2006-11-03 19:01                   ` Mikulas Patocka
2006-11-04 10:46                     ` Jörn Engel
2006-11-04 18:50                       ` Mikulas Patocka
2006-11-06 21:19                         ` Jörn Engel
2006-11-03 19:51             ` Adrian Bunk
2006-11-03 19:00     ` dean gaudet
2006-11-04 10:53       ` Jörn Engel
2006-11-04 11:13         ` dean gaudet
2006-11-04 20:07           ` Jörn Engel
2006-11-04 18:52       ` Mikulas Patocka
2006-11-04 18:56         ` Grzegorz Kulewski
2006-11-04 19:18           ` Mikulas Patocka
2006-11-04 17:37 ` Gautham R Shenoy
2006-11-04 18:27   ` Eric Dumazet
2006-11-05 22:33     ` Paul E. McKenney
2006-11-05  0:52 ` Linus Torvalds
2006-11-05  4:14   ` Mikulas Patocka
2006-11-05  8:34     ` Willy Tarreau
2006-11-05 11:31       ` Jan Engelhardt
2006-11-05 14:48     ` Bruno Cesar Ribas
  -- strict thread matches above, loose matches on Subject: below --
2006-11-06 17:40 Al Boldi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox