Skip to contentSkip to conversation

Compiling JFFS3

DISCUSSION Bernhard Priewasser 7 participants 25 messages Aug 10, 2005 – Aug 15, 2005 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

Hello,

when trying to compile JFFS3 kernel module out-of-the-box, I get (pathnames stripped):

Quoted 7 lines

~/mtd/fs/jffs3> make
make -C /lib/modules/2.6.11.4-21.7-default/build SUBDIRS=pwd mtd=pwd modules make[1]: Entering directory `/usr/src/linux-2.6.11.4-21.7'
CC [M] /mtd/fs/jffs3/compr.o
In file included from /mtd/fs/jffs3/nodelist.h:205,

                 from /mtd/fs/jffs3/compr.h:27,
                 from /mtd/fs/jffs3/compr.c:17:
Quoted 11 lines

/mtd/fs/jffs3/debug.h: In function `jffs3_dbg_wbuf_acct_sanity_check':
/mtd/fs/jffs3/debug.h:366: error: structure has no member named wbuf_pagesize' /mtd/fs/jffs3/debug.h:366: error: structure has no member named wbuf_len' /mtd/fs/jffs3/debug.h:367: error: structure has no member named wbuf_ofs' /mtd/fs/jffs3/debug.h:367: error: structure has no member named wbuf_len' /mtd/fs/jffs3/debug.h:367: error: structure has no member named wbuf_pagesize' /mtd/fs/jffs3/debug.h:367: error: structure has no member named wbuf_len' make[2]: *** [/mtd/fs/jffs3/compr.o] Error 1
make[1]: *** [_module_/mtd/fs/jffs3] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.11.4-21.7'
make: *** [modules] Error 2

In jffs3.h, line 296ff, the write-behind and oob stuff (wbuf_* ...) is not added because CONFIG_JFFS3_FS_WRITEBUFFER is not defined.

Have a look at mtd/include/linux/config.h, line 38. Shouldn't

Quoted 1 line

#define CONFIG_JFFS3_FS_WRITEBUFFER 1

be added there to consider JFFS_3_ too, not only JFFS_2_?

Regards,
Bernhard

#1 lore raw
Quoted 3 lines · Bernhard Priewasser

when trying to compile JFFS3 kernel module out-of-the-box, I get (pathnames stripped):

That's expected. JFFS3 was an attempt that didn't work out. Unless you are willing to spend several month of full time on the project, just forget about it and use JFFS2 instead.

I guess we should remove that whole tree soon, before more people are getting confused.

Jörn

Signature · 3 lines
Man darf nicht das, was uns unwahrscheinlich und unnatürlich erscheint,
mit dem verwechseln, was absolut unmöglich ist.
-- Carl Friedrich Gauß
#2 lore raw
Quoted 6 lines · Jörn Engel

That's expected. JFFS3 was an attempt that didn't work out. Unless you are willing to spend several month of full time on the project, just forget about it and use JFFS2 instead.

I guess we should remove that whole tree soon, before more people are getting confused.

Oh... seems I'm not up to date about the JFFS2/3/... ongoing, sorry.
I thought JFFS3 was intended basically containing Artem's improvements.
So what about "future" issues like scaling on large flashes and the other nice JFFS3 stuff?

Bernhard

#3 lore raw
Quoted 4 lines · Bernhard Priewasser

Oh... seems I'm not up to date about the JFFS2/3/... ongoing, sorry.
I thought JFFS3 was intended basically containing Artem's improvements.
So what about "future" issues like scaling on large flashes and the other nice JFFS3 stuff?

That's the old attempt to create a new flash FS with a JFFS2-like design. I've given up doing this and working on another JFFS3 design (see doc on MTD site). I did not implement my mew ideas. Thus, the old jffs3 must be removed.

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#4 lore raw
Quoted 1 line · Artem B. Bityuckiy

That's the old attempt to create a new flash FS with a JFFS2-like design. I've given up doing this and working on another JFFS3 design (see doc on MTD site). I did not implement my mew ideas. Thus, the old jffs3 must be removed.

Ferenc Havasi's improvements are doing well? Confusing...

#5 lore raw
Quoted 2 lines · Bernhard Priewasser

Ferenc Havasi's improvements are doing well? Confusing...

His improvements are going to go into JFFS2 AFAIK

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#6 lore raw
Quoted 3 lines · Artem B. Bityuckiy
Quoted 1 line · Bernhard Priewasser

Ferenc Havasi's improvements are doing well? Confusing...

His improvements are going to go into JFFS2 AFAIK

Ah, OK. To sum up (for my understanding): Ferenc's improvements (mount time, compression) were - beside others - part of JFFS3. JFFS3 design in its current form is not satisfactory, it will be cancelled. Anyway, Ferenc's improvements are good and should/will be merged into JFFS2. In parallel, there are some ideas for solving JFFS2 problems like described in the (very nice) "JFFS3 design issues" (scaling: mount time, memory consumption, access time). This will be the "new" JFFS3, current solutions for scaling and stuff are not available or not satisfactory. Correct until now? Still a bit confusing :)

