On Thu, Aug 11, 2016 at 01:00:21PM -0400, Aaron Conole wrote:
> Ben Pfaff <[email protected]> writes:
> > Neither of those is a simple "return server->listen_fd;" function. Any
> > chance that would be accepted? It would solve the problem just fine.
>
> I don't know, but I'll outline my plans, and if you agree, then I'll
> put them into action.
>
> First, I'll drop patch 2/3.
>
> Second, I'll take your suggestion below, and implement it in the
> netdev-dpdk area (as part of "patch 3/3", which will become 2/2).
>
> I'll submit the above by mid-day Friday, tested.
>
> Third, I'll cook up the DPDK server socket fd patch, and try to get that
> part of a future DPDK release. If accepted, then when OvS ports to that
> release, I will submit a patch removing your suggestion, and using the
> file descriptor instead (or whatever becomes of it).
>
> If this sounds acceptable, I'll start in on it ASAP.
This sounds good (well, acceptable) to me.
> >> If you think that patch 2/3 is that maloderous that it cannot be
> >> accepted, then there will always probably be this kind of disjointed
> >> file-system permissions gap for vhost-user server mode interfaces.
> >> Unless you have a better suggestion - I'm all ears then :)
> >
> > I do have one suggestion. Something like this:
> >
> > for (int i = 0; i < 10; i++) {
> > /* Find the first available file descriptor, then close it. */
> > int fd = socket(...);
> > close(fd);
> >
> > /* Create server socket. */
> > server = dpdk_create_server_socket(filename, ...);
> >
> > /* Check that fd is the new server socket fd.
> > * This is normally true unless some other thread created a fd
> > * concurrently. */
> > struct stat s;
> > struct sockaddr_un sun;
> > socklen_t sun_len = sizeof sun;
> > if (!stat(fd, &s) && S_ISSOCK(s.st_mode) &&
> > getsockname(fd, &sun, &sun_len) && !strcmp(filename, sun.sun_path))
> > {
> > /* Yay, we found the fd. */
> > return success;
> > }
> >
> > /* Race. Try again. */
> > dpdk_close_server_socket(server);
> > }
>
> Thanks, Ben. I am not opposed to going with this approach.
> Unfortunately, there are no truly good solutions I see here at
> the moment.
I'm not super-happy with my idea either, honestly. We are faced with a
choice of several bad solutions.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev