From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Charles Manning <manningc2@actrix.gen.nz>
Cc: Christoph Hellwig <hch@infradead.org>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
ryan@bluewatersys.com, akpm@linux-foundation.org
Subject: Re: [PATCH 0/10] Add yaffs2 file system: Fifth patchset
Date: Thu, 17 Feb 2011 03:49:14 +0000 [thread overview]
Message-ID: <20110217034914.GB5194@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <201102171531.03924.manningc2@actrix.gen.nz>
On Thu, Feb 17, 2011 at 03:31:03PM +1300, Charles Manning wrote:
> On Thursday 17 February 2011 14:48:08 Mark Brown wrote:
> > On Thu, Feb 17, 2011 at 11:12:06AM +1300, Charles Manning wrote:
> > Even for embedded systems people do end up wanting to do things like
> > using the same kernel on multiple systems which may have different
> > hardware configurations (distros and reference boards are the obvious
> > examples, but I've worked on systems where multiple generations and
> > builds of the product were in active use and similar enough to be
> > maintained from the same kernel). Even with single system kernels
> > there's still an issue with things like reference boards where users are
> > doing things like picking up a new upstream kernel rather than the
> > vendor BSP.
> Every one of the "stupid compile time options" is there because someone that
> actually **uses** yaffs wanted it. None are there just for fun. The
The fact that users have asked for something doesn't mean that the
particular implementation that was chosen to meet the need makes sense.
Having lots of compile time options is terribly common in many embedded
systems but that doesn't mean it's a good idea to do things this way.
> compile-time switches are very limited - mostly just there to set up default
> runtime flags that can be overridden at runtime. Some of them are there to
> work around bugs and limitations in the mtd.
If these are just setting overridable defaults then that sounds like
stuff that doesn't need to be in the kernel in the first place, they're
just as trivial to tweak in userspace as with in kernel defines.. For the
hardware workarounds having this in the kernel seems reasonable, we just
need to figure out a way to propagate it from the machine driver to the
filesystem.
> Even with BSPs, there will often be some board tuning to, do things like set
> up the mtd partitions.
> Picking up an new kernel is easy, so long as the mtd code has not been broken
> in the interum.
You're missing the use case here - I'm talking about the situation where
you completely ignore the vendor BSP and go direct to mainline without
reference to the vendor provided stuff. The user may not even have the
vendor provided BSP to look at.
> > I'm not sure exactly how you'd do this for a filesystem but this is
> > starting to sound a lot like platform data... Though presumably if the
> > data isn't stored on the device currently it'd be a simple matter of
> > programming (if wasteful) to add it.
> NB flash file system - not file system! Working via mtd is different to
> working via blocks.
I do have *some* familiarity with embedded systems. The fact that the
device is a flash device doesn't stop you recording metadata on it -
obviously you've got some data on there to record the metadata for stuff
like directory layout. If some of this is needed to even read the
device then it can't go on the device, but otherwise it could be
included somehow.
> Most of the required data is passed through mtd and you don't need any special
> platform data beyond the nand setup in the board tuning file.
Plus the #define based configuration the code is currently doing;
clearly some additional configuration is required. I rather suspect the
issue here arises from some combination of the cross platform stuff
resulting in things that are clearly not idiomatic for Linux and people
not being able to figure out how to propagate the data into Linux so
just bodging it with ifdefs.
This sort of stuff is really common when taking old code into mainline -
people do all sorts of things that aren't suitable for mainline, often
around configurability, and we really need to take a step back and
userstand what the underlying goal is and how to express it in an
idiomatic fashion.
next prev parent reply other threads:[~2011-02-17 3:49 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-09 3:25 [PATCH 0/10] Add yaffs2 file system: Fifth patchset Charles Manning
2011-02-09 3:25 ` [PATCH 01/10] Add yaffs2 file system: allocators, bitmap and block handling Charles Manning
2011-02-09 3:26 ` [PATCH 02/10] Add yaffs2 file system: attrib and xattrib handling Charles Manning
2011-02-09 22:33 ` Ryan Mallon
2011-02-09 3:26 ` [PATCH 03/10] Add yaffs2 file system: checkpoint streaming Charles Manning
2011-02-10 22:27 ` Jesper Juhl
2011-02-10 22:44 ` Ryan Mallon
2011-02-10 22:50 ` Charles Manning
2011-02-09 3:26 ` [PATCH 04/10] Add yaffs2 file system: flash interface and ecc handling Charles Manning
2011-02-09 3:26 ` [PATCH 05/10] Add yaffs2 file system: tags handling Charles Manning
2011-02-09 3:26 ` [PATCH 06/10] Add yaffs2 file system: tracing and verification handling Charles Manning
2011-02-11 23:01 ` Ryan Mallon
2011-02-09 3:26 ` [PATCH 07/10] Add yaffs2 file system: yaffs1 and yaffs2 mode handling Charles Manning
2011-02-09 3:26 ` [PATCH 08/10] Add yaffs2 file system: core guts code Charles Manning
2011-02-10 2:27 ` Ryan Mallon
2011-02-09 3:26 ` [PATCH 09/10] Add yaffs2 file system: Linux glue code Charles Manning
2011-02-10 22:07 ` Ryan Mallon
2011-02-10 22:47 ` Charles Manning
2011-02-17 22:24 ` Ryan Mallon
2011-02-09 3:26 ` [PATCH 10/10] Add yaffs2 file system: hok in to Linux tree Charles Manning
2011-02-09 4:52 ` [PATCH 0/10] Add yaffs2 file system: Fifth patchset Christoph Hellwig
2011-02-09 18:22 ` Charles Manning
2011-02-16 8:04 ` Christoph Hellwig
2011-02-16 22:12 ` Charles Manning
2011-02-17 1:48 ` Mark Brown
2011-02-17 2:31 ` Charles Manning
2011-02-17 2:52 ` Ryan Mallon
2011-02-17 3:49 ` Charles Manning
2011-02-17 23:41 ` Greg KH
2011-02-18 0:01 ` Mark Brown
2011-02-18 0:33 ` Greg KH
2011-02-18 0:43 ` Mark Brown
2011-02-18 0:55 ` Ryan Mallon
2011-02-18 0:58 ` Greg KH
2011-02-20 17:25 ` Charles Manning
2011-02-20 20:07 ` Greg KH
2011-02-20 20:52 ` Ryan Mallon
2011-02-20 22:29 ` Greg KH
2011-02-20 22:57 ` Ryan Mallon
2011-02-18 1:08 ` Mark Brown
2011-02-17 3:49 ` Mark Brown [this message]
2011-02-17 4:22 ` Charles Manning
2011-02-17 6:08 ` Mark Brown
2011-02-19 17:45 ` Pavel Machek
2011-08-17 12:12 ` Linus Walleij
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=20110217034914.GB5194@opensource.wolfsonmicro.com \
--to=broonie@opensource.wolfsonmicro.com \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=manningc2@actrix.gen.nz \
--cc=ryan@bluewatersys.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;
as well as URLs for NNTP newsgroup(s).