rust/compiler/rustc_data_structures/src
Guillaume Yziquel 3fc5ed8067 Issue 122262: MAP_PRIVATE for more reliability on virtualised filesystems.
Adding support of quirky filesystems occuring in virtualised settings not
having full POSIX support for memory mapped files. Example: current virtiofs
with cache disabled, occuring in Incus/LXD or Kata Containers. Has been
hitting various virtualised filesystems since 2016, depending on their levels
of maturity at the time. The situation will perhaps improve when virtiofs DAX
support patches will have made it into the qemu mainline.

On a reliability level, using the MAP_PRIVATE sycall flag instead of the
MAP_SHARED syscall flag for the mmap() system call does have some undefined
behaviour when the caller update the memory mapping of the mmap()ed file, but
MAP_SHARED does allow not only the calling process but other processes to
modify the memory mapping. Thus, in the current context, using MAP_PRIVATE
copy-on-write is marginally more reliable than MAP_SHARED.

This discussion of reliability is orthogonal to the type system enforced safety
policy of rust, which does not claim to handle memory modification of memory
mapped files triggered through the operating system and not the running rust
process.
2024-03-15 18:31:07 -04:00
..
base_n
binary_search_util Remove invariant comments 2023-11-05 17:35:37 -06:00
fingerprint remove redundant imports 2023-12-10 10:56:22 +08:00
flock windows bump to 0.52 2024-02-18 16:02:16 +03:00
graph Inline dominator check. 2023-12-31 00:37:45 +00:00
intern remove redundant imports 2023-12-10 10:56:22 +08:00
obligation_forest remove redundant imports 2023-12-10 10:56:22 +08:00
owned_slice
profiling
sip128 remove redundant imports 2023-12-10 10:56:22 +08:00
small_c_str Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
snapshot_map
sorted_map
sso rustc_data_structures: use either instead of itertools 2024-01-24 15:36:57 -08:00
stable_hasher
sync Rollup merge of #120976 - matthiaskrgr:constify_TL_statics, r=lcnr 2024-03-04 22:16:30 +01:00
tagged_ptr Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
tiny_list
transitive_relation
aligned.rs
atomic_ref.rs
base_n.rs [rustc_data_structures][base_n][perf] Remove unnecessary utf8 check. 2023-08-01 11:10:17 -07:00
captures.rs
fingerprint.rs
flat_map_in_place.rs
flock.rs Initiate the inner usage of cfg_match 2023-10-19 20:18:51 -03:00
frozen.rs
fx.rs rustc_mir_transform: Make DestinationPropagation stable for queries 2024-01-05 20:55:32 +01:00
hashes.rs Use UnhashMap for a few more maps 2024-01-17 17:09:55 -05:00
intern.rs
jobserver.rs Update jobserver-rs to 0.1.28 2024-02-09 19:13:07 +03:00
lib.rs Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
macros.rs
marker.rs Remove OneThread 2024-01-18 03:30:05 +01:00
memmap.rs Issue 122262: MAP_PRIVATE for more reliability on virtualised filesystems. 2024-03-15 18:31:07 -04:00
owned_slice.rs By tracking import use types to check whether it is scope uses or the other situations like module-relative uses, we can do more accurate redundant import checking. 2024-02-18 16:38:11 +08:00
packed.rs Add Pu128 = #[repr(packed(8))] u128 2024-01-19 20:10:38 -08:00
profiling.rs windows bump to 0.52 2024-02-18 16:02:16 +03:00
sharded.rs rustc_data_structures: use either instead of itertools 2024-01-24 15:36:57 -08:00
sip128.rs
small_c_str.rs Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
sorted_map.rs Avoid specialization for the Span Encodable and Decodable impls 2023-12-31 20:42:17 +00:00
stable_hasher.rs Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
stack.rs
steal.rs
svh.rs Avoid specialization for the Span Encodable and Decodable impls 2023-12-31 20:42:17 +00:00
sync.rs compiler: use addr_of! 2024-02-24 18:53:48 +03:00
tagged_ptr.rs
temp_dir.rs
tiny_list.rs
transitive_relation.rs
unhash.rs
unord.rs clean up potential_query_instability with FxIndexMap and UnordMap 2024-02-14 18:36:37 +08:00
vec_linked_list.rs
work_queue.rs