linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Question about ubimkvol vs. mkfs.ubifs
@ 2008-04-06 23:53 Bruce_Leonard
  2008-04-07  0:23 ` Hamish Moffatt
  2008-04-07  7:27 ` Artem Bityutskiy
  0 siblings, 2 replies; 10+ messages in thread
From: Bruce_Leonard @ 2008-04-06 23:53 UTC (permalink / raw)
  To: linux-mtd

Hi all,

This is probably a basic question but I'll admit to being lost.  I'm 
relatively new to kernel coding and up till now I've been focused on the 
very low level stuff, i.e., making hardware work and LEDs go 
blinkey-blinkey.  Currently I'm working on a NAND flash driver that I need 
to tie into UBI/UBIFS.  I've got the driver working, I can 
read/write/erase my flash parts, so the low level stuff that I understand 
is good.  Now I'm working at the higher levels/user space levels that I 
don't understand as well.  Basically my question is, what is the 
difference between ubimkvol and mkfs.ubifs?  I can run through the 
following steps and everything works just fine near as I can tell:

insmod my_flash_driver
insmod ubi mtd=1
insmod ubifs
ubimkvol /dev/ubi0 -m -N ubifs
mount -t ubifs ubi0:ubifs /mnt/nand

Once I do all that I can read/write/copy/delete/etc files just fine on the 
NAND flash.  So, like I said it appears to be working just fine.  But 
everything I see on the mailing list seems to be saying I should be using 
mkfs.ubifs.  But if everything works and I'm mounting the device as a 
UBIFS filesystem, what (if anything) is mkfs.ubifs going to do for me that 
I don't already have done?

Oh, another question.  I've seen reference to an 'fs-test' that's supposed 
to be part of mtd-utils, but I can't seem to find it anywhere.  Can 
someone please point me to the sources?  Is it a good test to run?

Thanks for the help.

See 'ya!

Bruce

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-06 23:53 Question about ubimkvol vs. mkfs.ubifs Bruce_Leonard
@ 2008-04-07  0:23 ` Hamish Moffatt
  2008-04-07  2:42   ` Bruce_Leonard
  2008-04-07  7:27 ` Artem Bityutskiy
  1 sibling, 1 reply; 10+ messages in thread
From: Hamish Moffatt @ 2008-04-07  0:23 UTC (permalink / raw)
  To: linux-mtd

On Sun, Apr 06, 2008 at 04:53:37PM -0700, Bruce_Leonard@selinc.com wrote:
> Once I do all that I can read/write/copy/delete/etc files just fine on the 
> NAND flash.  So, like I said it appears to be working just fine.  But 
> everything I see on the mailing list seems to be saying I should be using 
> mkfs.ubifs.  But if everything works and I'm mounting the device as a 
> UBIFS filesystem, what (if anything) is mkfs.ubifs going to do for me that 
> I don't already have done?

mkfs.ubifs is for creating a ubifs image pre-populated with files eg
your root file system, similar to mkfs.jffs2, genext2fs, etc. You don't
need it to create a blank file system - in that case, just mount a blank
volume as you are doing now.


cheers
Hamish
-- 
Hamish Moffatt VK3SB <hamish@debian.org> <hamish@cloud.net.au>

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-07  0:23 ` Hamish Moffatt
@ 2008-04-07  2:42   ` Bruce_Leonard
  0 siblings, 0 replies; 10+ messages in thread
From: Bruce_Leonard @ 2008-04-07  2:42 UTC (permalink / raw)
  To: linux-mtd

> mkfs.ubifs is for creating a ubifs image pre-populated with files eg
> your root file system, similar to mkfs.jffs2, genext2fs, etc. You don't
> need it to create a blank file system - in that case, just mount a blank
> volume as you are doing now.

Okay, that makes sense.  Thanks Hamish.

See 'ya!

Bruce

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-06 23:53 Question about ubimkvol vs. mkfs.ubifs Bruce_Leonard
  2008-04-07  0:23 ` Hamish Moffatt
