Skip to content

Commit 0e05a88

Browse files
committed
use larger pacer headroom
1 parent 2fcd8fa commit 0e05a88

4 files changed

Lines changed: 16 additions & 13 deletions

File tree

Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,22 @@ flamegraph: profile
4646
perf-server:
4747
$(eval PIDS := $(shell pgrep -x $(TARGET) | paste -sd "," -))
4848
@if [ -z "$(PIDS)" ]; then echo "Error: pulsebeam not running"; exit 1; fi
49+
sudo sysctl -w kernel.perf_event_max_stack=64
4950
sudo sysctl -w kernel.kptr_restrict=0
5051
sudo sysctl -w kernel.perf_event_paranoid=-1
5152
@echo "Recording pulsebeam PIDs=$(PIDS) for 15s at 999Hz..."
5253
perf config annotate.objdump=llvm-objdump
5354
# -p $(PIDS)
5455
perf record \
55-
-F 99 \
5656
-a \
57-
-e cycles \
5857
-g \
58+
-e cycles \
5959
--call-graph fp \
60-
-m 128M \
60+
-F 15000 \
61+
-m 256M \
6162
-o perf.data \
6263
-- sleep 15
63-
perf script -F +pid > perf-firefox.data
64+
#perf script -F +pid > perf-firefox.data
6465
@echo "Launching UI..."
6566
hotspot perf.data
6667

pulsebeam-agent/src/actor.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ impl BitrateController {
246246
self.config.min_bitrate.as_f64(),
247247
self.config.max_bitrate.as_f64(),
248248
);
249-
Bitrate::from(current_bitrate)
249+
Bitrate::from(current_bitrate) * 1.50
250250
}
251251
}
252252

@@ -926,6 +926,8 @@ impl AgentDriver {
926926
return Some(ev);
927927
}
928928

929+
let mut last_desired = Bitrate::bps(0);
930+
929931
loop {
930932
// Drain all str0m output — this may queue pending_events.
931933
let Some(deadline) = self.poll_rtc() else {
@@ -1020,7 +1022,11 @@ impl AgentDriver {
10201022
let desired_bps = self.layer_ctrl.tick(self.now);
10211023
let desired_bitrate = Bitrate::from(desired_bps.max(0.0) as u64);
10221024
let filtered_bitrate = self.desired_ctrl.update(desired_bitrate);
1023-
self.rtc.bwe().set_desired_bitrate(filtered_bitrate);
1025+
if filtered_bitrate != last_desired {
1026+
last_desired = filtered_bitrate;
1027+
self.rtc.bwe().set_desired_bitrate(filtered_bitrate);
1028+
}
1029+
tracing::debug!("desired={}", filtered_bitrate);
10241030
}
10251031
_ = self.sleep.as_mut() => {
10261032
if self.rtc.handle_input(Input::Timeout(Instant::now().into())).is_err() {
@@ -1031,12 +1037,6 @@ impl AgentDriver {
10311037
self.perform_reconnect().await;
10321038
}
10331039
}
1034-
1035-
// Return any events produced by this select iteration.
1036-
if let Some(ev) = self.pending_events.pop_front() {
1037-
return Some(ev);
1038-
}
1039-
// No event yet — loop back to drain str0m output.
10401040
}
10411041
}
10421042

pulsebeam-cli/src/main.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ fn main() -> Result<()> {
109109
let cli = Cli::parse();
110110
let mut builder = Builder::new_multi_thread();
111111
builder.enable_all().enable_alt_timer();
112+
tracing_subscriber::fmt::init();
112113

113114
let runtime = builder.build()?;
114115
runtime.block_on(async move {
@@ -292,6 +293,7 @@ async fn spawn_agent(
292293
}
293294
}
294295
AgentEvent::MediaReceived { frame, receive_time, .. } => {
296+
tracing::info!("received: {}", frame.data.len());
295297
if let Some(abs_capture_time) = frame.abs_capture_time {
296298
let wallclock = wallclock_at(receive_time);
297299
if let Ok(latency) = wallclock.duration_since(abs_capture_time) {

pulsebeam/src/bitrate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ impl BitrateController {
8181
self.config.min_bitrate.as_f64(),
8282
self.config.max_bitrate.as_f64(),
8383
);
84-
Bitrate::from(current_bitrate)
84+
Bitrate::from(current_bitrate) * 1.50
8585
}
8686
}
8787

0 commit comments

Comments
 (0)