mirror of
https://github.com/kmod-project/kmod.git
synced 2026-01-26 15:39:08 +00:00
shared: improve strbuf_reserve_extra performance
If strbuf is used (depmod, modprobe -c) then strbuf_reserve_extra is performance critical. This reduces amount of instructions for modprobe -c by around 10 %, the total instruction count for depmod by 1 % (majority is within reading module files). Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Link: https://github.com/kmod-project/kmod/pull/296 Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
This commit is contained in:
parent
55c779fa56
commit
b4f1546bd3
@ -36,12 +36,12 @@ static bool buf_realloc(struct strbuf *buf, size_t sz)
|
||||
|
||||
static bool strbuf_reserve_extra(struct strbuf *buf, size_t n)
|
||||
{
|
||||
if (n < buf->size - buf->used)
|
||||
return true;
|
||||
|
||||
if (uaddsz_overflow(buf->used, n, &n) || n >= SIZE_MAX - BUF_STEP)
|
||||
return false;
|
||||
|
||||
if (n < buf->size)
|
||||
return true;
|
||||
|
||||
if (++n % BUF_STEP)
|
||||
n = ((n / BUF_STEP) + 1) * BUF_STEP;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user