日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux传输文件到linux速度慢,linux中往nand(jffs2)中拷贝文件时速度慢的问题

發布時間:2025/3/20 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux传输文件到linux速度慢,linux中往nand(jffs2)中拷贝文件时速度慢的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在調試nand和jffs2時,發現將一個文件從SD卡拷貝到jffs2的NAND分區時,速度非常慢,和從NAND中拷出(例如拷貝到SD卡)相比,慢了近5倍。一開始以為是驅動寫NAND和讀NAND的差異,后來用mtd-utile的nand write測試了一下,nand write的速度和nand read的也差不多。

由于mtd-utile的nand write/ nand read沒有經過jffs2文件系統,于是將疑點定位在jffs2文件中。

經過一番debug,對各個模塊進行耗時統計,經于找到元兇:fs/jffs2/compr.c 中的jffs2_comress()函數,絕大部分多出的耗時全在這個函數里。原來在menuconfig的時候沒有選擇 Advanced compression option for JFFS2, 但里面確默認使用了priority的壓縮方式。重新設置成no compression后,OK,速度正常了。

以下是往jffs2文件系統中copy時的調用流程(竟然沒有走mtdblock.c文件,一開始以為是經過這個文件中的mtd->write函數指針調用到nand_write函數的):

fs/read_write.c????? do_sync_write -> filp->f_op->aio_write()

jf/jffs2/file.c?????????? .aio_write =?generic_file_aio_write,

mm/filemap.c:?????? ?generic_file_aio_write->

__generic_file_aio_write ->

generic_file_buffered_write->

generic_perform_write->a_ops->write_end()

fs/jffs2/file.c:??????? .write_end =?jffs2_write_end,

jffs2_write_end->

fs/jffs2/write.c:?????????? jffs2_write_inode_range->

jffs2_write_dnode->

fs/jffs2/wbuf.c:???????????????????????? jffs2_flash_writev->

c->mtd->write()

__jffs2_flush_wbuf()->

c->mtd->write()

drivers/mtd/nand/nand_base.c:

mtd->write = nand_write;

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的linux传输文件到linux速度慢,linux中往nand(jffs2)中拷贝文件时速度慢的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。