@@ -6,85 +6,85 @@ Subject: [PATCH] mallinfo implementation is glibc specific
6
6
Upstream-Status: Pending
7
7
Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
8
---
9
- --- a/third_party/tflite/src/tensorflow/lite/profiling/memory_info .cc
10
- +++ b/third_party/tflite/src/tensorflow/lite/profiling/memory_info .cc
11
- @@ -35 ,7 +35 ,7 @@ bool MemoryUsage::IsSupported() {
12
-
13
- MemoryUsage GetMemoryUsage() {
14
- MemoryUsage result;
15
- - #ifdef __linux__
16
- + #if defined(__linux__) && defined(__GLIBC__)
17
- rusage res;
18
- if (getrusage(RUSAGE_SELF, &res) == 0) {
19
- result.max_rss_kb = res.ru_maxrss;
9
+ --- a/base/trace_event/malloc_dump_provider .cc
10
+ +++ b/base/trace_event/malloc_dump_provider .cc
11
+ @@ -220 ,7 +220 ,7 @@ bool MallocDumpProvider::OnMemoryDump(co
12
+ &allocated_objects_count);
13
+ #elif BUILDFLAG(IS_FUCHSIA)
14
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
15
+ - #else
16
+ + #elif defined(__GLIBC__)
17
+ #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
18
+ # if __GLIBC_PREREQ(2, 33)
19
+ #define MALLINFO2_FOUND_IN_LIBC
20
20
--- a/base/process/process_metrics_posix.cc
21
21
+++ b/base/process/process_metrics_posix.cc
22
22
@@ -105,7 +105,7 @@ void IncreaseFdLimitTo(unsigned int max_
23
23
24
- #endif // !defined(OS_FUCHSIA )
24
+ #endif // !BUILDFLAG(IS_FUCHSIA )
25
25
26
- - #if defined(OS_LINUX ) || defined(OS_CHROMEOS ) || defined(OS_ANDROID )
27
- + #if (defined(OS_LINUX ) && defined(__GLIBC__)) || defined(OS_CHROMEOS ) || defined(OS_ANDROID )
26
+ - #if BUILDFLAG(IS_LINUX ) || BUILDFLAG(IS_CHROMEOS ) || BUILDFLAG(IS_ANDROID )
27
+ + #if (BUILDFLAG(IS_LINUX ) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS ) || BUILDFLAG(IS_ANDROID )
28
28
namespace {
29
29
30
30
size_t GetMallocUsageMallinfo() {
31
- @@ -127,16 +127,16 @@ size_t GetMallocUsageMallinfo() {
31
+ @@ -123,7 +123,7 @@ size_t GetMallocUsageMallinfo() {
32
32
}
33
33
34
34
} // namespace
35
- - #endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
36
- + #endif // (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
35
+ - #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
36
+ + #endif // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
37
+ // BUILDFLAG(IS_ANDROID)
37
38
38
39
size_t ProcessMetrics::GetMallocUsage() {
39
- #if defined(OS_APPLE )
40
+ @@ -131,9 +131,9 @@ size_t ProcessMetrics::GetMallocUsage( )
40
41
malloc_statistics_t stats = {0};
41
42
malloc_zone_statistics(nullptr, &stats);
42
43
return stats.size_in_use;
43
- - #elif defined(OS_LINUX ) || defined(OS_CHROMEOS ) || defined(OS_ANDROID )
44
- + #elif (defined(OS_LINUX ) && defined(__GLIBC__)) || defined(OS_CHROMEOS ) || defined(OS_ANDROID )
44
+ - #elif BUILDFLAG(IS_LINUX ) || BUILDFLAG(IS_CHROMEOS ) || BUILDFLAG(IS_ANDROID )
45
+ + #elif (BUILDFLAG(IS_LINUX ) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS ) || BUILDFLAG(IS_ANDROID )
45
46
return GetMallocUsageMallinfo();
46
- - #elif defined(OS_FUCHSIA )
47
+ - #elif BUILDFLAG(IS_FUCHSIA )
47
48
+ #else
48
49
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
49
50
return 0;
50
51
#endif
51
- --- a/base/trace_event/malloc_dump_provider.cc
52
- +++ b/base/trace_event/malloc_dump_provider.cc
53
- @@ -219,7 +219,6 @@ bool MallocDumpProvider::OnMemoryDump(co
54
- #define MALLINFO2_FOUND_IN_LIBC
55
- struct mallinfo2 info = mallinfo2();
56
- #endif
57
- - #endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
58
- #if !defined(MALLINFO2_FOUND_IN_LIBC)
59
- struct mallinfo info = mallinfo();
60
- #endif
61
- @@ -232,6 +231,7 @@ bool MallocDumpProvider::OnMemoryDump(co
62
-
63
- // Total allocated space is given by |uordblks|.
64
- allocated_objects_size = info.uordblks;
65
- + #endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
66
- #endif
67
-
68
- MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("malloc");
69
- --- a/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
70
- +++ b/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
71
- @@ -133,7 +133,7 @@
72
- /* #undef HAVE_MALLCTL */
52
+ --- a/third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
53
+ +++ b/third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
54
+ @@ -35,7 +35,7 @@ bool MemoryUsage::IsSupported() {
73
55
74
- /* Define to 1 if you have the `mallinfo' function. */
75
- - #define HAVE_MALLINFO 1
76
- + /* #undef HAVE_MALLINFO */
56
+ MemoryUsage GetMemoryUsage() {
57
+ MemoryUsage result;
58
+ - #ifdef __linux__
59
+ + #if defined(__linux__) && defined(__GLIBC__)
60
+ rusage res;
61
+ if (getrusage(RUSAGE_SELF, &res) == 0) {
62
+ result.max_rss_kb = res.ru_maxrss;
63
+ --- a/third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
64
+ +++ b/third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
65
+ @@ -86,11 +86,11 @@ unsigned Process::getPageSize() {
66
+ }
77
67
78
- /* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */
79
- /* so we need to check glibc version for the new API to be safe */
68
+ size_t Process::GetMallocUsage() {
69
+ - #if defined(HAVE_MALLINFO2)
70
+ + #if defined(HAVE_MALLINFO2) && defined(__GLIBC__)
71
+ struct mallinfo2 mi;
72
+ mi = ::mallinfo2();
73
+ return mi.uordblks;
74
+ - #elif defined(HAVE_MALLINFO)
75
+ + #elif defined(HAVE_MALLINFO) && defined(__GLIBC__)
76
+ struct mallinfo mi;
77
+ mi = ::mallinfo();
78
+ return mi.uordblks;
80
79
--- a/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
81
80
+++ b/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
82
- @@ -128,7 +128,7 @@
81
+ @@ -128,7 +128,9 @@
83
82
/* #undef HAVE_MALLCTL */
84
83
85
84
/* Define to 1 if you have the `mallinfo' function. */
86
- - #define HAVE_MALLINFO 1
87
- + /* #undef HAVE_MALLINFO */
85
+ + #if defined(__GLIBC__)
86
+ #define HAVE_MALLINFO 1
87
+ + #endif
88
88
89
89
/* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */
90
90
/* so we need to check glibc version for the new API to be safe */
0 commit comments