| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reland^2 "[scudo] resize stack depot for allocation ring buffer" Fix some warnings by matching types. This reverts commit e1164d063558b1e89f20109d83c079caae1825d8. | 2 年前 | |
[scudo] Add hooks to mark the range of realloc (#74353) realloc may involve both allocation and deallocation. Given that the reporting the events is not atomic and which may lead the hook user to a false case that the double-use pattern happens. In general, this can be resolved on the hook side. To alleviate the task of handling it, we add two new hooks to mark the range so that the hook user can combine those calls together. | 2 年前 | |
[scudo] Only print stats when the test fails. (#168000) When running the tests on other platforms, printing the stats on all of the passing tests makes it hard to see failure output. Therefore, this change only prints the stats if the test actually fails. | 8 个月前 | |
Use u16 to store Count/MaxCount The Count/MaxCount used in TransferBatch and PerClass can be fit in u16 in current configurations and it's also reasonable to have a u16 limit. The spare 16 bits will be used for additional status like pages mapping status in a TransferBatch. Reviewed By: cryptoad, cferris, vitalybuka Differential Revision: https://reviews.llvm.org/D133145 | 3 年前 | |
[scudo] Add primary option to enable/disable cache blocks. (#129794) When configured this way, no primary blocks will be cached except the batch class. Nothing else changes, no change in the page releasing strategy. | 1 年前 | |
[scudo] Make block storage in TransferBatch trailing objects (#144204) This allows us to change the number of blocks stored according to the size of BatchClass. Also change the name TransferBatch to Batch given that it's never the unit of transferring blocks. | 1 年前 | |
[scudo] Add config option to modify get usable size behavior (#158710) Currently, Scudo always returns the exact size allocated when calling getUsableSize. This can be a performance issue where some programs will get the usable size and do unnecessary calls to realloc since they think there isn't enough space in the allocation. By default, usable size will still return the exact size of the allocation. Note that if the exact behavior is disabled and MTE is on, then the code will still give an exact usable size. | 8 个月前 | |
Sync FuchsiaConfig with downstream's custom_scudo_config.h (#89244) Downstream disabled EnableContiguousRegions on RISCV-64 to avoid running out of virtual memory, but our tests still use the internal FuchsiaConfig class, which therefore needs to be changed too. | 2 年前 | |
[scudo] Allow the quarantine code to be compiled out (#151064) Add a new configuration option QuarantineDisabled that allows all of the quarantine code to be compiled out. Add new tests that verify that the code is removed properly. On Android, this saves ~4000 bytes for 32 bit and ~6000 bytes for 64 bit. On Android, I used some microbenchmarks that do malloc/free in a loop and for allocations in the primary, the performance is about the same for both 32 bit and 64 bit. For secondary allocations, I saw ~8% speed up on 32 bit and ~3% on 64 bit speed up which feels like it could just be code size improvements. | 11 个月前 | |
[scudo] Specify memory order while using atomic_compare_exchange atomic_compare_exchange was using _strong and memory_order_acquire by default. This is not aligned with general use, for example, in C++, the default is memory_order_seq_cst. To reduce the ambiguity, make the version and ordering explicitly. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156952 | 2 年前 | |
[scudo] Get rid of initLinkerInitialized Now that everything is forcibly linker initialized, it feels like a good time to get rid of the init/initLinkerInitialized split. This allows to get rid of various memset construct in init that gcc complains about (this fixes a Fuchsia open issue). I added various DCHECKs to ensure that we would get a zero-inited object when entering init, which required ensuring that unmapTestOnly leaves the object in a good state (tests are currently the only location where an allocator can be "de-initialized"). Running the tests with --gtest_repeat= showed no issue. Differential Revision: https://reviews.llvm.org/D103119 | 5 年前 | |
[scudo] Add support for LoongArch hardware CRC32 checksumming (#83113) One has to probe for platform capability prior to use with HWCAP, according to LoongArch documentation. | 2 年前 | |
[scudo] Add support for LoongArch hardware CRC32 checksumming (#83113) One has to probe for platform capability prior to use with HWCAP, according to LoongArch documentation. | 2 年前 | |
[scudo] Make report pointers const. (#144624) Mark as many of the reportXX functions that take pointers const. This avoid the need to use const_cast when calling these functions on an already const pointer. Fix reportHeaderCorruption calls where an argument was passed into an append call that didn't use them. | 1 年前 | |
[scudo] Small cleanup of memory tagging code part 2. (#168807) Make the systemSupportsMemoryTagging() function return even on system that don't support memory tagging. This avoids the need to always check if memory tagging is supported before calling the function. Modify iterateOverChunks() to call useMemoryTagging<>(Options) to determine if mte is supported. This already uses the cached check of systemSupportsMemoryTagging() rather than directly calling that function. Updated the code that calls systemSupportsMemoryTagging(). | 8 个月前 | |
[scudo] Move getPageSize() decl to common.h header (#157146) The getPageSize() function is defined in the platform-specific source files but used in common.cpp. Every function used across files should be declared in a header so the same declaration is in scope for the callers and the definition. | 10 个月前 | |
[scudo] Move getPageSize() decl to common.h header (#157146) The getPageSize() function is defined in the platform-specific source files but used in common.cpp. Every function used across files should be declared in a header so the same declaration is in scope for the callers and the definition. | 10 个月前 | |
[scudo] Refactor allocator config to support optional flags (#81805) Instead of explicitly disabling a feature by declaring the variable and set it to false, this change supports the optional flags. I.e., you can skip certain flags if you are not using it. This optional feature supports both forms, 1. Value: A parameter for a feature. E.g., EnableRandomOffset 2. Type: A C++ type implementing a feature. E.g., ConditionVariableT On the other hand, to access the flags will be through one of the wrappers, BaseConfig/PrimaryConfig/SecondaryConfig/CacheConfig (CacheConfig is embedded in SecondaryConfig). These wrappers have the getters to access the value and the type. When adding a new feature, we need to add it to allocator_config.def and mark the new variable with either *_REQUIRED_* or *_OPTIONAL_* macro so that the accessor will be generated properly. In addition, also remove the need of UseConditionVariable to flip on/off of condition variable. Now we only need to define the type of condition variable. | 2 年前 | |
[scudo] Add ConditionVariable in SizeClassAllocator64 (#69031) This may improve the waiting of Region->MMLock while trying to refill the freelist. Instead of always waiting on the completion of populateFreeListAndPopBatch() or releaseToOSMaybe(), pushBlocks() also refills the freelist. This increases the chance of earlier return from popBatches(). The support of condition variable hasn't been done for all platforms. Therefore, add another popBatchWithCV() and it can be configured in the allocator configuration by setting Primary::UseConditionVariable and the desired ConditionVariableT. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156146 | 2 年前 | |
[scudo] Add ConditionVariable in SizeClassAllocator64 (#69031) This may improve the waiting of Region->MMLock while trying to refill the freelist. Instead of always waiting on the completion of populateFreeListAndPopBatch() or releaseToOSMaybe(), pushBlocks() also refills the freelist. This increases the chance of earlier return from popBatches(). The support of condition variable hasn't been done for all platforms. Therefore, add another popBatchWithCV() and it can be configured in the allocator configuration by setting Primary::UseConditionVariable and the desired ConditionVariableT. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156146 | 2 年前 | |
[scudo] Add ConditionVariable in SizeClassAllocator64 (#69031) This may improve the waiting of Region->MMLock while trying to refill the freelist. Instead of always waiting on the completion of populateFreeListAndPopBatch() or releaseToOSMaybe(), pushBlocks() also refills the freelist. This increases the chance of earlier return from popBatches(). The support of condition variable hasn't been done for all platforms. Therefore, add another popBatchWithCV() and it can be configured in the allocator configuration by setting Primary::UseConditionVariable and the desired ConditionVariableT. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D156146 | 2 年前 | |
[scudo] Add support for LoongArch hardware CRC32 checksumming (#83113) One has to probe for platform capability prior to use with HWCAP, according to LoongArch documentation. | 2 年前 | |
[scudo] change allocation buffer size with env var (#71703) We don't allow SCUDO_OPTIONS to be preserved across SELinux transitions, so introducing a more constrained one that we can preserve. | 2 年前 | |
[Scudo] [GWP-ASan] Add GWP-ASan to Scudo Standalone. Summary: Adds GWP-ASan to Scudo standalone. Default parameters are pulled across from the GWP-ASan build. No backtrace support as of yet. Reviewers: cryptoad, eugenis, pcc Reviewed By: cryptoad Subscribers: merge_guards_bot, mgorny, #sanitizers, llvm-commits, cferris, vlad.tsyrklevich, pcc Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71229 | 6 年前 | |
[scudo] Support setting default value of ReleaseToOsIntervalMs in config (#90256) | 2 年前 | |
[scudo] simplify flag parser out of bounds logic (#72371) almost NFC, just that now we accept INT_MIN and INT_MAX as discussed in https://r.android.com/2831100, but I didn't add the *ValueEnd != Value check because I want to keep this change behaviour-keeping. | 2 年前 | |
[scudo] change allocation buffer size with env var (#71703) We don't allow SCUDO_OPTIONS to be preserved across SELinux transitions, so introducing a more constrained one that we can preserve. | 2 年前 | |
[scudo] Clean up string handling (#86364) Do not abort if a vector cannot increase its own capacity. In that case, push_back calls silently fail. Modify the ScopedString implementation so that it no longer requires two passes to do the format. Move the helper functions to be private member functions so that they can use push_back directly. This allows the capacity to be increased under the hood and/or silently discards data if the capacity is exceeded and cannot be increased. Add new tests for the Vector and ScopedString for capacity increase failures. Doing this so that if a map call fails, and we are attempting to write an error string, we can still get some of the message dumped. This also avoids crashing in Scudo code, and makes the caller handle any failures. | 2 年前 | |
[scudo] Clean up Zircon header file uses Make fuchsia.h and fuchsia.cpp each include what they use. | 4 年前 | |
[NFC] [scudo] syntax-check DCHECK arguments if DCHECK is off This is a widespread technique, used in at least: * ABSL: https://github.com/abseil/abseil-cpp/blob/master/absl/log/internal/check_op.h#L52 * Chromium: https://source.chromium.org/chromium/chromium/src/+/main:base/check.h;l=185?q=DCHECK%20f:base&ss=chromium * Android: https://cs.android.com/android/platform/superproject/+/master:system/libbase/include/android-base/logging.h;drc=bda7f0a0cc945c860713a1dc497919f17fad1651;l=321 Reviewed By: Chia-hungDuan, vitalybuka Differential Revision: https://reviews.llvm.org/D141713 | 3 年前 | |
[scudo] Only read urandom if getrandom syscall isn't available. (#161889) If the getrandom system call is available, but the call returns an error, it could mean that the system doesn't have enough randomness to respond yet. Trying to read /dev/urandom will likely block and cause initialization to be stalled. Therefore, return false in this case and use the backup random data. | 9 个月前 | |
scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot An upcoming change to Scudo will change how we use the TLS slot in tsd_shared.h, which will be a little easier to deal with if we can remove the code path that calls pthread_getspecific and pthread_setspecific. The only known user of this code path is Fuchsia. We can't eliminate this code path by making Fuchsia use ELF TLS because although Fuchsia supports ELF TLS, it is not supported within libc itself. To address this, Roland McGrath on the Fuchsia team has proposed that Scudo will optionally call a platform-provided function to access a TLS slot reserved for Scudo. Android also has a reserved TLS slot, but the code that accesses the TLS slot lives in Scudo. We can eliminate some complexity and duplicated code by having Android use the same mechanism that was proposed for Fuchsia, which is what this change does. A separate change to Android implements it. Differential Revision: https://reviews.llvm.org/D87420 | 5 年前 | |
[scudo] Minor refactor on element address validation (NFC) (#119436) | 1 年前 | |
[scudo] The BaseAddr should be MappedBase in releasePagesToOS() This is used to make MemMapDefault be compliant with legacy APIs. Reviewed By: fabio-d Differential Revision: https://reviews.llvm.org/D148141 | 3 年前 | |
[scudo] Implement and enable MemMapLinux Most of the implementations are copied from linux.cpp and we will be keeping those memory functions in linux.cpp for a while until we are able to switch to use MemMap completely. The remaining part is SizeClassAllocator32 which hasn't been switched to use MemMap interface Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D146453 | 2 年前 | |
[scudo][NFC] Add a default unmap() to unmap all pages (#102234) | 1 年前 | |
[scudo][fuchsia] Give dispatched VMOs a (temporary) name (#97578) Instead of leaving them unnamed. Subsequent remap() calls will set the actual final name. | 2 年前 | |
[scudo] Implement Fuchsia backend for the new MemMap API Reviewed By: Caslyn, Chia-hungDuan Differential Revision: https://reviews.llvm.org/D153888 | 3 年前 | |
[scudo] Always zero on linux even if the memory cannot be released. (#167788) If a caller has locked memory, then the madvise call will fail. In that case, zero the memory so that we don't return non-zeroed memory for calloc calls since we thought the memory had been released. | 8 个月前 | |
[scudo] Implement and enable MemMapLinux Most of the implementations are copied from linux.cpp and we will be keeping those memory functions in linux.cpp for a while until we are able to switch to use MemMap completely. The remaining part is SizeClassAllocator32 which hasn't been switched to use MemMap interface Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D146453 | 2 年前 | |
[scudo] Small cleanup of memory tagging code part 2. (#168807) Make the systemSupportsMemoryTagging() function return even on system that don't support memory tagging. This avoids the need to always check if memory tagging is supported before calling the function. Modify iterateOverChunks() to call useMemoryTagging<>(Options) to determine if mte is supported. This already uses the cached check of systemSupportsMemoryTagging() rather than directly calling that function. Updated the code that calls systemSupportsMemoryTagging(). | 8 个月前 | |
[scudo] Avoid deprecated-volatile warning in HybridMutex::delayLoop (#67135) That can prevent compilation with -Werror and -std=c++20: mutex.h:63:7: error: increment of object of volatile-qualified type 'volatile u32' (aka 'volatile unsigned int') is deprecated [-Werror,-Wdeprecated-volatile] | 2 年前 | |
[scudo] Make Options a reference for functions. Modify all places that use the Options structure to be a const reference. The underlying structure is a u32 so making it a reference doesn't really do anything. However, if the structure changes in the future it already works and avoids future coders wondering why a structure is being passed by value. This also makes it clear that the Options should not be modified in those functions. Reviewed By: Chia-hungDuan Differential Revision: https://reviews.llvm.org/D156372 | 2 年前 | |
[scudo] Add a method to use a hard-coded page size (#106646) Currently, only Android supports using a hard-code page size. Make this a bit more generic so any platform that wants to can use this. In addition, add a getPageSizeLogCached() function since this value is used in release.h and can avoid keeping this value around in objects. Finally, change some of the release.h page size multiplies to shifts using the new page size log value. | 1 年前 | |
[scudo] Add missing tracing.h include to primary32 (#159668) | 10 个月前 | |
[scudo] Fix wrong return type. (#168157) | 8 个月前 | |
[scudo] Drain caches when release with M_PURGE_ALL This will drain both quarantine and local caches. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D150242 | 3 年前 | |
[scudo] Always express sizes in terms of element count in BufferPool (#66896) This fixes the issue that resulted in getBuffer interpreting its argument as a number of elements and getDynamicBuffer interpreting it as a number of bytes. | 2 年前 | |
[scudo] Add the record of number of attempted page release (#120497) This also removes the RangesReleased which doesn't give much insight to whether we should adjust the heuristic of doing page release. | 1 年前 | |
[scudo] Make report pointers const. (#144624) Mark as many of the reportXX functions that take pointers const. This avoid the need to use const_cast when calling these functions on an already const pointer. Fix reportHeaderCorruption calls where an argument was passed into an append call that didn't use them. | 1 年前 | |
[scudo] Make report pointers const. (#144624) Mark as many of the reportXX functions that take pointers const. This avoid the need to use const_cast when calling these functions on an already const pointer. Fix reportHeaderCorruption calls where an argument was passed into an append call that didn't use them. | 1 年前 | |
[scudo] Add errno description to mmap failure. (#87713) Added unit tests for all of the linux report error functions. | 2 年前 | |
[scudo] Add specific die functions for linux specific failures. (#68650) While running into failures on unmap calls, it becomes difficult to figure out what's wrong. Break the dieOnMapUnmapError into specific versions for map, unmap, and then one for mprotect. Also, put these in a common linux space so that all linux derived code can reuse this code. | 2 年前 | |
[scudo] Secondary release to OS uses LRU to scan. (#163691) Before this change, the code would scan the entire set of cached entries to find ones to be released. Now, it uses the LRUEntries list to iterate over the live cached entries. In addition, remove the OldestTime variable and replace it with OldestPresentEntry which will always be the oldest entry in the LRU that has Time non-zero. | 9 个月前 | |
[scudo] Add primary option to enable/disable cache blocks. (#129794) When configured this way, no primary blocks will be cached except the batch class. Nothing else changes, no change in the page releasing strategy. | 1 年前 | |
[scudo] Remove AndroidSvelteConfig. (#66444) This config is not actually used anywhere and it is not used on Android. Since it does not test anything not tested elsewhere, remove it. Remove the size class data associated with this config too. | 2 年前 | |
[scudo] Change isPowerOfTwo macro to return false for zero. (#87120) Clean-up all of the calls and remove the redundant == 0 checks. There is only one small visible change. For non-Android, the memalign function will now fail if alignment is zero. Before this would have passed. | 2 年前 | |
[scudo] Add the thread-safety annotations This CL adds the proper thread-safety annotations for most of the functions and variables. However, given the restriction of the current architecture, in some cases, we may not be able to use the annotations easily. The followings are two exceptions, 1. enable()/disable(): Many structures in scudo are enabled/disabled by acquiring the lock in each instance. This makes those structure act like a lock. We can't mark those functions with ACQUIRE()/RELEASE() because that makes the entire allocator become another lock. In the end, that implies we need to *acquire* the allocator before each malloc et al. request. Therefore, adding a variable to tell the status of those structures may be a better way to cooperate with thread-safety annotation. 2. TSD/TSD shared/TSD exclusive: These three have simiar restrictions as mentioned above. In addition, they don't always need to be released if it's a thread local instance. However, thread-safety analysis doesn't support conditional branch. Which means we can't mark the proper annotations around the uses of TSDs. We may consider to make it consistent and which makes the code structure simpler. This CL is supposed to introduce the annotations with the least code refactoring. So only trivial thread safety issues will be addressed here. For example, lacking of acquiring certain lock before accessing certain variables will have the ScopedLock inserted. Other than that, they are supposed to be done in the later changes. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D140706 | 3 年前 | |
[scudo] Clean up string handling (#86364) Do not abort if a vector cannot increase its own capacity. In that case, push_back calls silently fail. Modify the ScopedString implementation so that it no longer requires two passes to do the format. Move the helper functions to be private member functions so that they can use push_back directly. This allows the capacity to be increased under the hood and/or silently discards data if the capacity is exceeded and cannot be increased. Add new tests for the Vector and ScopedString for capacity increase failures. Doing this so that if a map call fails, and we are attempting to write an error string, we can still get some of the message dumped. This also avoids crashing in Scudo code, and makes the caller handle any failures. | 2 年前 | |
[scudo] Add static vector functionality. (#98986) The scudo vector implementation maintains static local data before switching to dynamically allocated data as the array size grows. Users of the vector must now specify the size of the static local data through the vector template (the default size has been removed). If 0 is specified for the size of the static local data, an assertion will be triggered. | 2 年前 | |
[scudo] Add the thread-safety annotations This CL adds the proper thread-safety annotations for most of the functions and variables. However, given the restriction of the current architecture, in some cases, we may not be able to use the annotations easily. The followings are two exceptions, 1. enable()/disable(): Many structures in scudo are enabled/disabled by acquiring the lock in each instance. This makes those structure act like a lock. We can't mark those functions with ACQUIRE()/RELEASE() because that makes the entire allocator become another lock. In the end, that implies we need to *acquire* the allocator before each malloc et al. request. Therefore, adding a variable to tell the status of those structures may be a better way to cooperate with thread-safety annotation. 2. TSD/TSD shared/TSD exclusive: These three have simiar restrictions as mentioned above. In addition, they don't always need to be released if it's a thread local instance. However, thread-safety analysis doesn't support conditional branch. Which means we can't mark the proper annotations around the uses of TSDs. We may consider to make it consistent and which makes the code structure simpler. This CL is supposed to introduce the annotations with the least code refactoring. So only trivial thread safety issues will be addressed here. For example, lacking of acquiring certain lock before accessing certain variables will have the ScopedLock inserted. Other than that, they are supposed to be done in the later changes. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D140706 | 3 年前 | |
Reland "[scudo] Add a Timer class to assist performance measurement" This reverts commit 2e9bcadb7c8acaa8f6ec7d807e5666246923e468. Differential Revision: https://reviews.llvm.org/D146772 | 3 年前 | |
[compiler-rt] Define __STDC_FORMAT_MACROS to ensure PRId64 is available (#102980) In https://github.com/JuliaPackaging/Yggdrasil/pull/9246#issuecomment-2284894139 we ran into [20:54:03] [ 65%] Building CXX object lib/scudo/standalone/CMakeFiles/RTScudoStandalone.x86_64.dir/timing.cpp.o [20:54:03] cd /workspace/srcdir/compiler-rt-17.0.6.src/build/lib/scudo/standalone && /opt/bin/x86_64-linux-gnu-libgfortran5-cxx11/x86_64-linux-gnu-g++ --sysroot=/opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/ -I/workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/../.. -I/workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/include -Wall -Wno-unused-parameter -O3 -DNDEBUG -m64 -Werror=conversion -Wall -Wextra -pedantic -g -nostdinc++ -fvisibility=hidden -fno-exceptions -Wno-pedantic -fno-lto -O3 -fno-omit-frame-pointer -DGWP_ASAN_HOOKS -std=c++17 -MD -MT lib/scudo/standalone/CMakeFiles/RTScudoStandalone.x86_64.dir/timing.cpp.o -MF CMakeFiles/RTScudoStandalone.x86_64.dir/timing.cpp.o.d -o CMakeFiles/RTScudoStandalone.x86_64.dir/timing.cpp.o -c /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.cpp [...] [20:54:03] In file included from /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.cpp:9: [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h: In member function ‘void scudo::TimingManager::printImpl(scudo::ScopedString&, scudo::u32, scudo::u32)’: [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:21: error: expected ‘)’ before ‘PRId64’ [20:54:03] Str.append("%14" PRId64 ".%" PRId64 "(ns) %-11s", Integral, Fraction, " "); [20:54:03] ~ ^~~~~~~ [20:54:03] ) [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:16: warning: conversion lacks type at end of format [-Wformat=] [20:54:03] Str.append("%14" PRId64 ".%" PRId64 "(ns) %-11s", Integral, Fraction, " "); [20:54:03] ^~~~~ [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:16: warning: too many arguments for format [-Wformat-extra-args] [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:186:23: error: expected ‘)’ before ‘PRId64’ [20:54:03] Str.append("%s (%" PRId64 ")\n", Timers[HandleId].Name, Occurrence); [20:54:03] ~ ^~~~~~~ [20:54:03] ) [20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:186:16: warning: spurious trailing ‘%’ in format [-Wformat=] [20:54:03] Str.append("%s (%" PRId64 ")\n", Timers[HandleId].Name, Occurrence); [20:54:03] ^~~~~~~ when compiling compiler-rt with GCC 8. This was resolved by defining __STDC_FORMAT_MACROS. | 1 年前 | |
[scudo] Add missing tracing.h include to primary32 (#159668) | 10 个月前 | |
[scudo] Fix type mismatch in trusty. (#69024) | 2 年前 | |
[scudo] Add Scudo support for Trusty OS trusty.cpp and trusty.h define Trusty implementations of map and other platform-specific functions. In addition to adding Trusty configurations in allocator_config.h and size_class_map.h, MapSizeIncrement and PrimaryEnableRandomOffset are added as configurable options in allocator_config.h. Background on Trusty: https://source.android.com/security/trusty Differential Revision: https://reviews.llvm.org/D103578 | 5 年前 | |
[scudo] Add primary option to enable/disable cache blocks. (#129794) When configured this way, no primary blocks will be cached except the batch class. Nothing else changes, no change in the page releasing strategy. | 1 年前 | |
| 2 年前 | ||
[scudo] Add primary option to enable/disable cache blocks. (#129794) When configured this way, no primary blocks will be cached except the batch class. Nothing else changes, no change in the page releasing strategy. | 1 年前 | |
[scudo] Add primary option to enable/disable cache blocks. (#129794) When configured this way, no primary blocks will be cached except the batch class. Nothing else changes, no change in the page releasing strategy. | 1 年前 | |
[scudo][NFC] Add a default unmap() to unmap all pages (#102234) | 1 年前 | |
[scudo] Add SCUDO_ENABLE_HOOKS to enable hooks at compilation time Accessing the PLT entries of hooks can lead a certain amount of performance overhead. This is observed on certain tasks which will do a bunch of malloc/free and their throughputs are impacted by the null check of hooks. Also add SCUDO_ENABLE_HOOKS_TESTS to select if we want to run the hook tests. On some platforms they may have different ways to run the wrappers tests (end-to-end tests) and test the hooks along with the wrappers tests may not be feasible. Provide an option to turn it ON/OFF. By default, we only verify the hook behavior in the scudo standalone tests if SCUDO_ENABLE_HOOKS is defined or COMPILER_RT_DEBUG is true. Reviewed By: cferris, fabio-d Differential Revision: https://reviews.llvm.org/D158784 | 2 年前 | |
[scudo] Provide allocator declaration Ensure that extern allocator declaration is visible before definition Differential Revision: https://reviews.llvm.org/D121848 | 4 年前 | |
[scudo] Reflect the allowed values for M_DECAY_TIME on Android (#89114) | 2 年前 | |
Reland^2 "[scudo] resize stack depot for allocation ring buffer" Fix some warnings by matching types. This reverts commit e1164d063558b1e89f20109d83c079caae1825d8. | 2 年前 | |
[scudo] Change isPowerOfTwo macro to return false for zero. (#87120) Clean-up all of the calls and remove the redundant == 0 checks. There is only one small visible change. For non-Android, the memalign function will now fail if alignment is zero. Before this would have passed. | 2 年前 | |
[scudo] Add SCUDO_ENABLE_HOOKS to enable hooks at compilation time Accessing the PLT entries of hooks can lead a certain amount of performance overhead. This is observed on certain tasks which will do a bunch of malloc/free and their throughputs are impacted by the null check of hooks. Also add SCUDO_ENABLE_HOOKS_TESTS to select if we want to run the hook tests. On some platforms they may have different ways to run the wrappers tests (end-to-end tests) and test the hooks along with the wrappers tests may not be feasible. Provide an option to turn it ON/OFF. By default, we only verify the hook behavior in the scudo standalone tests if SCUDO_ENABLE_HOOKS is defined or COMPILER_RT_DEBUG is true. Reviewed By: cferris, fabio-d Differential Revision: https://reviews.llvm.org/D158784 | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 2 年前 | ||
| 11 个月前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 6 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 9 个月前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 8 个月前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 4 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 |