Hi,
I need to increase the cache size of devb-eide driver. For that during boot time, i tried to execute the command devb-eide,blk cache=100m.
Is there any other option to change cache size. Can i change the cache size directly by editing any file like diskboot file or any start script. if so, could you please mention the file name.
Also there is an option in devb-eide driver to make all writes asynchronous. devb-eide,fstype commit=low, delwri=0. Will it make write() return immediately.
Usually, devb-eide is started in the boot file. You will find example *.build boot configuration files in /boot/build.
You can add the cache parameter there.
If this is the same problem you’ve been working on, the answer is probably no. When you send 800M in one write, since it can’t all fit in the cache, the OS has no option other than to pend (not reply) to your thread until the file system can catch up. That would mean writing 700Meg to disk, at which time the remaining 100Meg would fit into cache, and your write() can return. You could try creating a cache of 800M. I don’t know what the limits of cache size are, if there are any, but you can find out and report back.
By default the parameters of devb-eide driver are “devb-eide blk auto=partition dos exe=all qnx6 sync=optional cam quiet”. Where this command is stored. I cant find such a command given in any of the files.
I tried to increase the cache size during boot time. But then also same effect in write().
How to check whether the cache size is increased or not .
Yep, that’s correct, because the command is inside the “diskboot” binary. “diskboot” is a launcher process for several other components, including devb-eide, that it is launching according to the results of its hardware enumeration.
Thus, to change the cache size for devb-eide, you have to pass this “wish” as a paramter to diskboot, via the -o option. For example, you can add the following to the “diskboot” call in the start script of the default build file (qnxbasesmp.build):
-o “devb-eide, blk cache=256M”
The quotations marks are necessary in my experience.
Personally I don’t use diskboot since it’s inefficient/slow because it has to handle all kinds of hardware so its trying to plug-n-play. I just manually start devb-eide myself in the qnxbasemp.build file since I always know the hardware I am running on.