Processor Counter Monitor
bw.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: BSD-3-Clause
2 // Copyright (c) 2012-2019, Intel Corporation
3 // written by Roman Dementiev
4 //
5 
6 #pragma once
7 
13 #include <memory>
14 #include <vector>
15 #include <array>
16 #include "mmio.h"
17 
18 namespace pcm {
19 
21  {
22  public:
23  virtual uint64 getImcReads() { return 0; }
24  virtual uint64 getImcWrites() { return 0; }
25  virtual uint64 getGtRequests() { return 0; }
26  virtual uint64 getIaRequests() { return 0; }
27  virtual uint64 getIoRequests() { return 0; }
28  virtual uint64 getPMMReads() { return 0; }
29  virtual uint64 getPMMWrites() { return 0; }
30  virtual ~FreeRunningBWCounters() {}
31  };
32 
34  {
35  std::array<std::shared_ptr<MMIORange>, 2> mmioRange;
36  int model;
37  public:
38  TGLClientBW();
39 
40  uint64 getImcReads() override;
41  uint64 getImcWrites() override;
42  };
43 
45  {
46  std::shared_ptr<MMIORange> mmioRange;
47  public:
48  ClientBW();
49 
50  uint64 getImcReads() override;
51  uint64 getImcWrites() override;
52  uint64 getGtRequests() override;
53  uint64 getIaRequests() override;
54  uint64 getIoRequests() override;
55  };
56 
57 std::vector<size_t> getServerMemBars(const uint32 numIMC, const uint32 root_segment_ubox0, const uint32 root_bus_ubox0);
58 
59 class ServerBW
60 {
61  std::vector<std::shared_ptr<MMIORange> > mmioRanges;
62 
63  ServerBW();
64 public:
65  ServerBW(const uint32 numIMC, const uint32 root_segment_ubox0, const uint32 root_bus_ubox0);
66 
67  uint64 getImcReads();
68  uint64 getImcWrites();
69  uint64 getPMMReads();
70  uint64 getPMMWrites();
71 };
72 
73 } // namespace pcm
Definition: bw.h:33
Definition: bw.h:59
Definition: bw.cpp:12
Interface to access memory mapped IO registers.
Definition: bw.h:20
Definition: bw.h:44