@cryptotaxi247 / netdata-1 / commits / 00d81c4ba

minor nfsd optimizations

Costa Tsaousis (ktsaou) committed Dec 17, 2017 at 21:00 UTC 00d81c4ba0372b33692f4c6b94ec1176457f0a5b
1 file changed +26 -24
src/proc_net_rpc_nfsd.c
+26 -24
@@ -224,30 +224,32 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
224 static int do_rc = -1, do_fh = -1, do_io = -1, do_th = -1, do_ra = -1, do_net = -1, do_rpc = -1, do_proc2 = -1, do_proc3 = -1, do_proc4 = -1, do_proc4ops = -1;
225 static int ra_warning = 0, th_warning = 0, proc2_warning = 0, proc3_warning = 0, proc4_warning = 0, proc4ops_warning = 0;
226
227 - if(!ff) {
227 + if(unlikely(!ff)) {
228 char filename[FILENAME_MAX + 1];
229 snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/rpc/nfsd");
230 ff = procfile_open(config_get("plugin:proc:/proc/net/rpc/nfsd", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
231 + if(unlikely(!ff)) return 1;
232 }
232 - if(!ff) return 1;
233
234 ff = procfile_readall(ff);
235 - if(!ff) return 0; // we return 0, so that we will retry to open it next time
236 -
237 - if(do_rc == -1) do_rc = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "read cache", 1);
238 - if(do_fh == -1) do_fh = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "file handles", 1);
239 - if(do_io == -1) do_io = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "I/O", 1);
240 - if(do_th == -1) do_th = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "threads", 1);
241 - if(do_ra == -1) do_ra = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "read ahead", 1);
242 - if(do_net == -1) do_net = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "network", 1);
243 - if(do_rpc == -1) do_rpc = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "rpc", 1);
244 - if(do_proc2 == -1) do_proc2 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v2 procedures", 1);
245 - if(do_proc3 == -1) do_proc3 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v3 procedures", 1);
246 - if(do_proc4 == -1) do_proc4 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v4 procedures", 1);
247 - if(do_proc4ops == -1) do_proc4ops = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v4 operations", 1);
235 + if(unlikely(!ff)) return 0; // we return 0, so that we will retry to open it next time
236 +
237 + if(unlikely(do_rc == -1)) {
238 + do_rc = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "read cache", 1);
239 + do_fh = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "file handles", 1);
240 + do_io = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "I/O", 1);
241 + do_th = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "threads", 1);
242 + do_ra = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "read ahead", 1);
243 + do_net = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "network", 1);
244 + do_rpc = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "rpc", 1);
245 + do_proc2 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v2 procedures", 1);
246 + do_proc3 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v3 procedures", 1);
247 + do_proc4 = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v4 procedures", 1);
248 + do_proc4ops = config_get_boolean("plugin:proc:/proc/net/rpc/nfsd", "NFS v4 operations", 1);
249 + }
250
251 // if they are enabled, reset them to 1
250 - // later we do them =2 to avoid doing strcmp() for all lines
252 + // later we do them = 2 to avoid doing strcmp() for all lines
253 if(do_rc) do_rc = 1;
254 if(do_fh) do_fh = 1;
255 if(do_io) do_io = 1;
@@ -273,12 +275,12 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
275
276 for(l = 0; l < lines ;l++) {
277 size_t words = procfile_linewords(ff, l);
276 - if(!words) continue;
278 + if(unlikely(!words)) continue;
279
280 type = procfile_lineword(ff, l, 0);
281
282 if(do_rc == 1 && strcmp(type, "rc") == 0) {
281 - if(words < 4) {
283 + if(unlikely(words < 4)) {
284 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 4);
285 continue;
286 }
@@ -292,7 +294,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
294 else do_rc = 2;
295 }
296 else if(do_fh == 1 && strcmp(type, "fh") == 0) {
295 - if(words < 6) {
297 + if(unlikely(words < 6)) {
298 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 6);
299 continue;
300 }
@@ -308,7 +310,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
310 else do_fh = 2;
311 }
312 else if(do_io == 1 && strcmp(type, "io") == 0) {
311 - if(words < 3) {
313 + if(unlikely(words < 3)) {
314 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 3);
315 continue;
316 }
@@ -321,7 +323,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
323 else do_io = 2;
324 }
325 else if(do_th == 1 && strcmp(type, "th") == 0) {
324 - if(words < 13) {
326 + if(unlikely(words < 13)) {
327 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 13);
328 continue;
329 }
@@ -352,7 +354,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
354 else do_th = 2;
355 }
356 else if(do_ra == 1 && strcmp(type, "ra") == 0) {
355 - if(words < 13) {
357 + if(unlikely(words < 13)) {
358 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 13);
359 continue;
360 }
@@ -381,7 +383,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
383 else do_ra = 2;
384 }
385 else if(do_net == 1 && strcmp(type, "net") == 0) {
384 - if(words < 5) {
386 + if(unlikely(words < 5)) {
387 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 5);
388 continue;
389 }
@@ -396,7 +398,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
398 else do_net = 2;
399 }
400 else if(do_rpc == 1 && strcmp(type, "rpc") == 0) {
399 - if(words < 6) {
401 + if(unlikely(words < 6)) {
402 error("%s line of /proc/net/rpc/nfsd has %zu words, expected %d", type, words, 6);
403 continue;
404 }