public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Alexander Belyakov <alexander.belyakov@intel.com>
To: Vitaly Wool <vwool@ru.mvista.com>
Cc: "Korolev, Alexey" <alexey.korolev@intel.com>,
	linux-mtd@lists.infradead.org, "Kutergin,
	Timofey" <timofey.kutergin@intel.com>
Subject: Re: [PATCH/RFC] MTD: Striping layer core
Date: Thu, 30 Mar 2006 19:24:41 +0400	[thread overview]
Message-ID: <442BF839.8060402@intel.com> (raw)
In-Reply-To: <442B9FA5.9070901@ru.mvista.com>

Hi Vitaly,

Vitaly Wool wrote:
> Still it's unclear why not to provide a configurable extension to 
> mtdconcat rather than create a new layer.

Striping and concatenation have different purposes. And extension in 
that case will become significantly more complicated than original layer.

> Sooo many threads... :(

One per sub-device.

>>
>> 3. POSSIBLE CONFIGURATIONS AND LIMITATIONS
>> It is possible to stripe devices of the same type. We can't stripe NOR
>> and NAND, but only NOR and NOR or NAND and NAND. Flashes of the same
>> type can differ in erase size and total size.   
> Why is that? Being able to deal only with flash chips of the same 
> type, your approach has very limited applicability

Please explain how is it possible to stripe NOR device with NAND? And 
what are you expecting from such an action?

>>          };
>>      };
>>      up(&map_mutex);
>> +
>> +#ifdef CONFIG_MTD_CMDLINE_STRIPE
>> +#ifndef MODULE
>> +    if(mtd_stripe_init()) {
>> +        printk(KERN_WARNING "MTD stripe initialization from cmdline
>> has failed\n");
>> +    }
>> +#endif
>> +#endif
>>   
> @@ -155,6 +158,15 @@
> Bah, what's going on here?

I should remove #ifndef MODULE from here, and from mphysmap_exit() too. 
Thanks.

>> +/* Operation codes */
>> +#define MTD_STRIPE_OPCODE_READ        0x1
>> +#define MTD_STRIPE_OPCODE_WRITE        0x2
>> +#define MTD_STRIPE_OPCODE_READ_ECC    0x3
>> +#define MTD_STRIPE_OPCODE_WRITE_ECC    0x4
>> +#define MTD_STRIPE_OPCODE_WRITE_OOB    0x5
>> +#define MTD_STRIPE_OPCODE_ERASE        0x6
>>   
> You don't need READ_OOB, eh?

I do not use READ_OOB operation code here. In current implementation 
read_oob is being done from context of the caller thread and we do not 
push that operation into worker threads queues.

>> +/*
>> + * Miscelaneus support routines
>> + */  
> Aint this one and stuff alike gonna be static?

True. I'll do that.

>> +    for(i = 1; i < num_devs; i++)
>> +    {
>> +    if(mtd->oobinfo.useecc != subdev[i]->oobinfo.useecc ||
>> +        mtd->oobinfo.eccbytes != subdev[i]->oobinfo.eccbytes)
>> +    {
>> +        printk(KERN_ERR "stripe_merge_oobinfo(): oobinfo parameters
>> is not compatible for all subdevices\n");
>> +        return -EINVAL;
>> +    }
>> +    }
>>   
> I guess this is a limitation that is not mentioned anywhere.

While striping NAND pages become larger for striped device. Again we 
have virtual "merging" but somewhat complicated than "merging" applied 
to erase blocks. NAND devices to be striped must have the same 
characteristics in the current implementation. It is strong limitation 
and probably can be toned down in something. But only the most common 
usage case for NAND (the identical chips) is considered in presented 
patch. I missed that important point in documentation, sorry.

>> +EXPORT_SYMBOL(mtd_stripe_init);
>> +EXPORT_SYMBOL(mtd_stripe_exit);
>>   
> Why do you need these functions exported?

At the moment these functions are not supposed to be used by others if 
mtdstripe.ko is a standalone module. Actually we do not need them 
exported.  I'll remove that exports.

>> +/* + * This is the handler for our kernel parameter, called from + * 
>> main.c::checksetup(). Note that we can not yet kmalloc() anything,
>> + * so we only save the commandline for later processing.
>> + *
>> + * This function needs to be visible for bootloaders.
>>   
> Can you please elaborate on this?

That comment about bootloaders is not supposed to be here. I'll remove 
it. The code below that comment just stores part of kernel configuration 
string  for later processing.

> Cool, it's an important func, why not declare it twice? ;)
>

It is typo, sorry. I'll remove second declaration.


Thanks,
Alexander Belyakov

  parent reply	other threads:[~2006-03-30 15:25 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-30  7:57 [PATCH/RFC] MTD: Striping layer core Belyakov, Alexander
2006-03-30  9:06 ` Vitaly Wool
2006-03-30 11:50   ` Artem B. Bityutskiy
2006-03-30 12:15     ` Vitaly Wool
2006-03-30 15:24   ` Alexander Belyakov [this message]
2006-03-30 15:39     ` Artem B. Bityutskiy
2006-03-31  7:06       ` Alexander Belyakov
2006-03-31  8:02         ` Artem B. Bityutskiy
2006-03-31  8:05           ` Artem B. Bityutskiy
2006-03-31  8:17             ` Alexander Belyakov
2006-03-31  8:38               ` Artem B. Bityutskiy
2006-03-31  8:55               ` Artem B. Bityutskiy
2006-03-31 16:59                 ` Nicolas Pitre
2006-04-02 11:22                   ` Artem B. Bityutskiy
2006-03-31  9:27             ` Jörn Engel
2006-03-31  9:36               ` Artem B. Bityutskiy
2006-03-31  9:40                 ` Jörn Engel
2006-03-31 10:00                   ` Artem B. Bityutskiy
2006-03-31 10:06                     ` Artem B. Bityutskiy
2006-03-31 10:07                     ` Jörn Engel
2006-03-31 10:18                       ` Artem B. Bityutskiy
2006-03-31 11:40                         ` Jörn Engel
2006-03-31 11:47                           ` Artem B. Bityutskiy
2006-03-31 11:56                             ` Jörn Engel
2006-03-31 12:06                               ` Artem B. Bityutskiy
2006-03-31 11:55                           ` Artem B. Bityutskiy
2006-03-31 11:59                             ` Jörn Engel
2006-03-31 12:11                               ` Artem B. Bityutskiy
2006-03-31 12:20                                 ` Jörn Engel
2006-03-31 12:28                                   ` Artem B. Bityutskiy
2006-03-31 12:57                                     ` Jörn Engel
2006-03-31 13:08                                       ` Artem B. Bityutskiy
2006-03-31 17:22                                     ` Nicolas Pitre
2006-04-03 13:06                                       ` Jörn Engel
2006-04-03 13:18                                         ` Jörn Engel
2006-04-04  1:39                                           ` Josh Boyer
2006-04-04  1:41                                         ` Josh Boyer
2006-03-31 17:19                                 ` Nicolas Pitre
2006-04-02 12:34                                   ` Artem B. Bityutskiy
2006-03-31 17:14                             ` Nicolas Pitre
2006-04-02 12:11                               ` Artem B. Bityutskiy
2006-03-31 17:06                       ` Nicolas Pitre
2006-03-31 16:49           ` Nicolas Pitre
2006-04-02 10:51             ` Artem B. Bityutskiy
2006-04-03  4:06             ` Vitaly Wool
2006-04-03  6:04               ` Thomas Gleixner
2006-04-03  6:14                 ` Vitaly Wool
2006-04-03  6:21                   ` Thomas Gleixner
2006-04-03  6:59                 ` Artem B. Bityutskiy
2006-04-03  7:20                 ` Alexander Belyakov
2006-04-03 13:44               ` Nicolas Pitre
2006-03-30 10:35 ` Artem B. Bityutskiy
2006-03-30 15:38   ` Alexander Belyakov
2006-03-30 16:32   ` Nicolas Pitre
2006-03-30 16:38     ` Artem B. Bityutskiy
2006-03-30 16:56       ` Jared Hulbert
2006-03-30 17:03         ` Artem B. Bityutskiy
2006-03-31  7:19     ` Alexander Belyakov
2006-03-30 12:11 ` Jörn Engel
2006-03-31  6:52   ` Alexander Belyakov
2006-03-31  7:57     ` Artem B. Bityutskiy
2006-03-31  8:11       ` Alexander Belyakov
2006-03-31  8:31         ` Artem B. Bityutskiy
2006-03-31  8:35           ` Alexander Belyakov
2006-03-31  8:47     ` Jörn Engel

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=442BF839.8060402@intel.com \
    --to=alexander.belyakov@intel.com \
    --cc=alexey.korolev@intel.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=timofey.kutergin@intel.com \
    --cc=vwool@ru.mvista.com \
    /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