-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide atomic accesses to guest memory #16
Comments
Hmm, this is not actually what I wanted to work on. The issue is that the rust compiler (and the processor on weakly-ordered architectures) need to be told about possibly concurrent access, and they should be properly annotated as "atomic" rather than "volatile". My idea here is to add a VolatileAtomicRef struct similar to VolatileRef, but supporting atomic load and store instead of Deref and DerefMut. |
Sorry about that :( For some reason I thought this one implies the other as well, but even if it did, the description was not clear at all in this regard. Assigned myself for this one. |
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This allows writing safely drivers that access memory concurrently with the guest and that require memory barriers between DMA accesses. I'm adding a feature for AtomicU* types because they were only stabilized in Rust 1.34.0. Fixes: rust-vmm#16 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
We should fix logic that handles guest memory access and does not guarantee the operations will have volatile semantics. One example is the
copy
here:vm-memory/src/volatile_memory.rs
Line 277 in 08b24bf
The text was updated successfully, but these errors were encountered: