Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/fs/nfsd/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  stats.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/*
 * procfs-based user access to knfsd statistics
 *
 * /proc/net/rpc/nfsd
 *
 * Format:
 * rc <hits> <misses> <nocache>
 * Statistsics for the reply cache
 * fh <stale> <deprecated filehandle cache stats>
 * statistics for filehandle lookup
 * io <bytes-read> <bytes-written>
 * statistics for IO throughput
 * th <threads> <deprecated thread usage histogram stats>
 * number of threads
 * ra <deprecated ra-cache stats>
 *
 * plus generic RPC stats (see net/sunrpc/stats.c)
 *
 * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de>
 */


#include <linux/seq_file.h>
#include <linux/module.h>
#include <linux/sunrpc/stats.h>
#include <net/net_namespace.h>

#include "nfsd.h"

static int nfsd_show(struct seq_file *seq, void *v)
{
 struct net *net = pde_data(file_inode(seq->file));
 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
 int i;

 seq_printf(seq, "rc %lld %lld %lld\nfh %lld 0 0 0 0\nio %lld %lld\n",
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_RC_HITS]),
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_RC_MISSES]),
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_RC_NOCACHE]),
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_FH_STALE]),
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_IO_READ]),
     percpu_counter_sum_positive(&nn->counter[NFSD_STATS_IO_WRITE]));

 /* thread usage: */
 seq_printf(seq, "th %u 0", atomic_read(&nfsd_th_cnt));

 /* deprecated thread usage histogram stats */
 for (i = 0; i < 10; i++)
  seq_puts(seq, " 0.000");

 /* deprecated ra-cache stats */
 seq_puts(seq, "\nra 0 0 0 0 0 0 0 0 0 0 0 0\n");

 /* show my rpc info */
 svc_seq_show(seq, &nn->nfsd_svcstats);

#ifdef CONFIG_NFSD_V4
 /* Show count for individual nfsv4 operations */
 /* Writing operation numbers 0 1 2 also for maintaining uniformity */
 seq_printf(seq, "proc4ops %u", LAST_NFS4_OP + 1);
 for (i = 0; i <= LAST_NFS4_OP; i++) {
  seq_printf(seq, " %lld",
      percpu_counter_sum_positive(&nn->counter[NFSD_STATS_NFS4_OP(i)]));
 }
 seq_printf(seq, "\nwdeleg_getattr %lld",
  percpu_counter_sum_positive(&nn->counter[NFSD_STATS_WDELEG_GETATTR]));

 seq_putc(seq, '\n');
#endif

 return 0;
}

DEFINE_PROC_SHOW_ATTRIBUTE(nfsd);

struct proc_dir_entry *nfsd_proc_stat_init(struct net *net)
{
 struct nfsd_net *nn = net_generic(net, nfsd_net_id);

 return svc_proc_register(net, &nn->nfsd_svcstats, &nfsd_proc_ops);
}

void nfsd_proc_stat_shutdown(struct net *net)
{
 svc_proc_unregister(net, "nfsd");
}

Messung V0.5
C=96 H=93 G=94

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.