+ -
当前位置:首页 → 问答吧 → 新手急问一个关于loop device使用而引起的速度变慢问题

新手急问一个关于loop device使用而引起的速度变慢问题

时间:2007-12-25

来源:互联网

小弟我第一次真正开发基于嵌入式Linux的手持多媒体终端产品,在开发过程中对产品中 4GB 的Nandflash的部分进行访问和使用时,采用了loop device虚拟设备,即首先调用

dd bs=1M count=1920 if=/dev/zero of=/mnt/disk1
创建了一个1.87GB的文件disk1,然后调用使用fdisk -lu /mnt/disk1得到分区的偏移量offset = 32256,然后调用

losetup -o 32256 /dev/loop0 /mnt/disk1
将该文件和和loop0关联——这些步骤都是按照网上和书上的Linux教程来做的。现在产品样机在这样的基础上已经可以使用Nandflash了,并且通过mount -t vfat /dev/loop0 /media后也可以和PC正常连接和并识别Nandflash了,在样机上进行多媒体播放的时候,play的时候一切也比较正常,但是在进行stop和quit返回上级菜单的时候非常慢,往往需要两三分钟才能退出去。
    同样的样机上对SD card上的多媒体文件进行播放时却一切正常,无论是play还是stop、quit响应都非常迅速,而以前在没有使用loop device而直接对Nandflash进行操作时也没有出现过这样的问题。因此可以断定是使用oop虚拟设备对Nandflash的影响造成的,经过测试后发现在播放媒体文件时stop或quit时,系统的内存消耗陡增以致几乎耗尽,
    小弟愚钝,确实不知道这是什么原因了,在此虚心向各位大虾求教Linux中对loop device的使用为什么会造成这样的问题,另外是否和在使用dd命令创建文件时使用的bs和count的值的大小有关~~~谢谢了      

作者: zhouxiao_82   发布时间: 2007-12-25

为什么要这样用

难道不可以直接支持么

可能这样用的是通用的cache管理,而且还有个文件层

linux md好象有自己独有的管理层,

bs不知道有没关系,但是对齐显然不是1m大小,好象是16k还是64k多少的      

作者: AIKO_sex   发布时间: 2007-12-26

这好象是nand mtd设备的缺陷

你用fat很容易损坏和每次读写都要把块信息全部读出写出,效率低下

不如用网络共享      

作者: AIKO_sex   发布时间: 2007-12-27