[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <5FBCBE569E134E4CA167B91C0A77FD610198F6DF27@EXMBX-SZMAIL022.tencent.com>
Date: Tue, 30 Oct 2018 02:25:11 +0000
From: chouryzhou(周威) <chouryzhou@...cent.com>
To: Todd Kjos <tkjos@...gle.com>
CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Arve Hjønnevåg <arve@...roid.com>,
Todd Kjos <tkjos@...roid.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"dave@...olabs.net" <dave@...olabs.net>,
LKML <linux-kernel@...r.kernel.org>,
"open list:ANDROID DRIVERS" <devel@...verdev.osuosl.org>,
"christian@...uner.io" <christian@...uner.io>,
chouryzhou(周威) <chouryzhou@...cent.com>
Subject: RE: [PATCH] binder: ipc namespace support for android binder
> > > It's not obvious from this patch where this dependency comes
> > > from...why is SYSVIPC required? I'd like to not have to require
> > > IPC_NS either for devices.
> >
> > Yes, the patch is not highly dependent on SYSVIPC, but it will be
> > convenient if require it. I will update it to drop dependency of it in
> > V2 patch. This patch doesn't need IPC_NS set at present.
>
> Actually it is dependent on IPC_NS since it makes changes to ipc/namespace.c which is compiled only if CONFIG_IPC_NS.
>
Actually it does not require IPC_NS, the code in ipc/namespace.c are namespace specific, and is *not needed* if ipc namespace is supported.
> There are a couple more implementations similar to this one.
> https://lwn.net/Articles/577957/ and some submissions to AOSP derived from that one that introduce a generic registration function for namespace support [1], and changes to binder to implement namespaces [2].
>
> If this is really needed, then we should have a solution that works for devices without requiring IPC_NS or SYSVIPC. Also, we should not add binder-specific code to ipc/namespace.c or include/linux/ipc_namespace.h.
>
> -Todd
>
> [1] https://android-review.googlesource.com/c/kernel/common/+/471961
> [2] https://android-review.googlesource.com/c/kernel/common/+/471825
>
If the binder will be isolated by namespace, it must put binder proc and binder context in ipc_namespace (or with something like void* as [1] did)
I have sent the V2 patch, that patch does not require SYSVIPC or IPC_NS. If IPC_NS is not set, binder_init will put proc and context into init_ipc_ns.
If SYSVIPC and CONFIG_POSIX_MQUEUE are both unset, I will make a fake init_ipc_ns to put them. it is marked as no static intentionally to let compile
generate an error if it has defined somewhere alse. The code in ipc/namespace.c is just to notify binder to do some installationwhere namespace are
creating, If no IPC_NS set, the initialization in binder_init will be enough.
So please review and test the V2 patch.
Powered by blists - more mailing lists