Skip to content

Let the agent choose the channels it uploads - #186

Merged
CodingInAVan merged 2 commits into
mainfrom
launcher-agent-channels
Oct 29, 2026
Merged

CodingInAVan merged 2 commits into
mainfrom
launcher-agent-channels

Conversation

@CodingInAVan

Copy link
Copy Markdown
Contributor

Description

The launcher no longer pins the channels its gpufl-agent uploads. gpufl trace --upload and gpufl upload used to pass device,scope,system,sass explicitly, so any other producer's channel in the output folder (for example the serving channel the Python gpufl-serving writer uses) was never uploaded by a launcher-started agent. gpufl-client now carries no producer's channel names: with no --log-types, the agent decides, and from gpu-flight/gpufl-agent#31 on it uploads every channel that has published windows with sidecars.

  • TraceArgs::log_types is empty by default; --log-types still passes the user's list.
  • gpufl upload no longer hard-codes the list (it has no --log-types option).
  • With an empty list, the launcher removes an inherited GPUFL_LOG_TYPES from the environment the agent inherits, so a value exported in the parent shell cannot narrow it.
  • Help text: "Upload only these agent channels (default: every channel the agent finds)". daemon/README.md describes the agent's new default.
  • gpufl monitor is unchanged (it passes system).

Compatibility:

  • New launcher + an older agent: no list passed, so the agent uses its own default; every released agent (v1.0.0 to v1.0.4) defaults to the four native channels, exactly as today.
  • Old launcher + new agent: the four are passed and act as a filter, as today.
  • Native sessions contain only those four channels, so GPU session uploads do not change.

Type of Change

  • Bug fix
  • New feature
  • Documentation update

Testing

  • Windows (VS 2022, CUDA 13.1), Release gpufl_tests, launcher and agent suites: 159 of 159 pass. New: AgentEnvironmentTest.AnEmptyChannelListRemovesAnInheritedFilter (a probe child sees an exported GPUFL_LOG_TYPES, and no longer sees it after an empty list is applied); CliParseTrace.UploadFlag now expects an empty default; UploadAgentFlags still keeps an explicit list.
  • Not compiled here, so CI is the first build: the POSIX branch of the new unsetEnv (::unsetenv) and the POSIX branches of the new test's helpers.

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas

gpufl trace --upload and gpufl upload pinned the agent to
device,scope,system,sass. The agent is becoming a channel-agnostic
transport that uploads every channel with published windows, so other
producers (such as the serving writer) need no launcher change, and the
launcher should not carry their channel names.

- TraceArgs::log_types is now empty by default and gpufl upload passes
  no list. --log-types still narrows a trace upload.
- With an empty list the agent starts without GPUFL_LOG_TYPES: an
  inherited value is removed, so the agent's own default applies. The
  agent never took the list as an argument.
- gpufl monitor still passes system.

Uploads do not change: native sessions hold only those four channels,
every released agent defaults to the same four, and an older launcher's
list acts as a filter on a newer agent.
The table still listed device,scope,system. With a channel-agnostic
agent, an unset GPUFL_LOG_TYPES means every channel it finds.
@CodingInAVan
CodingInAVan merged commit 950b5f8 into main Oct 29, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant