]> git.proxmox.com Git - ceph.git/blame - ceph/src/test/test_rewrite_latency.cc
import ceph quincy 17.2.6
[ceph.git] / ceph / src / test / test_rewrite_latency.cc
CommitLineData
7c673cae
FG
1
2#include <unistd.h>
3#include <map>
4#include <errno.h>
5
6#include "include/utime.h"
7#include "common/Clock.h"
8#include "common/errno.h"
9
10using namespace std;
11
12int main(int argc, const char **argv)
13{
14 const char *fn = argv[1];
15 multimap<utime_t, utime_t> latency;
16 unsigned max = 10;
17
18 int fd = ::open(fn, O_CREAT|O_RDWR, 0644);
19 if (fd < 1) {
20 int err = errno;
21 cerr << "failed to open " << fn << " with " << cpp_strerror(err) << std::endl;
22 return -1;
23 }
24
25 while (true) {
26 utime_t now = ceph_clock_now();
27 int r = ::pwrite(fd, fn, strlen(fn), 0);
11fdf7f2 28 ceph_assert(r >= 0);
7c673cae
FG
29 utime_t lat = ceph_clock_now();
30 lat -= now;
31 utime_t oldmin;
32 if (!latency.empty())
33 oldmin = latency.begin()->first;
34 latency.insert(make_pair(lat, now));
35 utime_t newmin = latency.begin()->first;
36 while (latency.size() > max)
37 latency.erase(latency.begin());
38 if (oldmin == newmin) {
39 cout << "latency\tat" << std::endl;
40 for (multimap<utime_t,utime_t>::reverse_iterator p = latency.rbegin();
41 p != latency.rend();
42 ++p) {
43 cout << p->first << "\t" << p->second << std::endl;
44 }
45 }
46 }
47}