From: Greg KH <gregkh@linuxfoundation.org>
To: Christian Brauner <christian@brauner.io>
Cc: tkjos@android.com, maco@android.com,
linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org,
kilobyte@angband.pl, darrick.wong@oracle.com,
chouryzhou@tencent.com, david@fromorbit.com, arve@android.com,
joel@joelfernandes.org, Todd Kjos <tkjos@google.com>
Subject: Re: [PATCH] binder: implement binderfs
Date: Thu, 6 Dec 2018 15:04:03 +0100 [thread overview]
Message-ID: <20181206140403.GA18947@kroah.com> (raw)
In-Reply-To: <20181205214203.cwcvsqe6ndu4e3vv@brauner.io>
On Wed, Dec 05, 2018 at 10:42:06PM +0100, Christian Brauner wrote:
> On Wed, Dec 05, 2018 at 09:01:45PM +0100, Greg KH wrote:
> > > /* binder-control */
> > > Each new binderfs instance comes with a binder-control device. No other
> > > devices will be present at first. The binder-control device can be used to
> > > dynamically allocate binder devices. All requests operate on the binderfs
> > > mount the binder-control device resides in:
> > > - BINDER_CTL_ADD
> > > Allocate a new binder device.
> > > Assuming a new instance of binderfs has been mounted at /dev/binderfs via
> > > mount -t binderfs binderfs /dev/binderfs. Then a request to create a new
> > > binder device can be made via:
> > >
> > > struct binderfs_device device = {0};
> > > int fd = open("/dev/binderfs/binder-control", O_RDWR);
> > > ioctl(fd, BINDER_CTL_ADD, &device);
> > >
> > > The struct binderfs_device will be used to return the major and minor
> > > number, as well as the index used as the new name for the device.
> > > Binderfs devices can simply be removed via unlink().
> >
> > I think you should provide a name in the BINDER_CTL_ADD command. That
> > way you can easily emulate the existing binder queues, and it saves you
> > a create/rename sequence that you will be forced to do otherwise. Why
> > not do it just in a single command?
>
> Sounds reasonable. How do you feel about capping the name length at 255
> bytes aka the standard Linux file name length (e.g. xfs, ext4 etc.)?
>
> #define BINDERFS_NAME_MAX 255
>
> struct binderfs_device {
> char name[BINDERFS_NAME_MAX + 1];
__u8 is the proper type to cross the user/kernel boundry :)
> __u32 major;
> __u32 minor;
> }
Yes, limiting it to 255 is fine with me.
> > That way also you don't need to care about the major/minor number at
> > all. Userspace should never need to worry about that, use a name,
> > that's the best thing. Also, it allows you to drop the use of the idr,
> > making the kernel code simpler overall.
> >
> > > /* Implementation details */
> > > - When binderfs is registered as a new filesystem it will dynamically
> > > allocate a new major number. The allocated major number will be returned
> > > in struct binderfs_device when a new binder device is allocated.
> >
> > Why does userspace care about major/minor numbers at all? You should
>
> Userspace cares for the sake of the devices cgroup which operates on
> device numnbers to restrict access to devices. Since binderfs doesn't
> have a static major number returning that information is helpful.
Ugh, ok, that makes sense. If we really want to make the kernel
interface simpler, drop the major/minor and then have userspace do the
stat(2) to see what the major/minor number they care about is.
But yeah, keeping it here makes everyone's life simpler, the kernel
already knows this, and it's trivial to pass it back to userspace this
way.
Care to make this change and resend?
thanks,
greg k-h
next prev parent reply other threads:[~2018-12-06 14:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-04 13:12 [PATCH] binder: implement binderfs Christian Brauner
2018-12-05 20:01 ` Greg KH
2018-12-05 21:42 ` Christian Brauner
2018-12-06 14:04 ` Greg KH [this message]
2018-12-06 17:45 ` Christian Brauner
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=20181206140403.GA18947@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=arve@android.com \
--cc=chouryzhou@tencent.com \
--cc=christian@brauner.io \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--cc=devel@driverdev.osuosl.org \
--cc=joel@joelfernandes.org \
--cc=kilobyte@angband.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=maco@android.com \
--cc=tkjos@android.com \
--cc=tkjos@google.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