]> git.puffer.fish Git - matthieu/frr.git/commitdiff
optimize zebra for fuzzin'
authorQuentin Young <qlyoung@cumulusnetworks.com>
Wed, 15 Jan 2020 06:36:17 +0000 (01:36 -0500)
committerQuentin Young <qlyoung@nvidia.com>
Mon, 15 Nov 2021 19:54:25 +0000 (14:54 -0500)
- turn off kernel foo; netlink reads are 70% of runtime
- turn off mlag thread

zebra/kernel_netlink.c
zebra/zebra_mlag.c

index 86e8f65b5f8133200ba2ab1b2d877d75ace97210..8b58f90406c5a1031b9bd66952efdbb21e160329 100644 (file)
@@ -1486,26 +1486,31 @@ void kernel_init(struct zebra_ns *zns)
        snprintf(zns->netlink.name, sizeof(zns->netlink.name),
                 "netlink-listen (NS %u)", zns->ns_id);
        zns->netlink.sock = -1;
+#ifndef FUZZING
        if (netlink_socket(&zns->netlink, groups, zns->ns_id) < 0) {
                zlog_err("Failure to create %s socket",
                         zns->netlink.name);
                exit(-1);
        }
+#endif
 
        snprintf(zns->netlink_cmd.name, sizeof(zns->netlink_cmd.name),
                 "netlink-cmd (NS %u)", zns->ns_id);
        zns->netlink_cmd.sock = -1;
+#ifndef FUZZING
        if (netlink_socket(&zns->netlink_cmd, 0, zns->ns_id) < 0) {
                zlog_err("Failure to create %s socket",
                         zns->netlink_cmd.name);
                exit(-1);
        }
+#endif
 
        /* Outbound socket for dplane programming of the host OS. */
        snprintf(zns->netlink_dplane_out.name,
                 sizeof(zns->netlink_dplane_out.name), "netlink-dp (NS %u)",
                 zns->ns_id);
        zns->netlink_dplane_out.sock = -1;
+#ifndef FUZZING
        if (netlink_socket(&zns->netlink_dplane_out, 0, zns->ns_id) < 0) {
                zlog_err("Failure to create %s socket",
                         zns->netlink_dplane_out.name);
@@ -1522,7 +1527,9 @@ void kernel_init(struct zebra_ns *zns)
                         zns->netlink_dplane_in.name);
                exit(-1);
        }
+#endif
 
+#ifndef FUZZING
        /*
         * SOL_NETLINK is not available on all platforms yet
         * apparently.  It's in bits/socket.h which I am not
@@ -1599,6 +1606,7 @@ void kernel_init(struct zebra_ns *zns)
                               zns->netlink_cmd.snl.nl_pid,
                               zns->netlink_dplane_out.snl.nl_pid);
 
+#endif /* FUZZING */
        zns->t_netlink = NULL;
 
        thread_add_read(zrouter.master, kernel_read, zns,
index 40a2c94e2aa80130bc62f9e013f0544afed2602f..fcad351f6eb13ba67a1d8a0a17d7aa97246118d6 100644 (file)
@@ -373,6 +373,9 @@ stream_failure:
 static void zebra_mlag_spawn_pthread(void)
 {
        /* Start MLAG write pthread */
+#ifdef FUZZING
+       return;
+#endif
 
        struct frr_pthread_attr pattr = {.start =
                                                 frr_pthread_attr_default.start,
@@ -475,7 +478,9 @@ void zebra_mlag_client_register(ZAPI_HANDLER_ARGS)
                        zlog_debug(
                                "First client, opening the channel with MLAG");
 
+#ifndef FUZZING
                zebra_mlag_spawn_pthread();
+#endif
                rc = hook_call(zebra_mlag_private_open_channel);
                if (rc < 0) {
                        /*