Hi,

thanks for the reply, please see my comments
embedded below.

On Wed, Jan 08, 2020 at 06:29:30PM -0800, Jaegeuk Kim wrote:
> Hi,
> 
> On 01/08, Piergiorgio Sartor wrote:
> > Hi all,
> > 
> > I've a small box, with Fedora 31 up-to-date.
> > 
> > The system has LUKS + LVM + f2fs.
> > 
> > Since kernel 5.3.16-300.fc31.x86_64 the fstrim.service,
> > triggered by the systemd service fstrim.timer or from
> > command line, does return an error:
> > 
> > Starting Discard unused blocks on filesystems from /etc/fstab...
> > fstrim: /home: FITRIM ioctl failed: Read-only file system
> > fstrim: /: FITRIM ioctl failed: Read-only file system
> > fstrim.service: Main process exited, code=exited, status=32/n/a
> > fstrim.service: Failed with result 'exit-code'.
> > Failed to start Discard unused blocks on filesystems from /etc/fstab.
> 
> It smells like trying fstrim along with /etc/fstab before mounting the
> partitions?

The error is reported also when running, as root,
the command "systemctl start fstrim.service" from
command line, that is with partitions available.
So, I do not think it is before mounting. Also,
this is usually started weekly from fstrim.timer,
and this requires a running system.
It could be a strange conflict with systemd, but
with ext4 there is no problem, it happens with f2fs.

> > Note the following:
> > 1) Both /home and / are rw
> > 2) LUKS and LVM allow discard to the underlying device
> > 3) An other PC, with same layout, but ext4, does work as expected
> > 4) kernel 5.4.7-200.fc31.x86_64 (latest for f31) has same result
> > 5) fstrim -vA or -va does not return an error, exit code is 0,
> > but it always says 0 (zero) bytes are trimmed:
> > 
> > /home: 0 B (0 bytes) trimmed on /dev/mapper/fedora--server-home
> > /: 0 B (0 bytes) trimmed on /dev/mapper/fedora--server-root
> 
> This is normal. Since f2fs issues discard commands asynchronously, fstrim
> just collects discard candidates and returns right away. Later, it will
> actually issue the candidates in background. Whereas, if it was mounted as
> "-o nodiscard", fstrim will wait for whole discard commands being issued
> and completed as you expect.

OK, I remounted / with "nodiscard", created a 1GB
file, synched the fs, deleted the file and issued
"fstrim -vA".
I can confirm 1GB was trimmed, more precisely 1.1GB
according to "fstrim".

I repeated the test, but instead using "systemctl
start fstrim.service".
Same error as before.
But, a succesive "fstrim -vA" returned only 2.7MB
trimmed.
This could be that the "fstrim" call was executed
properly, but some error report was triggered.
Maybe the read-only file system is not correct,
but something happened.
I would like to stress again that ext4 does not
trigger this error.

So, there is something related with f2fs, at
least with the interaction with fstrim and
systemd.

I have one question.

Since f2fs is mounted with "discard" and, as I
understand it, f2fs will issue discard as soon
as a segment is freed, is it relevant to have
the weekly fstrim from systemd?

Thanks a lot in advance,

bye,

pg

> 
> Thanks,
> 
> > 
> > 6) mount shows that the f2fs mounts have "discard" flag
> > 
> > So, I suspect there is something with f2fs which somehow
> > confuses the trimming process.
> > 
> > I had a quick search, but I could not find any other
> > similar report, except one about systemd, but that
> > does not seem related.
> > 
> > Any idea? Suggestions?
> > Debugging possibilities?
> > 
> > Thanks a lot in advance,
> > 
> > bye,
> > 
> > -- 
> > 
> > piergiorgio
> > 
> > 
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

-- 

piergiorgio


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

Reply via email to