All of lore.kernel.org
 help / color / mirror / Atom feed
* MLC Support in JFFS2
@ 2009-06-22  5:56 apgmoorthy
  2009-06-22  7:47 ` Artem Bityutskiy
  0 siblings, 1 reply; 17+ messages in thread
From: apgmoorthy @ 2009-06-22  5:56 UTC (permalink / raw)
  To: 'David Woodhouse'
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd

Hi David,

Currenlty , Is there a way to use JFFS2 with MLC Memories ?

If not , Felt that any one of the following patch can be of use

1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
          - Which removes the Clean Marker.

2. http://lists.infradead.org/pipermail/linux-mtd/2008-September/023101.html
   http://lists.infradead.org/pipermail/linux-mtd/2008-September/023044.html 
          - Leaving 1page/Block , for Clean Marker.

or some other solution, which solves the standoff.   

Without MLC Support , Flex-OneNAND is unsuable with JFFS2.

With Regards
  Moorthy

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

* Re: MLC Support in JFFS2
  2009-06-22  5:56 MLC Support in JFFS2 apgmoorthy
@ 2009-06-22  7:47 ` Artem Bityutskiy
  2009-06-22 13:33   ` apgmoorthy
  0 siblings, 1 reply; 17+ messages in thread
From: Artem Bityutskiy @ 2009-06-22  7:47 UTC (permalink / raw)
  To: apgmoorthy
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd, 'David Woodhouse'

apgmoorthy wrote:
> Hi David,
> 
> Currenlty , Is there a way to use JFFS2 with MLC Memories ?
> 
> If not , Felt that any one of the following patch can be of use
> 
> 1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
>           - Which removes the Clean Marker.
> 
> 2. http://lists.infradead.org/pipermail/linux-mtd/2008-September/023101.html
>    http://lists.infradead.org/pipermail/linux-mtd/2008-September/023044.html 
>           - Leaving 1page/Block , for Clean Marker.
> 
> or some other solution, which solves the standoff.   
> 
> Without MLC Support , Flex-OneNAND is unsuable with JFFS2.

Is JFFS2 usable with Flex-OneNAND by design? I thought it would have
to be able to handle paired pages to become MLC-compatible. Does it
do that?

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

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

* RE: MLC Support in JFFS2
  2009-06-22  7:47 ` Artem Bityutskiy
@ 2009-06-22 13:33   ` apgmoorthy
  2009-06-22 13:41     ` Artem Bityutskiy
  0 siblings, 1 reply; 17+ messages in thread
From: apgmoorthy @ 2009-06-22 13:33 UTC (permalink / raw)
  To: 'Artem Bityutskiy'
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd, 'David Woodhouse'

Hi Artem ,  

On Monday, June 22, 2009 1:18 PM Artem Bityutskiy wrote :
 
>> Currenlty , Is there a way to use JFFS2 with MLC Memories ?
>> 
>> If not , Felt that any one of the following patch can be of use
>> 
>> 1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
>>           - Which removes the Clean Marker.
>> 
>> 2. http://lists.infradead.org/pipermail/linux-mtd/2008-September/023101.html
>>    http://lists.infradead.org/pipermail/linux-mtd/2008-September/023044.html 
>>           - Leaving 1page/Block , for Clean Marker.
>> 
>> or some other solution, which solves the standoff.   
>> 
>> Without MLC Support , Flex-OneNAND is unsuable with JFFS2.

>Is JFFS2 usable with Flex-OneNAND by design? I thought it would have to be able to handle paired pages to become MLC-compatible. Does it do that?

Yes it do that .
There are two things in Handling MLCs
1.Paired Page Handling
This is done in Flex-OneNAND Driver.
flexonenand_lsb_page_recovery will handle that in MLC area. 

2.NOP==1
This scenario has to be dealt in synchronization with JFFS2.
This is what i asked about. 
Pathces , in the links(above)are addressing this.

With Regards
 Moorthy

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

* RE: MLC Support in JFFS2
  2009-06-22 13:33   ` apgmoorthy
@ 2009-06-22 13:41     ` Artem Bityutskiy
  0 siblings, 0 replies; 17+ messages in thread
