How to increase cache size

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.

Regards,
hello

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.

Thanks maschoen.

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 .

read() is also behaving in the same manner.

regards,
hello

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.

Good luck!

  • ThunderBlade

You mean, i need to edit qnxbasesmp.build file.

[pri=10o] PATH=/proc/boot diskboot -b1 -D0 -odevc-con,-n4 -odevc-con-hid,-n4 -o “devb-eide,blk cache=256M”

Yes.

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.

Tim

Just in case the obvious has been lost, after modifying the .build file, you need to create a new .ifs file, copy it to /.boot and reboot.

To see if the cache size has increased you could check the system’s free memory.