Skip to content

Commit

Permalink
Replace zed's use of malloc with calloc
Browse files Browse the repository at this point in the history
When zed allocates memory via malloc(), it typically follows that
with a memset().  However, calloc() implementations can often perform
optimizations when zeroing memory:

https://stackoverflow.com/questions/2688466/why-mallocmemset-is-slower-than-calloc

This commit replaces zed's use of malloc() with calloc().

Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2736
  • Loading branch information
dun authored and behlendorf committed Sep 25, 2014
1 parent bee6665 commit 8cb8cf9
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 8 deletions.
4 changes: 1 addition & 3 deletions cmd/zed/zed_conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,10 @@ zed_conf_create(void)
{
struct zed_conf *zcp;

zcp = malloc(sizeof (*zcp));
zcp = calloc(1, sizeof (*zcp));
if (!zcp)
goto nomem;

memset(zcp, 0, sizeof (*zcp));

zcp->syslog_facility = LOG_DAEMON;
zcp->min_events = ZED_MIN_EVENTS;
zcp->max_events = ZED_MAX_EVENTS;
Expand Down
2 changes: 1 addition & 1 deletion cmd/zed/zed_exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ _zed_exec_create_env(zed_strings_t *zsp)
for (q = zed_strings_first(zsp); q; q = zed_strings_next(zsp))
buflen += strlen(q) + 1;

buf = malloc(buflen);
buf = calloc(1, buflen);
if (!buf)
return (NULL);

Expand Down
6 changes: 2 additions & 4 deletions cmd/zed/zed_strings.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,10 @@ zed_strings_create(void)
{
zed_strings_t *zsp;

zsp = malloc(sizeof (*zsp));
zsp = calloc(1, sizeof (*zsp));
if (!zsp)
return (NULL);

memset(zsp, 0, sizeof (*zsp));
avl_create(&zsp->tree, _zed_strings_node_compare,
sizeof (zed_strings_node_t), offsetof(zed_strings_node_t, node));

Expand Down Expand Up @@ -131,11 +130,10 @@ zed_strings_add(zed_strings_t *zsp, const char *s)
return (-1);
}
len = sizeof (zed_strings_node_t) + strlen(s) + 1;
np = malloc(len);
np = calloc(1, len);
if (!np)
return (-1);

memset(np, 0, len);
assert((char *) np->string + strlen(s) < (char *) np + len);
(void) strcpy(np->string, s);
avl_add(&zsp->tree, np);
Expand Down

0 comments on commit 8cb8cf9

Please sign in to comment.