Re: [PATCH] remove unnecessary memmove() in cgroup_path()

Paul Jackson
2008-05-22T08:25:14Z

One more question ... how does the kernel text size (size vmlinux)
change with this patch?

It may well be that the kernel gets a few bytes -larger-, rather than
smaller, due to the extra instructions involved in manipulating the
more indirect buffer pointer and in tracking the value of that pointer
on cgroup_path() entry separately from the value on return.

If that's the case, then the net performance impact of this patch might
be negative, depending on how one measures it. Given the increasingly
high costs of cache misses on modern CPU architectures, it is often
better to execute a few additional instructions that are likely already
in the cache (as 'memmove()' might be) than to increase the kernel text
size with rarely executed code lines that will (1) miss the cache more
often, even though (2) they consume fewer CPU cycles to execute.