summaryrefslogtreecommitdiff
path: root/include/windows
diff options
context:
space:
mode:
authorGurucharan Shetty <gshetty@nicira.com>2014-03-06 12:55:53 -0800
committerGurucharan Shetty <gshetty@nicira.com>2014-03-06 16:35:04 -0800
commit1680d3d7e3813258f5050bb8cb10a2543c60e549 (patch)
treece9683716bcf27d79d0577564cb88d8de1ff2bd7 /include/windows
parentbae94bc77362b59a52c0f562e62ff96198dab9d0 (diff)
downloadopenvswitch-1680d3d7e3813258f5050bb8cb10a2543c60e549.tar.gz
getrusage-windows: getrusage() for Windows.
We use getrusage mainly to get user CPU time and system CPU time. Windows has a GetProcessTimes and GetThreadTimes that does the same job. So use them. We also use getrusage to get page faults. Use GetProcessMemoryInfo() for that. We also get number of context switches, block i/o times and use it for debug information when we wake up from poll_block late. I haven't found functions for that in Windows. We only use it for debug information, so it should be okay not implementing it. Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Co-authored-by: Linda Sun <lsun@vmware.com> Signed-off-by: Linda Sun <lsun@vmware.com> Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'include/windows')
-rw-r--r--include/windows/automake.mk1
-rw-r--r--include/windows/sys/resource.h51
2 files changed, 52 insertions, 0 deletions
diff --git a/include/windows/automake.mk b/include/windows/automake.mk
index 2771270ad..b8f144e84 100644
--- a/include/windows/automake.mk
+++ b/include/windows/automake.mk
@@ -8,4 +8,5 @@
noinst_HEADERS += \
include/windows/getopt.h \
include/windows/syslog.h \
+ include/windows/sys/resource.h \
include/windows/windefs.h
diff --git a/include/windows/sys/resource.h b/include/windows/sys/resource.h
new file mode 100644
index 000000000..d4628f259
--- /dev/null
+++ b/include/windows/sys/resource.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2014 Nicira, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SYS_RESOURCE_H
+#define SYS_RESOURCE_H 1
+
+struct rusage {
+ struct timeval ru_utime; /* user CPU time used */
+ struct timeval ru_stime; /* system CPU time used */
+ long ru_maxrss; /* maximum resident set size */
+ long ru_ixrss; /* integral shared memory size */
+ long ru_idrss; /* integral unshared data size */
+ long ru_isrss; /* integral unshared stack size */
+ long ru_minflt; /* page reclaims (soft page faults) */
+ long ru_majflt; /* page faults (hard page faults) */
+ long ru_nswap; /* swaps */
+ long ru_inblock; /* block input operations */
+ long ru_oublock; /* block output operations */
+ long ru_msgsnd; /* IPC messages sent */
+ long ru_msgrcv; /* IPC messages received */
+ long ru_nsignals; /* signals received */
+ long ru_nvcsw; /* voluntary context switches */
+ long ru_nivcsw; /* involuntary context switches */
+};
+
+#ifndef RUSAGE_SELF
+#define RUSAGE_SELF 1
+#endif
+
+#ifndef RUSAGE_CHILDREN
+#define RUSAGE_CHILDREN 2
+#endif
+
+#ifndef RUSAGE_THREAD
+#define RUSAGE_THREAD 3
+#endif
+
+#endif /* sys/resource.h */