mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:37:35 +00:00
Kernel+SystemMonitor: Log amounts of I/O per thread
This patch adds these I/O counters to each thread: - (Inode) file read bytes - (Inode) file write bytes - Unix socket read bytes - Unix socket write bytes - IPv4 socket read bytes - IPv4 socket write bytes These are then exposed in /proc/all and seen in SystemMonitor.
This commit is contained in:
parent
a18aa8fd5f
commit
5a45376180
10 changed files with 171 additions and 17 deletions
|
@ -363,6 +363,45 @@ public:
|
|||
unsigned cow_faults() const { return m_cow_faults; }
|
||||
void did_cow_fault() { ++m_cow_faults; }
|
||||
|
||||
unsigned file_read_bytes() const { return m_file_read_bytes; }
|
||||
unsigned file_write_bytes() const { return m_file_write_bytes; }
|
||||
|
||||
void did_file_read(unsigned bytes)
|
||||
{
|
||||
m_file_read_bytes += bytes;
|
||||
}
|
||||
|
||||
void did_file_write(unsigned bytes)
|
||||
{
|
||||
m_file_write_bytes += bytes;
|
||||
}
|
||||
|
||||
unsigned unix_socket_read_bytes() const { return m_unix_socket_read_bytes; }
|
||||
unsigned unix_socket_write_bytes() const { return m_unix_socket_write_bytes; }
|
||||
|
||||
void did_unix_socket_read(unsigned bytes)
|
||||
{
|
||||
m_unix_socket_read_bytes += bytes;
|
||||
}
|
||||
|
||||
void did_unix_socket_write(unsigned bytes)
|
||||
{
|
||||
m_unix_socket_write_bytes += bytes;
|
||||
}
|
||||
|
||||
unsigned ipv4_socket_read_bytes() const { return m_ipv4_socket_read_bytes; }
|
||||
unsigned ipv4_socket_write_bytes() const { return m_ipv4_socket_write_bytes; }
|
||||
|
||||
void did_ipv4_socket_read(unsigned bytes)
|
||||
{
|
||||
m_ipv4_socket_read_bytes += bytes;
|
||||
}
|
||||
|
||||
void did_ipv4_socket_write(unsigned bytes)
|
||||
{
|
||||
m_ipv4_socket_write_bytes += bytes;
|
||||
}
|
||||
|
||||
Thread* clone(Process&);
|
||||
|
||||
template<typename Callback>
|
||||
|
@ -416,6 +455,15 @@ private:
|
|||
unsigned m_zero_faults { 0 };
|
||||
unsigned m_cow_faults { 0 };
|
||||
|
||||
unsigned m_file_read_bytes { 0 };
|
||||
unsigned m_file_write_bytes { 0 };
|
||||
|
||||
unsigned m_unix_socket_read_bytes { 0 };
|
||||
unsigned m_unix_socket_write_bytes { 0 };
|
||||
|
||||
unsigned m_ipv4_socket_read_bytes { 0 };
|
||||
unsigned m_ipv4_socket_write_bytes { 0 };
|
||||
|
||||
FPUState* m_fpu_state { nullptr };
|
||||
State m_state { Invalid };
|
||||
ThreadPriority m_priority { ThreadPriority::Normal };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue