From: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
To: "'Sebastian Andrzej Siewior'" <bigeasy@linutronix.de>
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
"'Kyungmin Park'" <kyungmin.park@samsung.com>,
"'Felipe Balbi'" <balbi@ti.com>,
"'Greg Kroah-Hartman'" <gregkh@linuxfoundation.org>,
"'Joel Becker'" <jlbec@evilplan.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
"'Michal Nazarewicz'" <mina86@mina86.com>
Subject: RE: [RFC][PATCH] fs: configfs: programmatically create config groups
Date: Wed, 28 Nov 2012 09:10:59 +0100 [thread overview]
Message-ID: <002901cdcd3f$e7288ac0$b579a040$%p@samsung.com> (raw)
In-Reply-To: <50B4E364.8030704@linutronix.de>
On Tuesday, November 27, 2012 5:00 PM Sebastian Andrzej Siewior wrote:
> On 11/27/2012 09:57 AM, Andrzej Pietrasiewicz wrote:
> >> |mkdir -p $FABRIC/naa.6001405c3214b06a/tpgt_1
> >> |mkdir $FABRIC/naa.6001405c3214b06a/tpgt_1/lun/lun_0
> >> |mkdir $FABRIC/naa.6001405c3214b06a/tpgt_1/lun/lun_1
> >>
> >> So you setup two luns without this patch. Would that work for you?
> >>
> > I think we _still_ need a way to programmatically create/remove
> > configfs directories. Without it, this: "After name is written it will
> > request the module and special configuration related files pop up."
> > (http://www.spinics.net/lists/linux-usb/msg75118.html)
> >
> > is only possible for a static, predefined number of configuration
> > subdirectories. Can you guarantee there will be only such a need?
>
> No I can't but until now I don't such a need.
>
> > Are you sure lun# directories will not be created programmatically?
> > https://lkml.org/lkml/2012/11/26/584
>
> they are not by target and they are not complaining. We need it if we use
> the num_luns file which I don't think is useful.
>
> > And there are problems to be addressed right now, not possibly in the
> > future: take the intrefaceXX (read-only) directory, which contains
> > information about altsetting, interface class, interface number,
> > endpoints etc. It can be created only after the gadget has actually
> > been bound. But before the gadget is bound it is being configured and
> > the configfs directories must already be there, so any default_groups
> > are already created.
>
> Here I understand it. This is to some point a limitation of the gadget
> framework. We do know the number of interface that will be available
> before we bind. We simply don't know the endpoint number. There are two
> exceptions to what I just wrote:
> - g_zero drops the ISO endpoints if the UDC has no UDC support for it.
> This should not happen on-the-fly.
> - UAC2 may want to make the number interfaces (and therefore configure
> able) and function (play / record) configurable.
>
So do we know everything before bind or we don't?
> > So the interfaceXX directory cannot be implemented as a default group,
> > but must be created programmatically.
> >
> > Also, there is an idea to unbind the gadget with just doing rmdir
> > /cfg/...../gadgetX:
> > http://www.spinics.net/lists/linux-usb/msg74893.html
>
> Since we link the gadget to the function, we should unlink it.
>
> > This implies doing a recursive rmdir first on its subdirectories - a
> > programmatic rmdir.
>
> Hmm. On target I have to rmdir manually
>
> |unlink naa.6001405c3214b06a/tpgt_1/lun/lun_2/virtual_scsi_port
> |unlink naa.6001405c3214b06a/tpgt_1/lun/lun_3/virtual_scsi_port
> |rmdir naa.6001405c3214b06a/tpgt_1/lun/lun_2
> |rmdir naa.6001405c3214b06a/tpgt_1/lun/lun_3
> |rmdir naa.6001405c3214b06a/tpgt_1/
> |rmdir naa.6001405c3214b06a/
> |cd ..
> |rmdir usb_gadget
>
> to make it all go away. Couldn't we have a tool to manage all this?
> target has such a thing, you have just select a few things via a CLI tool
> and the tool creates the directories for you _and_ removes them later on.
> I don't want to push python on anyone but the removal magic is simply
> straight forward: unlink the disk ports, rmdir luns, tpgt,.
>
> > Taken all this into account, I would like to have a way to
> > programmatically create and remove configfs directories.
> > Right now creating them is like scratching the left ear with the hand
> > under the right knee. And it leads to comments like: "Looking at this:
> > full_name_hash(), d_alloc(), d_add(), d_drop(), dput(). Do you write a
> > filesystem?"
> > http://www.spinics.net/lists/linux-usb/msg74841.html
>
> That was wrong. Pushing it into configs is better but I am not sure we
> need it. I understand the need for things that pop later like interfaceXX
> but couldn't the user manually create them if he needs them?
>
What name shall the user use? How to know which user-created directory
should correspond to which actual interface? If there are, say,
3 interfaces, what would:
$ mkdir interface873246
mean?
And in general, what would
$ mkdir rykcq1234
mean?
Let's go one directory deeper in the hierarchy and suppose there is
no programmatic directories creation. So we
$ cd interface<something>
so that we can create the endpoint directories.
And now what? What names shall the user use for the endpoint
directories? Oh, that's simple: just see what the endpoint
directories' names are. But wait, aren't we just creating them?
Please also see Michał's point about user interface.
Andrzej
next prev parent reply other threads:[~2012-11-28 8:11 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-26 8:35 Andrzej Pietrasiewicz
2012-11-26 8:35 ` [RFC][PATCH] fs: configfs: allow other kernel parts to " Andrzej Pietrasiewicz
2012-11-26 13:14 ` [RFC][PATCH] fs: configfs: " Michal Nazarewicz
2012-11-26 16:30 ` Sebastian Andrzej Siewior
2012-11-26 16:56 ` Michal Nazarewicz
2012-11-26 17:06 ` Sebastian Andrzej Siewior
2012-11-26 17:54 ` Michal Nazarewicz
2012-11-27 15:20 ` Sebastian Andrzej Siewior
2012-11-28 7:08 ` Nicholas A. Bellinger
2012-11-27 8:57 ` Andrzej Pietrasiewicz
2012-11-27 14:32 ` Michal Nazarewicz
2012-11-27 15:59 ` Sebastian Andrzej Siewior
2012-11-27 16:23 ` Michal Nazarewicz
2012-11-28 8:15 ` Sebastian Andrzej Siewior
2012-11-28 13:05 ` Michal Nazarewicz
2012-11-28 13:50 ` Sebastian Andrzej Siewior
2012-11-28 14:24 ` Michal Nazarewicz
2012-11-28 18:52 ` Sebastian Andrzej Siewior
2012-12-07 23:18 ` Joel Becker
2012-12-10 11:57 ` Andrzej Pietrasiewicz
2012-12-10 14:17 ` Andrzej Pietrasiewicz
2012-12-10 14:34 ` Felipe Balbi
2012-12-10 15:27 ` Andrzej Pietrasiewicz
2012-12-12 1:10 ` Joel Becker
2012-12-11 21:27 ` Joel Becker
2012-12-14 12:18 ` Sebastian Andrzej Siewior
2012-11-28 8:10 ` Andrzej Pietrasiewicz [this message]
2012-11-28 8:38 ` Sebastian Andrzej Siewior
2012-11-28 14:09 ` Andrzej Pietrasiewicz
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='002901cdcd3f$e7288ac0$b579a040$%p@samsung.com' \
--to=andrzej.p@samsung.com \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=gregkh@linuxfoundation.org \
--cc=jlbec@evilplan.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mina86@mina86.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
Powered by JetHome