Skip to content

Organize and remove legacy options #1220

@robgjansen

Description

@robgjansen

We've collected a set of options that may be rarely used. As we are migrating to a new option and config format for Shadow 2.0, we are going to remove legacy options that we don't think are that useful for most users.

Here are the legacy options I am pretty confident we can remove:

Simulation Examples
  --test                                  Run basic benchmark tests
  --tgen                                  PLACEHOLDER - Run basic data transfer simulation

System Options
  --cpu-precision=TIME                    round measured CPU delays to the nearest TIME, in microseconds (negative value to disable fuzzy CPU delays) [200]
  --cpu-threshold=TIME                    TIME delay threshold after which the CPU becomes blocked, in microseconds (negative value to disable CPU delays) (experimental!) [-1]
  --tcp-ssthresh=N                        Set TCP ssthresh value instead of discovering it via packet loss or hystart [0]
  --tcp-windows=N                         Initialize the TCP send, receive, and congestion windows to N packets [10]

Application Options:
  -p, --preload=VALUE                     LD_PRELOAD environment VALUE to use for function interposition (/path/to/lib:...) [None]

I'm less confident about these, and we might want to keep them around. How about we move them to the "Experimental" section?

System Options
  --interface-batch=TIME                  Batch TIME for network interface sends and receives, in microseconds [5000]
  --interface-buffer=N                    Size of the network interface receive buffer, in bytes [1024000]
  --interface-qdisc=QDISC                 The interface queuing discipline QDISC used to select the next sendable socket ('fifo' or 'rr') ['fifo']
  --socket-recv-buffer=N                  Initialize the socket receive buffer to N bytes [174760]
  --socket-send-buffer=N                  Initialize the socket send buffer to N bytes [131072]

These we do want, but I would move them to the "Experimental" section too:

Application Options:
  -r, --runahead=TIME                     If set, overrides the automatically calculated minimum TIME workers may run ahead when sending events between nodes, in milliseconds [0]
  -t, --scheduler-policy=SPOL             The event scheduler's policy for thread synchronization ('thread', 'host', 'steal', 'threadXthread', 'threadXhost') ['steal']
  -n, --interpose-method=METHOD           Which interposition method to use ('hybrid', 'preload', 'ptrace') ['ptrace']
  -z, --pin-cpus                          Use experimental CPU pinning

I think those options not listed here are still useful to keep.

Metadata

Metadata

Assignees

Labels

Component: MainComposing the core Shadow executableType: MaintenanceRefactoring, cleanup, documenation, or process improvements

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions