Skip to content

Commit 71cbe9f

Browse files
authored
Use MS_SYNC for finalize_for_runtime to avoid compressor pressure (#20294)
Differential Revision: D108178966 Pull Request resolved: #20294
1 parent 5a4bc45 commit 71cbe9f

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

backends/xnnpack/runtime/XNNWeightsCache.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,19 +214,19 @@ Result<std::vector<std::string>> XNNWeightsCache::finalize_for_runtime() {
214214
}
215215

216216
#ifndef _WIN32
217-
// Schedule async flush for newly added regions only.
218-
// MS_ASYNC returns immediately; OS flushes in the background.
217+
// Synchronous flush for newly added regions. MS_SYNC blocks until the
218+
// dirty pages are written to disk and marked clean
219219
if (mmap_regions_.size() > mmap_regions_synced_) {
220220
size_t new_count = mmap_regions_.size() - mmap_regions_synced_;
221221
for (size_t i = mmap_regions_synced_; i < mmap_regions_.size(); ++i) {
222222
if (mmap_regions_[i].addr != nullptr) {
223-
msync(mmap_regions_[i].addr, mmap_regions_[i].size, MS_ASYNC);
223+
msync(mmap_regions_[i].addr, mmap_regions_[i].size, MS_SYNC);
224224
}
225225
}
226226
mmap_regions_synced_ = mmap_regions_.size();
227227
ET_LOG(
228228
Info,
229-
"Scheduled async flush: %zu new regions (%zu total), %zu MB packed weights",
229+
"Synced %zu new regions (%zu total), %zu MB packed weights",
230230
new_count,
231231
mmap_regions_.size(),
232232
packed_file_used_ / (1024 * 1024));

0 commit comments

Comments
 (0)