[frameworks-kio] [Bug 471018] Terrible browsing performance with mounted remote FS on links with high latency
Pedro V
bugzilla_noreply at kde.org
Tue Jan 2 11:03:35 GMT 2024
https://bugs.kde.org/show_bug.cgi?id=471018
Pedro V <voidpointertonull+bugskdeorg at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|general |general
Status|REPORTED |CONFIRMED
Assignee|dolphin-bugs-null at kde.org |kio-bugs-null at kde.org
Product|dolphin |frameworks-kio
Keywords|usability |efficiency, reproducible
CC| |kdelibs-bugs at kde.org,
| |voidpointertonull+bugskdeor
| |g at gmail.com
Ever confirmed|0 |1
Version|22.12.3 |5.110.0
--- Comment #1 from Pedro V <voidpointertonull+bugskdeorg at gmail.com> ---
I'm not sure if the issue I have is exactly the same, but given that the
symptom is familiar, figured I'd do some digging.
I tend to use Krusader with sftp which is a better target to reproduce such
troubles anyway given that it doesn't even require mounting. Found
`sftp://testhost/usr/share/man/man1/` to be a good test target on an Ubuntu
host with high latency.
Running `strace -p $(pidof sftp-server)` on the target host shows the slow
iteration with readlink and newfstatat alternating.
What's interesting though is that it starts with a large batch of newfstatat,
and apparently the slow iteration is only done over symbolic links. This seems
to be confirmed by being able to check out directories consisting of many
regular files rather quick.
I think my issue lies in SFTPWorker::listDir -> SFTPWorker::createUDSEntry ->
sftp_stat being called for each symlink back to back with synchronous I/O.
Likely a more generic solution is desired though than dealing with this
specifically, or additional framework features would be needed which would need
to be implemented for each KIO slave individually.
These approaches could help:
- Asynchronous I/O support to allow KIO slaves to queue up all I/O work in one
pass so there's only one latency hit per operation group
- Progressive directory listing especially as the file list is already
available early, and filling in the details later would be more desirable than
waiting for everything even though the extra info may not be needed at all
Likely no easy feat due to the need to work on slaves individually, but
apparently sftp was getting some related goods already with Harald Sitter
introducing some light coroutine usage and mentioning "sftp_aio is currently
being worked on upstream" which is definitely an encouraging direction.
Setting CONFIRMED as it's really a reproducible problem, and moving to
frameworks-kio as this isn't really Dolphin specific, at least I don't think
that's doing anything interesting to make the problem worse than what I can
observe with Krusader.
This isn't really a bug though as it's more of a design shortcoming, so
recommending dropping importance to wishlist.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the kfm-devel
mailing list