From: Artem Bityutskiy @ 2009-06-22 13:41 UTC (permalink / raw)
  To: apgmoorthy
  Cc: 'Amit Kumar Sharma', vishak.g, 'Artem Bityutskiy',
	'Amul Saha',
	kyungmin.park, linux-mtd, 'David Woodhouse'

On Mon, 2009-06-22 at 19:03 +0530, apgmoorthy wrote:
> Yes it do that .
> There are two things in Handling MLCs
> 1.Paired Page Handling
> This is done in Flex-OneNAND Driver.
> flexonenand_lsb_page_recovery will handle that in MLC area. 

Ah, ok you do this at the driver level - good.

> 2.NOP==1
> This scenario has to be dealt in synchronization with JFFS2.
> This is what i asked about. 
> Pathces , in the links(above)are addressing this.

OK, I see.

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

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

* Re: MLC Support in JFFS2
  2010-04-15 21:03                                       ` massimo cirillo
@ 2010-04-15 21:26                                         ` massimo cirillo
  0 siblings, 0 replies; 17+ messages in thread
From: massimo cirillo @ 2010-04-15 21:26 UTC (permalink / raw)
  To: Raghav Gupta
  Cc: Amit Kumar Sharma, dedekind, apgmoorthy, Amul Kumar Saha,
	kyungmin.park, linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Resending the message due to a Mail Delivery
error returned by raghav.gupta@partner.samsung.com.

2010/4/15 massimo cirillo <maxcir@gmail.com>:
> yes,
> the update only at the unmount and the usage of the commit
> mark are ok for me.
>
> 2010/4/15 Raghav Gupta <raghav.gupta@partner.samsung.com>:
>> Resending it due to formatting issues. My bad.
>>
>> Hi,
>>
>>> I agree with you, and the following is my thinking.
>>> Let's suppose we have a flash with 2KB page, 128KB block,
>>> 4096 blocks (512MB as size of the flash).
>>> The cleanmarker would take one page for every block, so the
>>> wasted space is 2KB*4096=8MB. Instead if we put the erased
>>> info in a single block (TOKEN_BLOCK) we waste only 128KB.
>>> But we need to consider the overhead in the management of
>>> such a block. We need to store information for 4096 blocks,
>>> for example an array of 4096 bit (1=erased, 0=not erased),
>>> protected by ECC (against read error) and CRC (against
>>> power loss in writing the array on the block). We need 2 pages
>>> for each instance of the array. The question is: how often do we
>>> need to update this array? If we choose to update each time it is
>>> needed (that is when a block is  just erased and just before a block
>>> is taken from the free list), at the 32nd update we should erase the
>>> TOKEN_BLOCK and allocate a new one. IMO this overhead is
>>> unacceptable in terms of time performance. So we update the info
>>> only at the unmount and when the system is idle.
>>> Moreover, there is the problem of power loss between two updates:
>>> how to recognize at the mount that the array info is updated? In my
>>> opinion the solution is to write an invalidation mark (one page with
>>> all zeros) just after the instance of the array when the instance
>>> becomes invalid.
>>
>>
>> Yes, I agree with you. The overhead involved in updating the token block
>> on every change in the "ready_to_use" list is unacceptable.
>> So, we can update the TOKEN_BLOCK only at unmount.
>>
>> Also we can authenticate that the TOKEN_BLOCK as valid
>> by using a "valid/invalid flag"(commit mark)
>>
>> And to guard against reading of an older version of
>> a TOKEN_BLOCK (on power failure) as valid by immediately
>> deleting the block on retrieval of the 'ready_to_use' list.
>>
>> Regards,
>> Raghav Gupta
>>
>>
>>
>

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

* Re: MLC Support in JFFS2
       [not found]                                     ` <D4189C368A9B4BD986B7B98A0F05953B@sisodomain.com>
@ 2010-04-15 21:03                                       ` massimo cirillo
  2010-04-15 21:26                                         ` massimo cirillo
  0 siblings, 1 reply; 17+ messages in thread
From: massimo cirillo @ 2010-04-15 21:03 UTC (permalink / raw)
  To: Raghav Gupta
  Cc: Amit Kumar Sharma, dedekind, apgmoorthy, Amul Kumar Saha,
	kyungmin.park, linux-mtd, raghav.gupta, v.dalal, David Woodhouse

yes,
the update only at the unmount and the usage of the commit
mark are ok for me.

2010/4/15 Raghav Gupta <raghav.gupta@partner.samsung.com>:
> Resending it due to formatting issues. My bad.
>
> Hi,
>
>> I agree with you, and the following is my thinking.
>> Let's suppose we have a flash with 2KB page, 128KB block,
>> 4096 blocks (512MB as size of the flash).
>> The cleanmarker would take one page for every block, so the
>> wasted space is 2KB*4096=8MB. Instead if we put the erased
>> info in a single block (TOKEN_BLOCK) we waste only 128KB.
>> But we need to consider the overhead in the management of
>> such a block. We need to store information for 4096 blocks,
>> for example an array of 4096 bit (1=erased, 0=not erased),
>> protected by ECC (against read error) and CRC (against
>> power loss in writing the array on the block). We need 2 pages
>> for each instance of the array. The question is: how often do we
>> need to update this array? If we choose to update each time it is
>> needed (that is when a block is  just erased and just before a block
>> is taken from the free list), at the 32nd update we should erase the
>> TOKEN_BLOCK and allocate a new one. IMO this overhead is
>> unacceptable in terms of time performance. So we update the info
>> only at the unmount and when the system is idle.
>> Moreover, there is the problem of power loss between two updates:
>> how to recognize at the mount that the array info is updated? In my
>> opinion the solution is to write an invalidation mark (one page with
>> all zeros) just after the instance of the array when the instance
>> becomes invalid.
>
>
> Yes, I agree with you. The overhead involved in updating the token block
> on every change in the "ready_to_use" list is unacceptable.
> So, we can update the TOKEN_BLOCK only at unmount.
>
> Also we can authenticate that the TOKEN_BLOCK as valid
> by using a "valid/invalid flag"(commit mark)
>
> And to guard against reading of an older version of
> a TOKEN_BLOCK (on power failure) as valid by immediately
> deleting the block on retrieval of the 'ready_to_use' list.
>
> Regards,
> Raghav Gupta
>
>
>

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

* Re: MLC Support in JFFS2
  2010-04-09  9:21                                 ` Amul Kumar Saha
@ 2010-04-13  9:45                                   ` massimo cirillo
       [not found]                                     ` <D4189C368A9B4BD986B7B98A0F05953B@sisodomain.com>
  0 siblings, 1 reply; 17+ messages in thread
From: massimo cirillo @ 2010-04-13  9:45 UTC (permalink / raw)
  To: Amul Kumar Saha
  Cc: Amit Kumar Sharma, dedekind, apgmoorthy, kyungmin.park,
	linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Hi,
I agree with you, and the following is my thinking.
Let's suppose we have a flash with 2KB page, 128KB block,
4096 blocks (512MB as size of the flash).
The cleanmarker would take one page for every block, so the
wasted space is 2KB*4096=8MB. Instead if we put the erased
info in a single block (TOKEN_BLOCK) we waste only 128KB.
But we need to consider the overhead in the management of
such a block. We need to store information for 4096 blocks,
for example an array of 4096 bit (1=erased, 0=not erased),
protected by ECC (against read error) and CRC (against
power loss in writing the array on the block). We need 2 pages
for each instance of the array. The question is: how often do we
need to update this array? If we choose to update each time it is
needed (that is when a block is  just erased and just before a block
is taken from the free list), at the 32nd update we should erase the
TOKEN_BLOCK and allocate a new one. IMO this overhead is
unacceptable in terms of time performance. So we update the info
only at the unmount and when the system is idle.
Moreover, there is the problem of power loss between two updates:
how to recognize at the mount that the array info is updated? In my
opinion the solution is to write an invalidation mark (one page with
all zeros) just after the instance of the array when the instance
becomes invalid.

Bye

2010/4/9 Amul Kumar Saha <amul.saha@samsung.com>:
> Hi,
>
>
>>Ok,
>>but at the remount how do you verify if the TOKEN_BLOCK
>>is updated or not (in case of power loss) ? I suggest using
>>a commit mark (one page wasted) at the end of the update
>>procedure.
>>So you'll have in the TOKEN_BLOCK the following layout:
>>
>>MAGIC_NUMBER of the TOKEN_BLOCK
>>ready_to_use info
>>commit mark
>>
>>What do you think ?
>>
>
> Yes.
> However, the TOKEN_BLOCK update would then
> only be limited to mount and unmount.
> As writing a commit mark while the system is still running,
> would validate an invalid block on abrupt power-off.
>
> Regards,
> Amul
>
>
>

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