@ 2008-04-07  7:27 ` Artem Bityutskiy
  2008-04-07  7:37   ` Artem Bityutskiy
  2008-04-07 20:07   ` Bruce_Leonard
  1 sibling, 2 replies; 10+ messages in thread
From: Artem Bityutskiy @ 2008-04-07  7:27 UTC (permalink / raw)
  To: Bruce_Leonard; +Cc: linux-mtd

Hi,

On Sun, 2008-04-06 at 16:53 -0700, Bruce_Leonard@selinc.com wrote:
> This is probably a basic question but I'll admit to being lost.  I'm 
> relatively new to kernel coding and up till now I've been focused on the 
> very low level stuff, i.e., making hardware work and LEDs go 
> blinkey-blinkey.  Currently I'm working on a NAND flash driver that I need 
> to tie into UBI/UBIFS.  I've got the driver working, I can 
> read/write/erase my flash parts, so the low level stuff that I understand 
> is good. 

Is it a secret what is your flash and what is its size? If it is NAND
I'd recommend you to test it with Adrian's NAND tests:
git://infradead.org/~ahunter/nand-tests.git

> insmod my_flash_driver
> insmod ubi mtd=1
> insmod ubifs
> ubimkvol /dev/ubi0 -m -N ubifs
> mount -t ubifs ubi0:ubifs /mnt/nand

> Once I do all that I can read/write/copy/delete/etc files just fine on the 
> NAND flash.  So, like I said it appears to be working just fine.  But 
> everything I see on the mailing list seems to be saying I should be using 
> mkfs.ubifs.  But if everything works and I'm mounting the device as a 
> UBIFS filesystem, what (if anything) is mkfs.ubifs going to do for me that 
> I don't already have done?

As Hamish explained, you do not have to use mkfs.ubifs if you do not
need it. UBIFS can mount empty volumes just fine. 

In addition to what he said, mkfs.ubifs allows you to tune the
file-system. When you mount an empty volume, UBIFS formats it with
default settings: default journal size, default B-tree fanout, default
compression, etc. With mkfs.ubifs you may define different parameters,
e.g., use zlib instead of lzo, make larger journal, etc.

> Oh, another question.  I've seen reference to an 'fs-test' that's supposed 
> to be part of mtd-utils, but I can't seem to find it anywhere.  Can 
> someone please point me to the sources?  Is it a good test to run?

These are old tests Adrian wrote for JFFS2 and they sit at
mtd-utils.git/tests/fs-tests/. Some of the stress test scripts are
JFFS2-specific - you will notice. But they are easy to fix - just make
them not to run the "gcd_hupper" program. This is the only
JFFS2-specific thing.

Yes, I think this is a good idea to run them. Specifically, we are
extensively using the integrity test for UBIFS.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-07  7:27 ` Artem Bityutskiy
@ 2008-04-07  7:37   ` Artem Bityutskiy
  2008-04-07 20:07   ` Bruce_Leonard
  1 sibling, 0 replies; 10+ messages in thread
From: Artem Bityutskiy @ 2008-04-07  7:37 UTC (permalink / raw)
  To: Bruce_Leonard; +Cc: linux-mtd

On Mon, 2008-04-07 at 10:27 +0300, Artem Bityutskiy wrote:
> Hi,
> 
> On Sun, 2008-04-06 at 16:53 -0700, Bruce_Leonard@selinc.com wrote:
> > This is probably a basic question but I'll admit to being lost.  I'm 
> > relatively new to kernel coding and up till now I've been focused on the 
> > very low level stuff, i.e., making hardware work and LEDs go 
> > blinkey-blinkey.  Currently I'm working on a NAND flash driver that I need 
> > to tie into UBI/UBIFS.  I've got the driver working, I can 
> > read/write/erase my flash parts, so the low level stuff that I understand 
> > is good. 
> 
> Is it a secret what is your flash and what is its size? If it is NAND
> I'd recommend you to test it with Adrian's NAND tests:
> git://infradead.org/~ahunter/nand-tests.git

