Comments (3)
Thanks for the reporting. However, I am not sure how to use the image:
# echo img > /dev/pmem0
# mount -t NOVA /dev/pmem0 /mnt/ramdisk/
# dmesg
[ 4337.052594] nova: Arch new instructions support: CLWB NO
[ 4337.052602] nova: Data structure size: inode 120, log_page 4096, file_write_entry 64, dir_entry(max) 304, setattr_entry 56, link_change_entry 40
[ 4351.582107] nova: 16 cpus online
[ 4351.582112] nova: nova_get_nvmm_info: dev pmem0, phys_addr 0x380000000, virt_addr 0xffffa005c0000000, size 2147483648
[ 4351.582113] nova: measure timing 0, metadata checksum 0, wprotect 0, data checksum 0, data parity 0, DRAM checksum 0
[ 4351.582203] nova: Start NOVA snapshot cleaner thread.
[ 4351.582206] nova: Running snapshot cleaner thread
[ 4351.582211] nova: Error in super block: try to repair it with the other copy
[ 4351.582220] nova: nova_init_inode_list_from_inode: 16 inode nodes
[ 4351.582222] nova: Recovered 0 snapshots, latest epoch ID 0
[ 4351.582223] nova: NOVA: Normal shutdown
[ 4351.582228] nova: Current epoch id: 0
Writing to /mnt/ramdisk/myfile
and it succeeds.
from linux-nova.
echo img > /dev/pmem0
I suppose you meant cat
there? (That command would write the literal string "img" onto the device, however mounting should fail after that, so I assume you did it properly).
It seems that NOVA images are not really portable, I have also tried using it on another virtual machine, but when #cpus != 1 (the crash image was produced with #cpus = 1), weird things happen and the file is not even listed. My guess would be that NOVA does not properly recognize when #cpus have changed and the per-CPU journals are not recovered correctly or so. Should I report this as a separate issue?
The mounted image should contain a file called "myfile".
Though even when I set #cpus = 1 in another VM setup (different from the VM from which I extracted the image), I can iirc load the image and the existing file is listed, but I don't observe the problem I originally reported.
So I will need to dig further into how to reproduce this without relying on sharing the image.
from linux-nova.
Yes, the change of #cpus is a known issue of NOVA. Fixing that, however, requires a lot of effort I assume.
from linux-nova.
Related Issues (20)
- Different block count/size before and after remount HOT 2
- Possible crash consistency issue with write + fallocate HOT 1
- Possible crash consistency issue with rename + link HOT 2
- Possible crash consistency issue with link + unlink in metadata_csum mode HOT 1
- Unreadable file when crashing during append (checksums+parity enabled) HOT 4
- Crashing during unlink/rmdir/rename can lead to readdir failing (checksums+parity enabled) HOT 1
- Symlinks not properly persisted even with checksums+parity enabled HOT 3
- Crashing during unlinking can lead to wrong st_nlink HOT 2
- Errors with metadata_csum + data_csum + data parity HOT 5
- Possible crash consistency bug in truncate() in metadata_csum mode
- Crash consistency issue with truncate in data_csum mode HOT 6
- File metadata/contents differ between mounts after modifying using multiple file descriptors HOT 3
- Double Flush and Fence issues HOT 1
- Issue with fallocate after remount HOT 2
- Incorrect epoch_id after restoring snapshot entries HOT 1
- Failed checksum checking for nova_range_node HOT 1
- Ignored NEXT_PAGE flag in the function nova_background_clean_snapshot_list HOT 3
- CoW not enabled by default and `inplace_data_updates` option does not exist
- What is different from f2fs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linux-nova.