This operation takes a significant amount of time when hotplugging large amounts of memory (~50 seconds with 890GB of persistent memory). This was orignally in commit fb5924fddf9e ("powerpc/mm: Flush cache on memory hot(un)plug") to support memtrace, but the flush on add is not needed as it is flushed on remove.
Unified · Split
| @@ -142,8 +142,6 @@ int __ref arch_add_memory(int nid, u64 start, u64 size, · 141 unmodified lines | ||
| 142 | 142 | return -EFAULT; |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | − flush_dcache_range_chunked(start, start + size, FLUSH_CHUNK_SIZE); | |
| 146 | − | |
| 147 | 145 | return __add_pages(nid, start_pfn, nr_pages, restrictions); |
| 148 | 146 | } |
| 149 | 147 | |