Just a note - be careful with torture test - it may harm. Although we
were unable to wear-out SLC OneNAND after even > 2 000 000 erases.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-07  7:27 ` Artem Bityutskiy
  2008-04-07  7:37   ` Artem Bityutskiy
@ 2008-04-07 20:07   ` Bruce_Leonard
  2008-04-08  5:43     ` Artem Bityutskiy
  1 sibling, 1 reply; 10+ messages in thread
From: Bruce_Leonard @ 2008-04-07 20:07 UTC (permalink / raw)
  To: dedekind; +Cc: linux-mtd

> 
> Is it a secret what is your flash and what is its size? If it is NAND
> I'd recommend you to test it with Adrian's NAND tests:
> git://infradead.org/~ahunter/nand-tests.git
> 
Nope, no secret.  We're using Samsung K9WAG08U1A NAND parts in 2GiB, 4GiB, 
and 8GiB configurations.  At least we're hoping to get the 4 and 8GiB 
configurations working.  I've run into a problem in the MTD layer with the 
size field.  It's a 32-bit field which isn't big enough to store 
0x100000000 or 0x200000000 which we need for the two larger 
configurations.  Just changing it to a 64-bit field introduces problems 
with other code, so we're looking at using more than one NAND controller 
in our FPGA and concatenating the NAND chips at the MTD level.

Anyway, thanks for the tip on the NAND tests.

Bruce

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-07 20:07   ` Bruce_Leonard
@ 2008-04-08  5:43     ` Artem Bityutskiy
  2008-04-08 16:45       ` Bruce_Leonard
  0 siblings, 1 reply; 10+ messages in thread
From: Artem Bityutskiy @ 2008-04-08  5:43 UTC (permalink / raw)
  To: Bruce_Leonard; +Cc: linux-mtd


On Mon, 2008-04-07 at 13:07 -0700, Bruce_Leonard@selinc.com wrote:
> > 
> > Is it a secret what is your flash and what is its size? If it is NAND
> > I'd recommend you to test it with Adrian's NAND tests:
> > git://infradead.org/~ahunter/nand-tests.git
> > 
> Nope, no secret.  We're using Samsung K9WAG08U1A NAND parts in 2GiB, 4GiB, 
> and 8GiB configurations.  At least we're hoping to get the 4 and 8GiB 
> configurations working.
If you are thinking about using UBI, it might be not fast enough if you
have slow I/O which is usually the case if there is not NAND controller.
But anyway, I would be very interested to know UBI attach time for your
flash.

>   I've run into a problem in the MTD layer with the 
> size field.  It's a 32-bit field which isn't big enough to store 
> 0x100000000 or 0x200000000 which we need for the two larger 
> configurations.  Just changing it to a 64-bit field introduces problems 
> with other code, so we're looking at using more than one NAND controller 
> in our FPGA and concatenating the NAND chips at the MTD level.

Well, I guess it should not be too difficult to fix these 64 bit issues.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-08  5:43     ` Artem Bityutskiy
@ 2008-04-08 16:45       ` Bruce_Leonard
  2008-04-08 16:51         ` Artem Bityutskiy
  2008-04-08 16:54         ` Artem Bityutskiy
  0 siblings, 2 replies; 10+ messages in thread
From: Bruce_Leonard @ 2008-04-08 16:45 UTC (permalink / raw)
  To: dedekind; +Cc: linux-mtd

> > > 
> > Nope, no secret.  We're using Samsung K9WAG08U1A NAND parts in 2GiB, 
4GiB, 
> > and 8GiB configurations.  At least we're hoping to get the 4 and 8GiB 
> > configurations working.
> If you are thinking about using UBI, it might be not fast enough if you
> have slow I/O which is usually the case if there is not NAND controller.
> But anyway, I would be very interested to know UBI attach time for your
> flash.

We're using a custom built PCI NAND controller.  Currently for the 2GiB 
case the mount time is about (I haven't timed it exactly) 3 seconds so it 
should be on the order of 12 seconds for the 8G case.  Which is acceptable 
for us because in the application we're putting this in boots will be rare 
(i.e., years between boots).

> 
> >   I've run into a problem in the MTD layer with the 
> > size field.  It's a 32-bit field which isn't big enough to store 
> > 0x100000000 or 0x200000000 which we need for the two larger 
> > configurations.  Just changing it to a 64-bit field introduces 
problems 
> > with other code, so we're looking at using more than one NAND 
controller 
> > in our FPGA and concatenating the NAND chips at the MTD level.
> 
> Well, I guess it should not be too difficult to fix these 64 bit issues.
> 

One would think so, but I keep running into division and modulo problems 
(because doing 64-bit division in the kernel is strongly frowned upon, for 
good reasons), and once I work through all those issues I get seg faults, 
etc, etc, etc.  You know...the usual development things ;).

I'll try and remember to get some exact mount times for you when we get 
things a bit more stable.

Thanks for the info.

See 'ya!

Bruce

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-08 16:45       ` Bruce_Leonard
@ 2008-04-08 16:51         ` Artem Bityutskiy
  2008-04-08 16:54         ` Artem Bityutskiy
  1 sibling, 0 replies; 10+ messages in thread
