| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Wireform.Transport.Config
Synopsis
- data Profile
- profileConfig :: Profile -> TransportConfig
- data TransportConfig = TransportConfig {}
- defaultTransportConfig :: TransportConfig
- data WaitPolicy
- data SpinBudget
- data PinningPolicy
- = NoPinning
- | PinToCore !Int
- | PinToCoreSet ![Int]
- | PinNearFd
- | PinIsolated
- data PagePolicy
- data NumaPolicy
- data IOUringConfig = IOUringConfig {}
- data SQPollPolicy
- data CompletionWaitMode
- defaultIOUringConfig :: IOUringConfig
- data CapabilityAction
Profiles
High-level performance profile. Most users pick one of these
and never touch TransportConfig directly.
Constructors
| Throughput | IO-manager-parked. Good citizen on shared systems. |
| LowLatency | Brief spin before parking, pinned thread, huge pages where available. |
| UltraLowLatency | Pure busy-poll, pinned to isolated core, huge pages, mlock. Burns one CPU core permanently. |
Instances
| Bounded Profile Source # | |
| Enum Profile Source # | |
| Read Profile Source # | |
| Show Profile Source # | |
| Eq Profile Source # | |
| Ord Profile Source # | |
Defined in Wireform.Transport.Config | |
profileConfig :: Profile -> TransportConfig Source #
Expand a profile into a full TransportConfig.
Full configuration
data TransportConfig Source #
Constructors
| TransportConfig | |
Fields
| |
Instances
| Show TransportConfig Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> TransportConfig -> ShowS # show :: TransportConfig -> String # showList :: [TransportConfig] -> ShowS # | |
Wait policy
data WaitPolicy Source #
Constructors
| WaitParkImmediately | Park on the IO manager as soon as caught up. |
| WaitSpinThenPark !SpinBudget | Busy-spin for the budget, then park. |
| WaitBusyPoll | Never park. Burns a core. |
Instances
| Show WaitPolicy Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> WaitPolicy -> ShowS # show :: WaitPolicy -> String # showList :: [WaitPolicy] -> ShowS # | |
data SpinBudget Source #
Constructors
| SpinIterations !Int | |
| SpinNanos !Int | |
| SpinUntilPaused |
Instances
| Show SpinBudget Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> SpinBudget -> ShowS # show :: SpinBudget -> String # showList :: [SpinBudget] -> ShowS # | |
Pinning
data PinningPolicy Source #
Constructors
| NoPinning | |
| PinToCore !Int | |
| PinToCoreSet ![Int] | |
| PinNearFd | Auto-detect: pin near the NIC / fd's NUMA node. |
| PinIsolated | Pick an isolated core (Linux |
Instances
| Show PinningPolicy Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> PinningPolicy -> ShowS # show :: PinningPolicy -> String # showList :: [PinningPolicy] -> ShowS # | |
Pages
data PagePolicy Source #
Constructors
| StandardPages | |
| PreferHugePages | Request huge pages; fall back to standard if unavailable. |
| RequireHugePages | Fail at ring creation if huge pages are unavailable. |
Instances
| Show PagePolicy Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> PagePolicy -> ShowS # show :: PagePolicy -> String # showList :: [PagePolicy] -> ShowS # | |
NUMA
data NumaPolicy Source #
Constructors
| NoNumaPreference | |
| NumaNode !Int | |
| NumaAutoFromFd | |
| NumaAutoFromCurrentCore |
Instances
| Show NumaPolicy Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> NumaPolicy -> ShowS # show :: NumaPolicy -> String # showList :: [NumaPolicy] -> ShowS # | |
io_uring
data IOUringConfig Source #
Constructors
| IOUringConfig | |
Fields | |
Instances
| Show IOUringConfig Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> IOUringConfig -> ShowS # show :: IOUringConfig -> String # showList :: [IOUringConfig] -> ShowS # | |
data SQPollPolicy Source #
Constructors
| NoSQPoll | |
| SQPollWithIdle !Int |
Instances
| Show SQPollPolicy Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> SQPollPolicy -> ShowS # show :: SQPollPolicy -> String # showList :: [SQPollPolicy] -> ShowS # | |
data CompletionWaitMode Source #
Constructors
| WaitViaEventFd | |
| WaitViaBusyPoll |
Instances
| Show CompletionWaitMode Source # | |
Defined in Wireform.Transport.Config Methods showsPrec :: Int -> CompletionWaitMode -> ShowS # show :: CompletionWaitMode -> String # showList :: [CompletionWaitMode] -> ShowS # | |
Capability handling
data CapabilityAction Source #
Constructors
| SilentlyIgnore | |
| LogAndContinue | |
| FailHard |