From: Artem Bityutskiy <dedekind@infradead.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Frank Haverkamp <haver@vnet.ibm.com>,
linux-mtd@lists.infradead.org,
Andreas Arnez <arnez@linux.vnet.ibm.com>
Subject: Re: [PATCH 1/5] UBI: add UBI control device
Date: Wed, 19 Dec 2007 16:31:33 +0200 [thread overview]
Message-ID: <1198074693.18962.59.camel@sauron> (raw)
In-Reply-To: <200712191512.00951.arnd@arndb.de>
On Wed, 2007-12-19 at 15:11 +0100, Arnd Bergmann wrote:
> >
> > This patch is a preparation to make UBI devices dynamic. It
> > adds an UBI control device which has dynamically allocated
> > major number and registers itself as "ubi_ctrl". It does not
> > do anything so far. The idea is that this device will allow
> > to attach/detach MTD devices from userspace.
> >
> > This is symilar to what the Linux device mapper has.
>
> I don't really like the idea of a separate device node, the
> point that device mapper does it is not a particularly strong
> argument.
>
> A better alternative would be probably be to do it similar
> to the loopback device, where you attach the device node itself
> with a back-end (file in case of loop).
Pardon, I do not get this. Please, explain it some more. So, we have 2
MTD devices in the system - mtd0 and mtd1, and UBI is compiled in the
kernel. How do I create UBI device on top of mtd0?
> > + * When UBI is initialized, it attaches all the MTD devices specified as the
> > + * module load parameters or the kernel boot parameters. If MTD devices were
> > + * specified, UBI does not attach any MTD device, but it is possible to do
> > + * later using the "UBI control device".
> > + *
> > + * At the moment we only attach UBI devices by scanning, which will become a
> > + * bottleneck when flashes reach certain large size. Then one may improve UBI
> > + * and add other methods, although it does not seem to be easy to do.
> > */
>
> I'd say a more natural approach would be to use attributes in sysfs to allow the
> probing and destruction of the UBI devices. That way, you could use much
> simpler hooks into udev to create them, without the need of a special user
> ioctl interface.
Pardon? I register ubi_ctl within this thing which is called "Linux
Device Model" and I already automatically have udev
creating /dev/ubi_ctrl. device. And everything is already simple.
Please, elaborate.
> > +/* UBI control character device major number */
> > +static int ubi_ctrl_major;
>
> Why do you need you own major number? I think if you really want this ioctl
> interface, a misc device would be completely sufficient.
I wanted to have /dev/ubi_ctrl, why not? What's wrong with this?
> > + /* Register the control device in the Linux device system */
> > + ubi_ctrl_dev.release = ctrl_dev_release;
> > + ubi_ctrl_dev.devt = MKDEV(ubi_ctrl_major, 0);
> > + ubi_ctrl_dev.class = ubi_class;
> > + sprintf(&ubi_ctrl_dev.bus_id[0], "ubi_ctrl");
> > + err = device_register(&ubi_ctrl_dev);
> > + if (err) {
> > + printk(KERN_ERR "UBI error: cannot register device\n");
> > + goto out_version;
> > + }
>
> This looks like overengineering, you can simplify this a lot by using
> a misc device.
I will look what misc device is and if it is OK for me. And I do not see
anything complex here, to be frank :-)
>
> > ubi_ltree_slab = kmem_cache_create("ubi_ltree_slab",
> > sizeof(struct ubi_ltree_entry), 0,
> > 0, <ree_entry_ctor);
>
> How many objects to you expect to have in this cache? Is it just one
> object per device? That would hardly be worth creating a special cache.
Well, this is a subject of separate patch, because I just move this code
no. But the reason to have separate slab was that I have to optimize
this by having my own constructor.
--
Best regards,
Artem Bityutskiy (Битюцкий Артём)
next prev parent reply other threads:[~2007-12-19 14:32 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-19 15:41 [PATCH 0/5] UBI: make UBI devices dynamic Artem Bityutskiy
2007-12-19 15:41 ` [PATCH 1/5] UBI: add UBI control device Artem Bityutskiy
2007-12-19 14:11 ` Arnd Bergmann
2007-12-19 14:31 ` Artem Bityutskiy [this message]
2007-12-19 15:51 ` Arnd Bergmann
2007-12-19 17:21 ` Artem Bityutskiy
2007-12-19 18:12 ` Artem Bityutskiy
2007-12-19 15:41 ` [PATCH 2/5] UBI: add UBI devices reference counting Artem Bityutskiy
2007-12-19 15:41 ` [PATCH 3/5] UBI: prepare attach and detach functions Artem Bityutskiy
2007-12-19 15:41 ` [PATCH 4/5] UBI: introduce attach ioctls Artem Bityutskiy
2007-12-19 14:17 ` Arnd Bergmann
2007-12-19 14:42 ` Artem Bityutskiy
2007-12-19 15:57 ` Arnd Bergmann
2007-12-19 17:41 ` Artem Bityutskiy
2007-12-20 21:34 ` Arnd Bergmann
2007-12-20 22:14 ` Josh Boyer
2007-12-21 8:43 ` Artem Bityutskiy
2008-01-03 12:51 ` Frank Haverkamp
2008-01-03 15:05 ` Arnd Bergmann
2008-01-03 15:44 ` Frank Haverkamp
2007-12-19 15:42 ` [PATCH 5/5] UBI: handle attach ioctl Artem Bityutskiy
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=1198074693.18962.59.camel@sauron \
--to=dedekind@infradead.org \
--cc=arnd@arndb.de \
--cc=arnez@linux.vnet.ibm.com \
--cc=haver@vnet.ibm.com \
--cc=linux-mtd@lists.infradead.org \
/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