Skip to content

AIX nocgo support: PR review order and dependencies #2072

@Dylan-M

Description

@Dylan-M

This issue tracks the recommended review order for the open AIX nocgo PRs. Some PRs build on earlier ones and contain their predecessor's changes in the diff against master — this is expected with PR stacking and will resolve once predecessors are merged.

For more information on PR stacking, here are 2 good resources:

Stack: cpu (review in order)

  1. cpu: fix AIX nocgo sar parsing (interval, field validation) #2035 — cpu: fix AIX nocgo sar parsing (interval, field validation)
  2. cpu: bypass delta math for AIX percentage-based TimesWithContext #2036 — cpu: bypass delta math for AIX percentage-based TimesWithContext (depends on cpu: fix AIX nocgo sar parsing (interval, field validation) #2035)
  3. cpu: cache prtconf output for static CPU info on AIX nocgo #2060 — cpu: cache prtconf output for static CPU info on AIX nocgo (independent)

Stack: disk (review in order)

  1. disk: fix UsageWithContext unit conversions on AIX nocgo #2032 — disk: fix UsageWithContext unit conversions on AIX nocgo
  2. disk: implement IOCountersWithContext for AIX nocgo via iostat #2033 — disk: implement IOCountersWithContext for AIX nocgo via iostat

Stack: load (review in order)

  1. load: fix MiscWithContext process state parsing on AIX nocgo #2037 — load: fix MiscWithContext process state parsing on AIX nocgo
  2. load: add testInvoker dependency injection for AIX nocgo tests #2038 — load: add testInvoker dependency injection for AIX nocgo tests (depends on load: fix MiscWithContext process state parsing on AIX nocgo #2037)
  3. load: add SysCalls and Interrupts fields to MiscStat #2064 — load: add SysCalls and Interrupts fields to MiscStat (independent)
  4. load: implement SystemCallsWithContext and InterruptsWithContext for AIX #2039 — load: implement SystemCallsWithContext and InterruptsWithContext for AIX (depends on load: add testInvoker dependency injection for AIX nocgo tests #2038 and load: add SysCalls and Interrupts fields to MiscStat #2064)

Stack: mem

Stack: net (review in order)

  1. net: populate BytesSent/BytesRecv via entstat on AIX nocgo #2034 — net: populate BytesSent/BytesRecv via entstat on AIX nocgo
  2. net: add parseEntstat and parseNetstatI unit tests with AIX fixtures #2073 — net: add parseEntstat and parseNetstatI unit tests with AIX fixtures (follow-up to net: populate BytesSent/BytesRecv via entstat on AIX nocgo #2034)
  3. net: implement ProtoCountersWithContext for AIX via netstat -s #2045 — net: implement ProtoCountersWithContext for AIX via netstat -s (independent)
  4. net: implement network connection retrieval for AIX via netstat/rmsock #2046 — net: implement network connection retrieval for AIX via netstat/rmsock (independent)

Stack: process (review in order)

  1. process: add SignalsPendingWithContext to Process interface #2048 — process: add SignalsPendingWithContext to Process interface (closed per maintainer feedback — SignalsPending is not part of psutil's API; AIX-specific implementation has been removed from process: add core AIX process support #2049)
  2. process: add core AIX process support #2049 — process: add core AIX process support
  3. process: implement ChildrenWithContext for AIX #2051 — process: implement ChildrenWithContext for AIX (depends on process: add core AIX process support #2049)
  4. process: deduplicate PIDs from AIX /proc directory listing #2052 — process: deduplicate PIDs from AIX /proc directory listing (depends on process: add core AIX process support #2049)
  5. process: fix AIXPSInfo Cid and Pad2 field types to match procfs.h #2053 — process: fix AIXPSInfo Cid and Pad2 field types to match procfs.h (depends on process: add core AIX process support #2049)
  6. process: implement fillFromLimitsWithContext for AIX via lsuser #2054 — process: implement fillFromLimitsWithContext for AIX via lsuser (depends on process: add core AIX process support #2049)
  7. process: implement EnvironWithContext for AIX via ps eww #2055 — process: implement EnvironWithContext for AIX via ps eww (depends on process: add core AIX process support #2049)
  8. process: document unimplemented AIX process methods #2056 — process: document unimplemented AIX process methods (depends on process: add core AIX process support #2049)
  9. process: fix golangci-lint issues for AIX target #2057 — process: fix golangci-lint issues for AIX target (depends on process: add core AIX process support #2049)
  10. process: handle zombie/kernel processes with missing /proc files on AIX #2058 — process: handle zombie/kernel processes with missing /proc files on AIX (depends on process: implement ChildrenWithContext for AIX #2051)

Stack: host (review in order)

  1. host: add testInvoker dependency injection for AIX #2040 — host: add testInvoker dependency injection for AIX
  2. host: rewrite UsersWithContext to parse who(1) output on AIX #2041 — host: rewrite UsersWithContext to read /etc/utmp on AIX (depends on host: add testInvoker dependency injection for AIX #2040)
  3. host: implement VirtualizationWithContext for AIX (WPAR/LPAR) #2042 — host: implement VirtualizationWithContext for AIX (WPAR/LPAR) (depends on host: add testInvoker dependency injection for AIX #2040)
  4. host: relax Procs assertion in test for unimplemented platforms #2043 — host: relax Procs assertion in test for unimplemented platforms (independent)
  5. host: collect errors in InfoWithContext instead of failing on first error #2044 — host: collect errors in InfoWithContext instead of failing on first error (independent)
  6. host: implement numProcs for AIX nocgo via process.PidsWithContext #2050 — host: implement numProcs for AIX nocgo via process.PidsWithContext (depends on host: add testInvoker dependency injection for AIX #2040; also requires process: add core AIX process support #2049 from process stack)
  7. host: cache static system info on AIX to avoid repeated subprocess spawns #2061 — host: cache static system info on AIX (depends on host: add testInvoker dependency injection for AIX #2040)

Notes

  • PRs marked as dependent will show their predecessor's changes in the diff against master. Once the predecessor is merged and the dependent PR is rebased, its diff will show only its own changes.
  • I'm happy to rebase any PR on request, or to answer questions about any specific change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions