Comments (9)
from dhara.
I think in a perfect world you wouldn't need Dhara with LittleFS. But for better or worse, LittleFS is far from perfect.
Two cases come to mind where you may want to use LittleFS+Dhara:
-
Better wear-leveling.
LittleFS provides dynamic wear-leveling, whereas Dhara provides static wear-leveling. There's some interesting tradeoffs here, static wear-leveling is more expensive, but guarantees consistent wear across all blocks.
-
Possible better performance for devices with large blocks.
LittleFS currently has performance issues with large block sizes (littlefs-project/littlefs#214). Metadata-compaction is currently O(block_size^2), and until this is fixed you may get better performance if you use Dhara to divide the blocks into smaller "blocks".
Dhara is nice in that it treats the underlying block device as one continuous log. This makes it more flexible and predictable than LittleFS, which uses the erase blocks as data structure elements.
from dhara.
So, we are trying to upgrade our existing Micron MT29 NAND flash from 2Gb to 4Gb on Atmel controller. The existing file system used is FAT32. But now we are in an need to change the file system to little file system(lfs). Will it be feasible to use this file system along with the file translation layer from dhara. I admire with @hchaudhary1 and @geky for thier insightful conversation.
Hello Mr.pavzz, currently I also use Micron MT29 NAND flash 2Gb and I wirte I/O interface with it which works good (It can be erase, write and read normally) but I still stuck on dhara layer. The problem is when I find journal.root, it always returns j->root = DHARA_PAGE_NONE (0xFFFFFFFF). I don't know what exactly problem is, should I tune some parameters from dhara like gc_ratio, or DHARA_META_SIZE (I use all as default values). So many thanks for helping me!!!
from dhara.
@TatChung68 did you solved the problem?
from dhara.
@TatChung68 did you solved the problem?
Yes, I did. I'm using FATFS + dhara but my littlefs porting on NAND flash be working well too!!! If you wanna use little fs on raw nand flash you must only write correctly 4 functions to glue between nand flash and littlefs. No trick needed!
from dhara.
@TatChung68 could you share what was the actual problem and how did you solved it? I have been stuck with the same problem "journal.root, it always returns j->root = DHARA_PAGE_NONE (0xFFFFFFFF)" or I am making some mistakes. It would be very helpful to have some insightful direction on what can I do or what should I keep in mind. I am trying to follow this flash_management work by @aloebs29 and using QSPI for communicating with the flash. I have check and confirmed the low level functions are working correctly.
from dhara.
from dhara.
I think the problem is on your write and read, copy functions directly from NAND flash!!! You can refer this link. It run properly!!!
from dhara.
I think the problem is on your write and read, copy functions directly from NAND flash!!! You can refer this link. It run properly!!!
You are right, there were some problem with our write function, and after solving it everything is working fine. Thank you, for your response.
from dhara.
Related Issues (20)
- Can dhara be detected by linux as a device file? HOT 1
- tests/jfill failure HOT 7
- Very aggressive garbage collection --- a configuration problem? HOT 6
- Performance Tuning HOT 7
- journal.c: cp_free does an illegal dhara_nand_is_free if on last group and none of the pages are free HOT 6
- DHARA+FATFS: boot sector is remapped without a copy HOT 12
- When the bad block appears in the read ECC error, dhara cannot be processed HOT 4
- example HOT 1
- Using a different GC ratio with an existing flash map HOT 2
- Garbage Collection Instrumentation HOT 2
- Using dhara for nor and nand flash - some questions HOT 5
- Using Dhara in Zephyr HOT 10
- Map Sync Time HOT 6
- `dhara_journal_enqueue` can fail with `DHARA_E_NONE` HOT 1
- `try_delete` sets an alt pointer twice
- Handling of ECC error HOT 1
- dhara_map_capacity returns inconsistent values HOT 4
- How to generate LLR for soft LDPC decoder in nand flash via multiple reads?
- gc fails if checkpoint page is corrupted
- Expected overheads / available capacity HOT 4
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 dhara.