-
Notifications
You must be signed in to change notification settings - Fork 117
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
Errors with metadata_csum + data_csum + data parity #126
Comments
Can you elaborate the repro steps a little bit? I have mounted NOVA with metdata_csum, data_csum, and data_parity, and run test2.cpp and there is no error. |
I'm working with NOVA on a QEMU/KVM virtual machine with 1 core running Ubuntu 20.04. I wonder if it's an artifact of the specific setup I'm using. I'll mess around with the setup and configurations a bit and get back to you. |
Here are more details about my setup and the steps to reproduce: Setup: QEMU/KVM virtual machine running Ubuntu 20.04 and Linux kernel 5.1.0+ with KASAN. I initially ran into the issue on a VM with 8GB RAM, 128MB emulated persistent memory, and 1 core. I've also tried it out on 4GB of persistent memory and 4 cores and still run into the same issue. I'm building NOVA as a loadable module and manually loading it using Steps to reproduce: I experimented a bit and found that both issues can be reproduced with only data_csum.
I dug around in the code a bit and the second issue (the one causing |
I have tried again and cannot reproduce on a bare-metal machine. I do suspect this is related with VM and I have seen people reported issues on VM before. I think there are some kernel flags related to memory need to be disabled for NOVA running on VM, but I can't recall them - perhaps they are mentioned in some other issues. Can you try on a bare-metal machine to see if it is reproducible? |
I tried it on a bare-metal machine and was not able to replicate the issue there. I compared the execution on bare-metal vs. the VM and found that the issue comes from line 174 of parity.c: Line 174 in b817ca3
Lines 248 to 250 in b817ca3
The two problems described in this issue only occur when the contents of the if statement are run, which is why they aren't showing up on baremetal. The root of the problem on the VM seems to be that by default, the virtualized CPU does not have the This still seems like an bug to me, since it does appear that NOVA is intended to support CPUs without this feature. |
Hi Andiry,
I'm messing around with NOVA's metdata_csum, data_csum, and data parity and I'm running into two issues (in regular execution, not crash consistency). I'm mounting a fresh instance of NOVA at /mnt/pmem and running a program test2.zip that performs the following operations:
pwrite()
pread()
.This program runs into two issues.
pwrite()
with the following output:pread()
fails and prints out a big error:The text was updated successfully, but these errors were encountered: