Skip to content

Commit 2f0e331

Browse files
authored
Move emscripten_memprof_sbrk_grow into libtrace.js (#26364)
This allows for the complete removal of `libmemoryprofiler.js` since the memory profiler can now just use the same libtrace-based hooks for all events. I noticed this while reviewing #26175
1 parent fd59f68 commit 2f0e331

6 files changed

Lines changed: 16 additions & 20 deletions

File tree

src/lib/libmemoryprofiler.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/lib/libsigs.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,7 @@ sigs = {
833833
emscripten_trace_report_error__sig: 'vp',
834834
emscripten_trace_report_memory_layout__sig: 'v',
835835
emscripten_trace_report_off_heap_data__sig: 'v',
836+
emscripten_trace_sbrk_grow__sig: 'vpp',
836837
emscripten_trace_set_enabled__sig: 'vi',
837838
emscripten_trace_set_session_username__sig: 'vp',
838839
emscripten_trace_task_associate_data__sig: 'vpp',

src/lib/libtrace.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ var LibraryTracing = {
4141
EVENT_OFF_HEAP: 'off-heap',
4242
EVENT_REALLOCATE: 'reallocate',
4343
EVENT_REPORT_ERROR: 'report-error',
44+
EVENT_SBRK_GROW: 'sbrk-grow',
4445
EVENT_SESSION_NAME: 'session-name',
4546
EVENT_TASK_ASSOCIATE_DATA: 'task-associate-data',
4647
EVENT_TASK_END: 'task-end',
@@ -210,6 +211,15 @@ var LibraryTracing = {
210211
UTF8ToString(error), callstack]);
211212
},
212213

214+
emscripten_trace_sbrk_grow: (old_brk, new_brk) => {
215+
Module['onSbrkGrow']?.(old_brk, new_brk, jsStackTrace());
216+
if (EmscriptenTrace.postEnabled) {
217+
var now = EmscriptenTrace.now();
218+
EmscriptenTrace.post([EmscriptenTrace.EVENT_SBRK_GROW,
219+
now, old_brk, new_brk]);
220+
}
221+
},
222+
213223
emscripten_trace_record_allocation: (address, size) => {
214224
Module['onMalloc']?.(address, size, jsStackTrace());
215225
if (EmscriptenTrace.postEnabled) {

src/modules.mjs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,6 @@ function calculateLibraries() {
7878
libraries.push('libtime.js');
7979
}
8080

81-
if (EMSCRIPTEN_TRACING) {
82-
libraries.push('libmemoryprofiler.js');
83-
}
84-
8581
if (SUPPORT_BASE64_EMBEDDING || ENVIRONMENT_MAY_BE_SHELL) {
8682
libraries.push('libbase64.js');
8783
}

system/include/emscripten/trace.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ void emscripten_trace_task_end(void);
6666

6767
void emscripten_trace_close(void);
6868

69+
void emscripten_trace_sbrk_grow(intptr_t old, intptr_t new);
70+
6971
#else
7072

7173
#define emscripten_trace_configure(collector_url, application) ((void)0)
@@ -93,6 +95,7 @@ void emscripten_trace_close(void);
9395
#define emscripten_trace_task_resume(task_id, explanation) ((void)0)
9496
#define emscripten_trace_task_end() ((void)0)
9597
#define emscripten_trace_close() ((void)0)
98+
#define emscripten_trace_sbrk_grow(old, new) ((void)0)
9699

97100
#endif
98101

system/lib/libc/sbrk.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,8 @@
2121
#include <stdlib.h>
2222
#endif
2323

24-
#ifdef __EMSCRIPTEN_TRACING__
25-
void emscripten_memprof_sbrk_grow(intptr_t old, intptr_t new);
26-
#else
27-
#define emscripten_memprof_sbrk_grow(...) ((void)0)
28-
#endif
29-
3024
#include <emscripten/heap.h>
25+
#include <emscripten/trace.h>
3126

3227
extern size_t __heap_base;
3328

@@ -93,7 +88,7 @@ void *_sbrk64(int64_t increment) {
9388
*sbrk_ptr = new_brk;
9489
#endif
9590

96-
emscripten_memprof_sbrk_grow(old_brk, new_brk);
91+
emscripten_trace_sbrk_grow(old_brk, new_brk);
9792
return (void*)old_brk;
9893
}
9994
}

0 commit comments

Comments
 (0)