[all-commits] [llvm/llvm-project] 218b50: [libc][rpc] Simplify mailbox state tracking

Jon Chesterfield via All-commits all-commits at lists.llvm.org
Wed May 3 16:21:37 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 218b50a606370b176ef776ff98cdb8b21b54277f
      https://github.com/llvm/llvm-project/commit/218b50a606370b176ef776ff98cdb8b21b54277f
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2023-05-04 (Thu, 04 May 2023)

  Changed paths:
    M libc/src/__support/OSUtil/gpu/io.cpp
    M libc/src/__support/OSUtil/gpu/quick_exit.cpp
    M libc/src/__support/RPC/rpc.h
    M libc/test/integration/startup/gpu/rpc_test.cpp

  Log Message:
  -----------
  [libc][rpc] Simplify mailbox state tracking

Removes the redundant Ack/Data bit manipulation.

Represents the inbox/outbox state with one bit instead of two. This will
be useful if we change to a packed representation and otherwise cuts the
runtime state space from 16 to 4.

Further simplification is possible, this patch is intentionally minimal.
- can_{send,recv}_data are now in == out
- {client,server}::try_open can be factored into Process:try_open

This implements the state machine of D148191, modulo differences in atomic
ordering and fences.

Reviewed By: jhuber6

Differential Revision: https://reviews.llvm.org/D149788




More information about the All-commits mailing list