Re: [TRIVIAL] kstrdup

Jeff Garzik (jgarzik@pobox.com)
Sat, 19 Apr 2003 00:48:36 -0400


Rusty Russell wrote:
> In message <3E9FB2E9.9040308@pobox.com> you write:
>
>>Rusty Trivial Russell wrote:
>>
>>>+char *kstrdup(const char *s, int gfp)
>>>+{
>>>+ char *buf = kmalloc(strlen(s)+1, gfp);
>>>+ if (buf)
>>>+ strcpy(buf, s);
>>>+ return buf;
>>>+}
>>
>>You should save the strlen result to a temp var, and then s/strcpy/memcpy/
>
>
> Completely disagree. Write the most straightforward code possible,
> and then if there proves to be a problem, optimize. Optimizations
> where there's no actual performance problem should be left to the
> compiler.

Since the kernel does its own string ops, the compiler does not have
enough information to deduce that further optimization is possible.

> Case in point: gcc-3.2 on -O2 on Intel is one instruction longer for
> your version.

And? It's still slower.

Jeff

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