Bernhard

#7 lore raw
Quoted 10 lines · Bernhard Priewasser

Ah, OK. To sum up (for my understanding): Ferenc's improvements (mount time, compression) were - beside others - part of JFFS3. JFFS3 design in its current form is not satisfactory, it will be cancelled. Anyway, Ferenc's improvements are good and should/will be merged into JFFS2. In parallel, there are some ideas for solving JFFS2 problems like described in the (very nice) "JFFS3 design issues" (scaling: mount time, memory consumption, access time). This will be the "new" JFFS3, current solutions for scaling and stuff are not available or not satisfactory. Correct until now? Still a bit confusing :)

Agree :-)

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#8 lore raw
Quoted 1 line · Artem B. Bityuckiy

Agree :-)

Fine! Finally I got it.

So, WHEN will there be a fast, robust JFFS3? :-) It's a pity that JFFS2 lags a bit with these scaling things.

Bernhard

#9 lore raw
Quoted 3 lines · Bernhard Priewasser

So, WHEN will there be a fast, robust JFFS3? :-) It's a pity that JFFS2 lags a bit with these scaling things.

Who knows. I'm working on this in background. Too much work for one person. First I hope to create (1) a good design, (2) a small and primitive implementation just to get sure my ideas are implentable.

Then more people may join me or somebody may sponsor the further development.

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#10 lore raw
In reply to Bernhard Priewasser
Quoted 2 lines · Bernhard Priewasser

To: [email protected]

Please always reply to all. I hate to miss interesting stuff, just because some idiot removed me from the Cc: list.

[ For political correctness' sake. I didn't call you an idiot yet. Only if you _continue_ to misbehave in this way, I _will_ call you that. So please... ;) ]

Quoted 5 lines
Quoted 3 lines · Artem B. Bityuckiy
Quoted 1 line · Bernhard Priewasser

Ferenc Havasi's improvements are doing well? Confusing...

His improvements are going to go into JFFS2 AFAIK

Quoted 9 lines

Ah, OK. To sum up (for my understanding): Ferenc's improvements (mount time, compression) were - beside others - part of JFFS3. JFFS3 design in its current form is not satisfactory, it will be cancelled. Anyway, Ferenc's improvements are good and should/will be merged into JFFS2. In parallel, there are some ideas for solving JFFS2 problems like described in the (very nice) "JFFS3 design issues" (scaling: mount time, memory consumption, access time). This will be the "new" JFFS3, current solutions for scaling and stuff are not available or not satisfactory. Correct until now? Still a bit confusing :)

The name "JFFS3" ist confusing. For that very reason, I consider it rightout harmful to call anything "JFFS3". Artem has a different opinion. It's a free world, everyone has the right to be wrong, if he so desires. ;)

JFFS has a strictly log-structured design. JFFS2 is still log-structured, although not strictly anymore. You could call it a chaptered log - strictly log-structured within a chapter, completely independent chapters. JFFS3 (the old one, which Artem just removed) was still supposed to be log-structured. So the name made sense. It was similar in design.

The next flash FS, whatever it will look like, will not be log structure anymore. At least, noone I know of is trying to follow that road anymore. Log-structuring simply doesn't scale. Therefore, this fundamental change in design should not be hidden behind a name like "JFFS3" - especially since it could also describe the last, failed approach.

Jörn

Signature · 2 lines
Schrödinger's cat is <BLINK>not</BLINK> dead.
-- Illiad
#11 lore raw

Jörn,

Quoted 4 lines

The name "JFFS3" ist confusing...

JFFS has a strictly log-structured design. JFFS2 is still log-structured,

log-structured == journaling ?

--
Steven

#12 lore raw
Quoted 7 lines · Steven Scholz
Quoted 5 lines

The name "JFFS3" ist confusing...

JFFS has a strictly log-structured design. JFFS2 is still log-structured,

log-structured == journaling ?

Not really, but opinions differ on this subject.

A journal is basically the same as a log. But a journaled fs has the journal/log _in addition_ to some other data layout. A log-structured fs _only_ has the journal/log.

JFFS2 is log-structured and the name is a bug, imo. My personal implementation of a JFFS2 successor is called LOGFS, btw. It makes perfect sence, since LOGFS is just as log-structured as JFFS2 is journaled - not at all. ;)

Jörn

Signature · 2 lines
Ninety percent of everything is crap.
-- Sturgeon's Law
#13 lore raw
Quoted 12 lines · Jörn Engel
Quoted 6 lines · Steven Scholz
Quoted 4 lines

The name "JFFS3" ist confusing...

JFFS has a strictly log-structured design. JFFS2 is still log-structured,

log-structured == journaling ?

Not really, but opinions differ on this subject.

Quoted 8 lines

A journal is basically the same as a log. But a journaled fs has the journal/log _in addition_ to some other data layout. A log-structured fs _only_ has the journal/log.

JFFS2 is log-structured and the name is a bug, imo. My personal implementation of a JFFS2 successor is called LOGFS, btw. It makes perfect sence, since LOGFS is just as log-structured as JFFS2 is journaled - not at all. ;)

