Page MenuHomeFreeBSD

Account for AIO socket operations in thread/process resource usage.
ClosedPublic

Authored by jhb on Jun 21 2016, 9:28 PM.
Tags
None
Referenced Files
F101908453: D6911.id17744.diff
Tue, Nov 5, 11:56 AM
Unknown Object (File)
Sat, Oct 19, 11:18 AM
Unknown Object (File)
Oct 2 2024, 9:41 PM
Unknown Object (File)
Oct 1 2024, 10:47 PM
Unknown Object (File)
Sep 30 2024, 1:25 AM
Unknown Object (File)
Sep 17 2024, 9:06 PM
Unknown Object (File)
Sep 16 2024, 4:07 PM
Unknown Object (File)
Sep 12 2024, 1:25 PM
Subscribers

Details

Summary

Account for AIO socket operations in thread/process resource usage.

File and disk-backed I/O requests store counts of read/written disk
blocks in each AIO job so that they can be charged to the thread that
completes an AIO request via aio_return() or aio_waitcomplete(). This
change extends AIO jobs to store counts of received/sent messages and
updates socket backends to set these counts accordingly. Note that
the socket backends are careful to only charge a single messages for
each AIO request even though a single request on a blocking socket might
invoke sosend or soreceive multiple times. This is to mimic the
resource accounting of synchronous read/write.

Adjust the UNIX socketpair AIO test to verify that the message resource
usage counts update accordingly for aio_read and aio_write.

Test Plan
  • Run the added test before and after.
  • Verify the Chelsio DDP change by using '/usr/bin/time -l' on a DDP test program.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb retitled this revision from to Account for AIO socket operations in thread/process resource usage..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
  • Simplify the socket msgru accounting.
  • Use long's for raw usage statistics.
This revision was automatically updated to reflect the committed changes.