Re: [PATCH 02/18] flag parameters: socket and socketpair

From: Davide Libenzi
Date: Mon May 05 2008 - 22:31:12 EST


On Mon, 5 May 2008, Andrew Morton wrote:

> On Mon, 5 May 2008 19:13:14 -0700 (PDT) Davide Libenzi <davidel@xxxxxxxxxxxxxxx> wrote:
>
> > On Mon, 5 May 2008, Andrew Morton wrote:
> >
> > > On Sun, 4 May 2008 23:42:46 -0400 Ulrich Drepper <drepper@xxxxxxxxxx> wrote:
> > >
> > > > +static const struct flags_rmap sock_file_flags_remap[] = {
> > > > + { SOCK_CLOEXEC, O_CLOEXEC },
> > > > +};
> > > > +
> > > > asmlinkage long sys_socket(int family, int type, int protocol)
> > > > {
> > > > int retval;
> > > > struct socket *sock;
> > > > + int fflags;
> > > > +
> > > > + type = flags_remap(sock_file_flags_remap,
> > > > + ARRAY_SIZE(sock_file_flags_remap),
> > > > + type, &fflags);
> > >
> > > oh, so that's what it does.
> > >
> > > afaict we only ever remap one or two flags. Would it not be more efficient
> > > to do that inline? Something along the lines of:
> > >
> > > type = flag_remap(type, &fflags, SOCK_whatever, O_whatever);
> > > type = flag_remap(type, &fflags, SOCK_whatever2, O_whatever2);
> > >
> > > ?
> >
> > I think it is better to keep it able to remap more than one flag, with a
> > single call, that is table driven.
> >
>
> The table-driven approach is slower for one and probably two bits and it is
> somewhat less readable. What do we gain in return for this?

I think we can spend a few hours countering each other Pros&Cons about
performance, size, style, etc...
Not worth if you ask me. So if you like the other way better, ask Uli to
fix it your way.



- Davide


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/