;-)

However, I hope the new name will be easier pronouncable! ;-)

--
Steven

#14 lore raw
Quoted 1 line · Steven Scholz

However, I hope the new name will be easier pronouncable! ;-)

JFFS3 sounds cute and is pronounced easily, isn't it ? :-)

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#15 lore raw
Quoted 6 lines · Artem B. Bityuckiy
Quoted 1 line · Steven Scholz

However, I hope the new name will be easier pronouncable! ;-)

JFFS3 sounds cute and is pronounced easily, isn't it ? :-)

Well. Maybe for a russian tounge! ;-) I ask my colleague.

Shell we start looking for a new name before doing any design ... ;-)

--
Steven

#16 lore raw
Quoted 1 line · Steven Scholz

Shell we start looking for a new name before doing any design ... ;-)

Hehe, good joke :-)

First let's make something worthy, then we will call it somehow :-)

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
#17 lore raw
In reply to Steven Scholz
Quoted 2 lines · Steven Scholz

Shell we start looking for a new name before doing any design ... ;-)

Too late, design has already started in April. :-P

But some people have suggested a different name for logfs. My current list includes:

logfs
jffs3
jefs
engelfs
poofs
crapfs
sweetfs
cutefs

Feel free to add more. I don't have a strong preference, although some may be crappy advertisement. ;)

Jörn

Signature · 3 lines
A quarrel is quickly settled when deserted by one party; there is
no battle unless there be two.
-- Seneca
#18 lore raw

jefs

:) Easy for an American to say anyway.

Either way is the source up somewhere we can look at it?

Quoted 32 lines · Jörn Engel
Quoted 2 lines · Steven Scholz

Shell we start looking for a new name before doing any design ... ;-)

Too late, design has already started in April. :-P

But some people have suggested a different name for logfs. My current list includes:

logfs
jffs3
jefs
engelfs
poofs
crapfs
sweetfs
cutefs

Feel free to add more. I don't have a strong preference, although some may be crappy advertisement. ;)

Jörn

--
A quarrel is quickly settled when deserted by one party; there is no battle unless there be two.
-- Seneca

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#19 lore raw
Quoted 5 lines · Jared Hulbert

jefs

:) Easy for an American to say anyway.

Either way is the source up somewhere we can look at it?

No, Jörn is currently working in "man in the closet" mode :). At least I haven't been able to get code out of him yet.

josh

#20 lore raw
In reply to Jared Hulbert
Quoted 4 lines · Jared Hulbert

jefs

:) Easy for an American to say anyway.

Voting period hasn't started yet, but I'll try to remember.

Quoted 1 line

Either way is the source up somewhere we can look at it?

Not yet. First I want to get the basic functionality done. It doesn't have to be complete, but it has to do "something" well before I send it out.

Jörn

Signature · 4 lines
If System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <>
"" Then  CommandBars("Macro").Controls("Security...").Enabled = False
-- from the Melissa-source
#22 lore raw
In reply to Jörn Engel
Quoted 2 lines · Jörn Engel

Please always reply to all. I hate to miss interesting stuff, just because some idiot removed me from the Cc: list.

Better now? ;-)

Quoted 3 lines

The next flash FS, whatever it will look like, will not be log structure anymore. At least, noone I know of is trying to follow that road anymore. Log-structuring simply doesn't scale.

But log-structuring and handling failsafe issues works comfortable and reliable... What's another solution, in matters of (a) robustness and (b) scaling?

Bernhard

#23 lore raw
Quoted 4 lines · Bernhard Priewasser
Quoted 2 lines · Jörn Engel

Please always reply to all. I hate to miss interesting stuff, just because some idiot removed me from the Cc: list.

Better now? ;-)

Much, thank you.

Quoted 7 lines
Quoted 3 lines

The next flash FS, whatever it will look like, will not be log structure anymore. At least, noone I know of is trying to follow that road anymore. Log-structuring simply doesn't scale.

But log-structuring and handling failsafe issues works comfortable and reliable... What's another solution, in matters of (a) robustness and
(b) scaling?

Artem has described some of the necessary bits in his JFFS3 document. Ignoring the name, it is quite useful as an introduction.

Basic design must be tree-structured, just like ext2 and all the other well-known filesystems for hard disks. Main difference to ext2 is the requirement for out-of-place updates and garbage collection.

Most of the ugly details can be derived from these three simple principles.

Jörn

Signature · 3 lines
Beware of bugs in the above code; I have only proved it correct, but
not tried it.
-- Donald Knuth
#24 lore raw
In reply to Jörn Engel
Quoted 7 lines · Jörn Engel

That's expected. JFFS3 was an attempt that didn't work out. Unless you are willing to spend several month of full time on the project, just forget about it and use JFFS2 instead.

I guess we should remove that whole tree soon, before more people are getting confused.

Yeah, the jffs3 tree under MTD CVS is the first attempt to improve JFFS2. Now it should be removed.

Signature · 3 lines
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.