From: Artem Bityutskiy @ 2008-04-08 16:51 UTC (permalink / raw)
  To: Bruce_Leonard; +Cc: linux-mtd

On Tue, 2008-04-08 at 09:45 -0700, Bruce_Leonard@selinc.com wrote:
> One would think so, but I keep running into division and modulo problems 
> (because doing 64-bit division in the kernel is strongly frowned upon, for 
> good reasons), and once I work through all those issues I get seg faults, 
> etc, etc, etc.  You know...the usual development things ;).

Yeah. It will take time. It's shame MTD still has this limitation.

> I'll try and remember to get some exact mount times for you when we get 
> things a bit more stable.

I'd appreciate, thanks.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

* Re: Question about ubimkvol vs. mkfs.ubifs
  2008-04-08 16:45       ` Bruce_Leonard
  2008-04-08 16:51         ` Artem Bityutskiy
@ 2008-04-08 16:54         ` Artem Bityutskiy
  1 sibling, 0 replies; 10+ messages in thread
From: Artem Bityutskiy @ 2008-04-08 16:54 UTC (permalink / raw)
  To: Bruce_Leonard; +Cc: linux-mtd

On Tue, 2008-04-08 at 09:45 -0700, Bruce_Leonard@selinc.com wrote:
> One would think so, but I keep running into division and modulo problems 
> (because doing 64-bit division in the kernel is strongly frowned upon, for 
> good reasons), and once I work through all those issues I get seg faults, 
> etc, etc, etc.  You know...the usual development things ;).

Hmm. Do you divide 64-bit offset on eraseblock size? Could generally
make sense to change MTD interfaces to accept eraseblock:offset pair
instead?

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)

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

end of thread, other threads:[~2008-04-08 16:55 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-06 23:53 Question about ubimkvol vs. mkfs.ubifs Bruce_Leonard
2008-04-07  0:23 ` Hamish Moffatt
2008-04-07  2:42   ` Bruce_Leonard
2008-04-07  7:27 ` Artem Bityutskiy
2008-04-07  7:37   ` Artem Bityutskiy
2008-04-07 20:07   ` Bruce_Leonard
2008-04-08  5:43     ` Artem Bityutskiy
2008-04-08 16:45       ` Bruce_Leonard
2008-04-08 16:51         ` Artem Bityutskiy
2008-04-08 16:54         ` Artem Bityutskiy

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).