Skip to content

Commit e3b5fa1

Browse files
committed
[Profiling] Adding spawn_named! macro to name tasks when aptos-console enabled
1 parent 0669d87 commit e3b5fa1

File tree

7 files changed

+49
-7
lines changed

7 files changed

+49
-7
lines changed

consensus/src/epoch_manager.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ impl EpochManager {
415415
self.quorum_store_to_mempool_sender.clone(),
416416
self.config.mempool_txn_pull_timeout_ms,
417417
);
418-
tokio::spawn(quorum_store.start());
418+
spawn_named!("Quorum Store", quorum_store.start());
419419
}
420420

421421
/// this function spawns the phases and a buffer manager

consensus/src/experimental/buffer_manager.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ impl BufferManager {
162162
duration: Duration,
163163
) {
164164
counters::BUFFER_MANAGER_RETRY_COUNT.inc();
165-
tokio::spawn(async move {
165+
spawn_named!(&format!("retry request")[..], async move {
166166
tokio::time::sleep(duration).await;
167167
sender
168168
.send(request)

crates/aptos-logger/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ pub mod prelude {
139139
debug, error, info, sample,
140140
sample::{SampleRate, Sampling},
141141
security::SecurityEvent,
142-
trace, warn,
142+
spawn_named, trace, warn,
143143
};
144144
}
145145

crates/aptos-logger/src/macros.rs

+38
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,44 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
//! Macros for sending logs at predetermined log `Level`s
5+
#[cfg(not(feature = "aptos-console"))]
6+
#[macro_export]
7+
macro_rules! spawn_named {
8+
($name:expr, $func:expr) => { tokio::spawn($func); };
9+
($name:expr, $handler:expr, $func:expr) => { $handler.spawn($func); };
10+
($name:expr, $async:ident = async; $clojure:block) => { tokio::spawn( async $clojure); };
11+
($name:expr, $handler:expr, $async:ident = async; $clojure:block) => { $handler.spawn( async $clojure); };
12+
($name:expr, $async:ident = async ; $move:ident = move; $clojure:block) => { tokio::spawn( async move $clojure); };
13+
($name:expr, $handler:expr, $async:ident = async ; $move:ident = move; $clojure:block) => { $handler.spawn( async move $clojure); };
14+
}
15+
16+
#[cfg(feature = "aptos-console")]
17+
#[macro_export]
18+
macro_rules! spawn_named {
19+
($name:expr, $func:expr) => { tokio::task::Builder::new()
20+
.name($name)
21+
.spawn($func); };
22+
($name:expr, $handle:expr, $func:expr) => { tokio::task::Builder::new()
23+
.name($name)
24+
.spawn_on($func, $handle); };
25+
26+
($name:expr, $async:ident = async; $clojure:block) => { tokio::task::Builder::new()
27+
.name($name)
28+
.spawn(async $clojure); };
29+
30+
($name:expr, $async:ident = async; $move:ident = move; $clojure:block) => { tokio::task::Builder::new()
31+
.name($name)
32+
.spawn(async move $clojure); };
33+
34+
($name:expr, $handler:expr, $async:ident = async; $clojure:block) => { tokio::task::Builder::new()
35+
.name($name)
36+
.spawn_on(async $clojure, $handler); };
37+
38+
($name:expr, $handler:expr, $async:ident = async; $move:ident = move; $clojure:block) => { tokio::task::Builder::new()
39+
.name($name)
40+
.spawn_on(async move $clojure, $handler); };
41+
42+
}
543

644
/// Log at the given level, it's recommended to use a specific level macro instead
745
#[macro_export]

network/discovery/src/file.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ use std::{
1212
time::Duration,
1313
};
1414

15+
#[cfg(test)]
16+
use aptos_logger::spawn_named;
17+
1518
pub struct FileStream {
1619
file_path: PathBuf,
1720
interval: Pin<Box<Interval>>,
@@ -83,7 +86,7 @@ mod tests {
8386
Box::pin(listener).run().await
8487
};
8588

86-
tokio::task::spawn(listener_task);
89+
spawn_named!("[Network] Listner Task", listener_task);
8790
conn_mgr_reqs_rx
8891
}
8992

@@ -154,7 +157,7 @@ mod tests {
154157
let peers: PeerSet = PeerSet::new();
155158
write_peer_set(&peers, path.as_ref().as_ref());
156159
};
157-
tokio::task::spawn(writer_task);
160+
spawn_named!("[Network] Writer Task", writer_task);
158161

159162
if let Some(ConnectivityRequest::UpdateDiscoveredPeers(
160163
DiscoverySource::File,

network/discovery/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl DiscoveryChangeListener {
9696
}
9797

9898
pub fn start(self, executor: &Handle) {
99-
executor.spawn(Box::pin(self).run());
99+
spawn_named!("DiscoveryChangeListener", executor, Box::pin(self).run());
100100
}
101101

102102
async fn run(mut self: Pin<Box<Self>>) {

network/src/protocols/health_checker/builder.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use crate::{
99
},
1010
};
1111
use aptos_config::network_id::NetworkContext;
12+
use aptos_logger::prelude::*;
1213
use aptos_time_service::TimeService;
1314
use std::{sync::Arc, time::Duration};
1415
use tokio::runtime::Handle;
@@ -43,7 +44,7 @@ impl HealthCheckerBuilder {
4344

4445
pub fn start(&mut self, executor: &Handle) {
4546
if let Some(service) = self.service.take() {
46-
executor.spawn(service.start());
47+
spawn_named!("[Network] HC", executor, service.start());
4748
}
4849
}
4950
}

0 commit comments

Comments
 (0)