mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:37:34 +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
|
@ -206,7 +206,10 @@ ssize_t IPv4Socket::sendto(FileDescription&, const void* data, size_t data_lengt
|
|||
return data_length;
|
||||
}
|
||||
|
||||
return protocol_send(data, data_length);
|
||||
int nsent = protocol_send(data, data_length);
|
||||
if (nsent > 0)
|
||||
current->did_ipv4_socket_write(nsent);
|
||||
return nsent;
|
||||
}
|
||||
|
||||
ssize_t IPv4Socket::recvfrom(FileDescription& description, void* buffer, size_t buffer_length, int flags, sockaddr* addr, socklen_t* addr_length)
|
||||
|
@ -285,7 +288,10 @@ ssize_t IPv4Socket::recvfrom(FileDescription& description, void* buffer, size_t
|
|||
return ipv4_packet.payload_size();
|
||||
}
|
||||
|
||||
return protocol_receive(packet.data.value(), buffer, buffer_length, flags);
|
||||
int nreceived = protocol_receive(packet.data.value(), buffer, buffer_length, flags);
|
||||
if (nreceived > 0)
|
||||
current->did_ipv4_socket_read(nreceived);
|
||||
return nreceived;
|
||||
}
|
||||
|
||||
bool IPv4Socket::did_receive(const IPv4Address& source_address, u16 source_port, KBuffer&& packet)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue