Hello,

On 2019/9/2 7:20, Didier Spaier wrote:
> Hello,
> 
> I plan to provide a more "newbie friendly" installer for the Slint Linux
> distribution that I maintain.
> 
> It will include an "auto" feature intended for newbies, that will
> partition a whole drive and install filesystems with a minimum of user
> input. It would install ext4 file systems in case of hard drives (but
> the ESP and the Bios Boot partition, that is), or f2fs when
> appropriate, without asking.
> 
> I am trying to determine for which kinds of devices f2fs should be
> preferred over ext4 (or maybe xfs, I have yet to choose)
> 
> I understand that I should target devices equipped of a NAND flash
> memory and interfaced with a FTL.
> 
> I think that nowadays most devices of types eMMC, SSD (both SATA and
> PCIe connected, aka NVMe), SD card and flash drives (aka USB sticks)
> have these characteristics thus are good candidates for f2fs.
> 
> Simply put, that loks like "everything but hard drives".
> 
> Is this correct?

I do believe that in those devices, in addition SMR (Shingled Magnetic
Recording) drvier, f2fs can behaves better on performance, but for conventional
hard driver, I got no evidence to show f2fs will perform better (since I didn't
do such test on hard driver and never got related report like that).

> 
> If yes, I could just check the value of
> /sys/block/<device name>/queue/rotational or the ROTA field of lsblk.
> 
> However, I understand that not all flash drives and SSD are based on
> NAND and not all these devices interfaced through a NTL.
> 
> Thus my questions are:
> 1. Is the assumption "all devices but hards disks" are potential
> candidate for using f2fs valid?

I'm okay with that assumption by default. :)

> 2. If this assumption is not valid, what are the drawbacks using f2fs
> for all, in terms of performances and security?
> 3. Is there a way to tell for a given device if it would benefit of
> using f2fs, that could be implemented in a distribution installer,
> without human intervention?

IMO, flash based device can be benefit from aspects of:
- better random write performance (inherit gene's advantage from LFS 
architecture)
- well SQLite performance (SQLite has started to support to use f2fs atomic
write interface officially in its persist mode)
- recoverable performance (background GC)
- longevity (less writes)
- less performance regression during handling discard command (tuned async
discard policy)

> 
> Thanks for any clue. and if this is the wrong list for such questions,
> please tell me where I should ask them.
> 
> Best regards,
> 
> Didier
> 
> PS I ship currently a kernel 4.19.x. Is this OK?

I'm okay with that.

Also I recommend to use our private stable tree below in where we backport most
upstreamed codes, and the codes in that stable tree are used on Android now.

https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable.git/

BTW please note that:
- DON'T try corrupted feature via mkfs.f2fs -i with the version <= 1.12.0.
- tune overprivsion rate with a proper value to avoid performance regression
when there is no more space in the device.

> 
> 
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> .
> 


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to