* Re: MLC Support in JFFS2
  2010-04-05 11:52                               ` massimo cirillo
@ 2010-04-09  9:21                                 ` Amul Kumar Saha
  2010-04-13  9:45                                   ` massimo cirillo
  0 siblings, 1 reply; 17+ messages in thread
From: Amul Kumar Saha @ 2010-04-09  9:21 UTC (permalink / raw)
  To: massimo cirillo
  Cc: Amit Kumar Sharma, dedekind, apgmoorthy, kyungmin.park,
	linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Hi,


>Ok,
>but at the remount how do you verify if the TOKEN_BLOCK
>is updated or not (in case of power loss) ? I suggest using
>a commit mark (one page wasted) at the end of the update
>procedure.
>So you'll have in the TOKEN_BLOCK the following layout:
>
>MAGIC_NUMBER of the TOKEN_BLOCK
>ready_to_use info
>commit mark
>
>What do you think ?
>

Yes.
However, the TOKEN_BLOCK update would then
only be limited to mount and unmount.
As writing a commit mark while the system is still running,
would validate an invalid block on abrupt power-off.

Regards,
Amul 

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

* Re: MLC Support in JFFS2
  2010-04-05 11:10                             ` Amul Kumar Saha
@ 2010-04-05 11:52                               ` massimo cirillo
  2010-04-09  9:21                                 ` Amul Kumar Saha
  0 siblings, 1 reply; 17+ messages in thread
From: massimo cirillo @ 2010-04-05 11:52 UTC (permalink / raw)
  To: Amul Kumar Saha
  Cc: Amit Kumar Sharma, dedekind, kyungmin.park, apgmoorthy,
	linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Ok,
but at the remount how do you verify if the TOKEN_BLOCK
is updated or not (in case of power loss) ? I suggest using
a commit mark (one page wasted) at the end of the update
procedure.
So you'll have in the TOKEN_BLOCK the following layout:

MAGIC_NUMBER of the TOKEN_BLOCK
ready_to_use info
commit mark

What do you think ?

2010/4/5 Amul Kumar Saha <amul.saha@samsung.com>:
> Hi,
>
>>> 3. Write the TOKEN_BLOCK's MAGIC_NUMBER in the OOB Area alongwith the
>>>  ready_to_use info, in the Main Area.
>> I think you should protect each ready_to_use block info in the TOKEN_BLOCK
>> with a CRC - as it was a node of JFFS2 - against power loss corruption.
>>
>
> Sure, I'll take that into account.
>
>>> 4. On next update, ask GC to provide a fresh block.
>> What do you mean ? Each time a block is erased do you
>> update the TOKEN_BLOCK by using a new one ?
>>
>
> No.
> That would be done only during a proper unmount or idle time.
> As this block just contains ready_to_use block info,
> that can be reconstructed, on remount.
> Because any updation on fixed intervals will not be of use.
> Neither will it be feasbale to update the TOKEN_BLOCK on every erase.
> Please do comment.
>
> Regards,
> Amul
>
>
>

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

* Re: MLC Support in JFFS2
  2010-03-31 13:07                           ` massimo cirillo
@ 2010-04-05 11:10                             ` Amul Kumar Saha
  2010-04-05 11:52                               ` massimo cirillo
  0 siblings, 1 reply; 17+ messages in thread
From: Amul Kumar Saha @ 2010-04-05 11:10 UTC (permalink / raw)
  To: massimo cirillo
  Cc: Amit Kumar Sharma, dedekind, kyungmin.park, apgmoorthy,
	linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Hi,

>> 3. Write the TOKEN_BLOCK's MAGIC_NUMBER in the OOB Area alongwith the
>>  ready_to_use info, in the Main Area.
> I think you should protect each ready_to_use block info in the TOKEN_BLOCK
> with a CRC - as it was a node of JFFS2 - against power loss corruption.
>

Sure, I'll take that into account.

>> 4. On next update, ask GC to provide a fresh block.
> What do you mean ? Each time a block is erased do you
> update the TOKEN_BLOCK by using a new one ?
>

No.
That would be done only during a proper unmount or idle time.
As this block just contains ready_to_use block info,
that can be reconstructed, on remount.
Because any updation on fixed intervals will not be of use.
Neither will it be feasbale to update the TOKEN_BLOCK on every erase.
Please do comment.

Regards,
Amul 

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

* Re: MLC Support in JFFS2
  2010-03-31  9:53                         ` Amul Kumar Saha
@ 2010-03-31 13:07                           ` massimo cirillo
  2010-04-05 11:10                             ` Amul Kumar Saha
  0 siblings, 1 reply; 17+ messages in thread
From: massimo cirillo @ 2010-03-31 13:07 UTC (permalink / raw)
  To: Amul Kumar Saha
  Cc: Amit Kumar Sharma, dedekind, apgmoorthy, kyungmin.park,
	linux-mtd, raghav.gupta, v.dalal, David Woodhouse

Hi Amul,

> 3. Write the TOKEN_BLOCK's MAGIC_NUMBER in the OOB Area alongwith the
>  ready_to_use info, in the Main Area.
I think you should protect each ready_to_use block info in the TOKEN_BLOCK
with a CRC - as it was a node of JFFS2 - against power loss corruption.

> 4. On next update, ask GC to provide a fresh block.
What do you mean ? Each time a block is erased do you
update the TOKEN_BLOCK by using a new one ?

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

* Re: MLC Support in JFFS2
  2009-06-22 19:15                       ` MLC Support in JFFS2 David Woodhouse
  2009-06-23 12:52                         ` apgmoorthy
@ 2010-03-31  9:53                         ` Amul Kumar Saha
  2010-03-31 13:07                           ` massimo cirillo
  1 sibling, 1 reply; 17+ messages in thread
From: Amul Kumar Saha @ 2010-03-31  9:53 UTC (permalink / raw)
  To: David Woodhouse, linux-mtd, dedekind
  Cc: 'Amit Kumar Sharma',
	kyungmin.park, raghav.gupta, apgmoorthy, v.dalal

Hi David,

We have come up with an alternate solution to support MLC devices on JFFS2.

>>
>> Currenlty , Is there a way to use JFFS2 with MLC Memories ( NOP == 1 )?
>>
>> If not , Felt that any one of the following patch can be of use
>>
>> 1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
>>           - Which removes the Clean Marker.
>
> There was a reason for the cleanmarker -- it saved us from using
> partly-erased blocks for data. Do you have some other way to guarantee
> that this won't happen?
>
> (Sorry, I think we may have had this discussion before, but I've
> forgotten the conclusion, if there was one. It was academic at the time,
> since we didn't have any solution for the paired-page insanity anyway. I
> was mostly just burying my head in the sand and hoping this stupid 'MLC'
> crap would go away.)

New approach:-

We will have something known as the TOKEN_BLOCK.

TOKEN_BLOCK: A block used to store all the ready_to_use blocks related info.

ready_to_use blocks: These are blocks which are erased and ready to use,
 but don't have a usual CLEANMARKER on them. To save NOP for
 the 1st page of each block.

How it works:
1. Ask GC to provide a block, and use it as TOKEN_BLOCK on need basis.
2. In the provided block, we store all ready_to_use block info.
3. On remount; this info needs to be retreived.
    So, we shall make use of MAGIC_NUMBER signifying TOKEN_BLOCK,
    to identify the block containing the info.

Scan has to be modified, to identify the TOKEN_BLOCK and act accordingly.

Handling TOKEN_BLOCK
1. Make request for a block to be used as TOKEN_BLOCK.
2. List all the ready_to_use block info on the TOKEN_BLOCK contiguously.
3. Write the TOKEN_BLOCK's MAGIC_NUMBER in the OOB Area alongwith the
 ready_to_use info, in the Main Area.
4. On next update, ask GC to provide a fresh block.
5. Update this block accordingly as TOKEN_BLOCK.
6. Discard the previous TOKEN_BLOCK, and put it on dirty_list.

Let me know, about the feasibility of this design from your perspective.

This is just a base plan, and obvisouly there are a lot of things that have to be looked
into, before getting into the real imlpementation.

Regards,
Amul Kumar Saha

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

* RE: MLC Support in JFFS2
  2009-06-23 13:19                           ` David Woodhouse
@ 2009-06-24  6:50                             ` apgmoorthy
  0 siblings, 0 replies; 17+ messages in thread
From: apgmoorthy @ 2009-06-24  6:50 UTC (permalink / raw)
  To: 'David Woodhouse'
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd

 
On Tuesday, June 23, 2009 6:50 PM David Woodhouse wrote:
 
> Your mail program is behaving very strangely -- your quotes are quite
> hard to read. Is there any chance you could use a better one? 

- Earlier Mailer had some issues , Now using a different one.
   
> So instead of erasing blocks without cleanmarker _immediately_ on
> startup, we just put them on a 'to be erased' list. Whenever the
> empty_list is getting short of blocks, we erase another block from the
> 'to be erased' list and move it to the empty list.
> 
> It does mean that if you keep rebooting over and over again, you're
> probably going to increase your erase count. But with a long-lived
> system, it's likely to be more efficient than the large cleanmarker?
> 
> What do you think?
> 

- Yes , the solution looks a better tradeoff.
  Will work in that direction and get a pacth.
  Later we can look into a way to optimize erase count. 

With Regards
 Moorthy

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

* RE: MLC Support in JFFS2
  2009-06-23 12:52                         ` apgmoorthy
@ 2009-06-23 13:19                           ` David Woodhouse
  2009-06-24  6:50                             ` apgmoorthy
  0 siblings, 1 reply; 17+ messages in thread
From: David Woodhouse @ 2009-06-23 13:19 UTC (permalink / raw)
  To: apgmoorthy
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd


Your mail program is behaving very strangely -- your quotes are quite
hard to read. Is there any chance you could use a better one? I've tried
to clean it up, but it tends to make your replies hard to read. Some of
your replies are lacking correct References: headers too, so the
threading is broken.

On Tue, 2009-06-23 at 18:22 +0530, apgmoorthy wrote:
> >There was a reason for the cleanmarker -- it saved us from using 
> > partly-erased blocks for data. Do you have some other way to
> > guarantee that this won't happen?
>
> - How about the second One (Refer Below Links), which leaves
> 1page/block for Cleanmarker.
> 
> http://lists.infradead.org/pipermail/linux-mtd/2008-September/023101.html   http://lists.infradead.org/pipermail/linux-mtd/2008-September/023044.html 

Using one page per block for the cleanmarker would work, but seems
wasteful. I can think of one more approach which we might take -- erase
blocks only as we need them.

So instead of erasing blocks without cleanmarker _immediately_ on
startup, we just put them on a 'to be erased' list. Whenever the
empty_list is getting short of blocks, we erase another block from the
'to be erased' list and move it to the empty list.

It does mean that if you keep rebooting over and over again, you're
probably going to increase your erase count. But with a long-lived
system, it's likely to be more efficient than the large cleanmarker?

What do you think?

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation

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

* RE: MLC Support in JFFS2
  2009-06-22 19:15                       ` MLC Support in JFFS2 David Woodhouse
@ 2009-06-23 12:52                         ` apgmoorthy
  2009-06-23 13:19                           ` David Woodhouse
  2010-03-31  9:53                         ` Amul Kumar Saha
  1 sibling, 1 reply; 17+ messages in thread
From: apgmoorthy @ 2009-06-23 12:52 UTC (permalink / raw)
  To: 'David Woodhouse'
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd

Hi David,  

On Tuesday, June 23, 2009 12:45 AM David Woodhouse wrote :
 
>> If not , Felt that any one of the following patch can be of use
>> 
>> 1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
>>           - Which removes the Clean Marker.

>There was a reason for the cleanmarker -- it saved us from using partly-erased blocks for data. Do you have some other way to
guarantee that this won't 
>happen?
- How about the second One (Refer Below Links), which leaves 1page/block for Cleanmarker.
   http://lists.infradead.org/pipermail/linux-mtd/2008-September/023101.html
   http://lists.infradead.org/pipermail/linux-mtd/2008-September/023044.html 
  
>(Sorry, I think we may have had this discussion before, but I've forgotten the conclusion, if there was one. It was academic at the
time, since we didn't >have any solution for the paired-page insanity anyway. 
- Right , I dont see any detailed discussion on this regard in the list.
  

With Regards
 Moorthy

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

* Re: MLC Support in JFFS2
       [not found]                     ` <42F6638D897B4BA7B729CBC244D9F6E4@sisodomain.com>
@ 2009-06-22 19:15                       ` David Woodhouse
  2009-06-23 12:52                         ` apgmoorthy
  2010-03-31  9:53                         ` Amul Kumar Saha
  0 siblings, 2 replies; 17+ messages in thread
From: David Woodhouse @ 2009-06-22 19:15 UTC (permalink / raw)
  To: apgmoorthy
  Cc: 'Amit Kumar Sharma', vishak.g, 'Amul Saha',
	kyungmin.park, linux-mtd

On Fri, 2009-06-19 at 12:20 +0530, apgmoorthy wrote:
> Hi David,
> 
> Currenlty , Is there a way to use JFFS2 with MLC Memories ( NOP == 1 )?
> 
> If not , Felt that any one of the following patch can be of use
> 
> 1. http://lists.infradead.org/pipermail/linux-mtd/2007-December/020047.html
>           - Which removes the Clean Marker.

There was a reason for the cleanmarker -- it saved us from using
partly-erased blocks for data. Do you have some other way to guarantee
that this won't happen?

(Sorry, I think we may have had this discussion before, but I've
forgotten the conclusion, if there was one. It was academic at the time,
since we didn't have any solution for the paired-page insanity anyway. I
was mostly just burying my head in the sand and hoping this stupid 'MLC'
crap would go away.)

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation

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

* MLC Support in JFFS2
@ 2007-11-23 15:39 payagond
  0 siblings, 0 replies; 17+ messages in thread
From: payagond @ 2007-11-23 15:39 UTC (permalink / raw)
  To: linux-mtd



Hello,



Which is the better way for MLC support in JFFS2?

Is it removing the CLEANMARKER or

reserving the first page of every block for it



If I am using the 2nd option ie., reserving a page in every block -

What else I have to take care of, other than jeb->freesize and 
jeb->used_size?



regards

payagond


________________________________________________________________________
Email and AIM finally together. You've gotta check out free AOL Mail! - 
http://mail.aol.com

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

end of thread, other threads:[~2010-04-15 21:26 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-22  5:56 MLC Support in JFFS2 apgmoorthy
2009-06-22  7:47 ` Artem Bityutskiy
2009-06-22 13:33   ` apgmoorthy
2009-06-22 13:41     ` Artem Bityutskiy
  -- strict thread matches above, loose matches on Subject: below --
2009-05-25 10:52 [patch 01/14] mtd: Flex-OneNAND support apgmoorthy
2009-05-27 13:55 ` Artem Bityutskiy
2009-06-09 13:38   ` David Woodhouse
2009-06-11  9:23     ` Amul Saha
2009-06-11  9:35       ` Artem Bityutskiy
2009-06-12 10:26         ` Amul Saha
2009-06-12 10:42           ` Artem Bityutskiy
2009-06-12 11:57             ` Amul Saha
2009-06-12 12:03               ` Artem Bityutskiy
2009-06-12 13:16                 ` Amul Saha
2009-06-12 13:32                   ` David Woodhouse
     [not found]                     ` <42F6638D897B4BA7B729CBC244D9F6E4@sisodomain.com>
2009-06-22 19:15                       ` MLC Support in JFFS2 David Woodhouse
2009-06-23 12:52                         ` apgmoorthy
2009-06-23 13:19                           ` David Woodhouse
2009-06-24  6:50                             ` apgmoorthy
2010-03-31  9:53                         ` Amul Kumar Saha
2010-03-31 13:07                           ` massimo cirillo
2010-04-05 11:10                             ` Amul Kumar Saha
2010-04-05 11:52                               ` massimo cirillo
2010-04-09  9:21                                 ` Amul Kumar Saha
2010-04-13  9:45                                   ` massimo cirillo
     [not found]                                     ` <D4189C368A9B4BD986B7B98A0F05953B@sisodomain.com>
2010-04-15 21:03                                       ` massimo cirillo
2010-04-15 21:26                                         ` massimo cirillo
2007-11-23 15:39 payagond

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.