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
Unknown Object (File)
Sat, Aug 10, 8:40 AM
Unknown Object (File)
Jul 10 2024, 3:07 PM
Unknown Object (File)
Jul 6 2024, 7:52 PM
Unknown Object (File)
Jul 6 2024, 5:21 PM
Unknown Object (File)
Jun 24 2024, 5:39 AM
Unknown Object (File)
Jun 16 2024, 8:15 PM
Unknown Object (File)
Jun 15 2024, 10:35 PM
Unknown Object (File)
May 25 2024, 8:10 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.