我正在尝试解决使用 jmtpfs 安装的 ubuntu server 18.04 上的 android 手机通过 usb 传输文件时出现长时间延迟的问题。这是对问题的扩展:“在通过 jmtpfs 安装的 Android 上,Stat 系统调用需要很长时间才能完成“。
我记录了命令的性能输出:
sudo perf record -g cp -pv /home/odwongm/phone/Phone/DCIM/Camera/20140426_174534.jpg /home/odwongm/phone/Phone/DCIM/Camera/20140426_174607.jpg /home/odwongm/phone_rsync/
我对此一无所知,不知道如何解释结果。我认为结果表明,大多数样本都位于:copy_user_generic_string。
样本:44 个事件“周期”,事件计数(大约):16619252
个子级自命令共享对象符号
+ 92.25% 0.00% cp [kernel.kallsyms] [k] entry_SYSCALL_64_after_hwframe + 92.25% 0.00% cp [kernel.kallsyms] [k] do_syscall_64
+ 45.00% 0.00% cp libc-2.27.so [.] write + 45.00% 0.00% cp [kernel.kallsyms] [k] sys_write + 45.00% 0.00% cp [kernel.kallsyms] [k] vfs_write + 45.00% 0.00% cp [kernel.kallsyms] [k] __vfs_write
+ 45.00% 0.00% cp [kernel.kallsyms] [k] new_sync_write
+ 45.00% 0.00% cp [kernel.kallsyms] [k] ext4_file_write_iter
+ 45.00% 0.00% cp [kernel.kallsyms] [k] __generic_file_write_iter
+ 45.00% 0.00% cp [kernel.kallsyms] [k] generic_perform_write
+ 28.06% 0.00% cp libc-2.27.so [.] read
+ 28.06% 0.00% cp [kernel.kallsyms] [k] sys_read + 28.06% 0.00% cp [kernel.kallsyms] [k] vfs_read + 28.06% 0.00% cp [kernel.kallsyms] [k] __vfs_read
+ 28.06% 0.00% cp [kernel.kallsyms] [k] new_sync_read
+ 28.06% 0.00% cp [kernel.kallsyms] [k] fuse_file_read_iter
+ 28.06% 0.00% cp [kernel.kallsyms] [k] generic_file_read_iter
+ 24.79% 24.79% cp [kernel.kallsyms] [k] copy_user_generic_string
+ 21.76% 0.00% cp [kernel.kallsyms] [k] ext4_da_write_begin
我也扩展了一些结果,但我不清楚这一切表明了什么。
92.25% 0.00% cp [kernel.kallsyms] [k] do_syscall_64
- 15.66%do_syscall_64
sys_read
vfs_read
__vfs_read
new_sync_read fuse_file_read_iter
generic_file_read_iter
copy_page_to_iter
copy_user_generic_string- 9.13% do_syscall_64
sys_write
vfs_write
__vfs_write
new_sync_write
ext4_file_write_iter
__generic_file_write_iter
generic_perform_write
iov_iter_copy_from_user_atomic
copy_user_generic_string24.79% 24.79% cp [kernel.kallsyms] [k] copy_user_generic_string
- 15.66%读取
entry_SYSCALL_64_after_hwframe
do_syscall_64 sys_read
vfs_read
__vfs_read
new_sync_read fuse_file_read_iter
generic_file_read_iter
copy_page_to_iter
copy_user_generic_string- 9.13% 0x52d407016256000e
写入
entry_SYSCALL_64_after_hwframe
do_syscall_64 sys_write
vfs_write
__vfs_write
new_sync_write
ext4_file_write_iter
__generic_file_write_iter
generic_perform_write
iov_iter_copy_from_user_atomic
copy_user_generic_string
有 perf 工具专业知识的人能否对这些结果提供一些见解?