In <[EMAIL PROTECTED]>,
Joerg Schilling <[EMAIL PROTECTED]> noted:
> Depends on how you rate the effects...
>
> 1) It was not available in 2.2.5
I hope you're using a 2.2 version which came out this millenium...
> 2) The last time I looked at the source before 2.4 came out, there
> was a similar interface but it was not usable because you have
> been allowed to raise the DMA limit but after that there was no
> guarantee that later on the kernel has enough memory to run
> requests that use the raised DMA count.
Other than creating a problem on heavily loaded systems, which often
have other problems, on a system with reasonable available memory was
this a problem?
> When I checked the 2.4 source code, I found that this code will allocate
> the needed memory when raising the DMA limit. This make the feature
> usable.
>
> I am still not sure if would be better not to allow to raise the DMA
> limit in pre-2.4 kernels.
Other than being an available optimization, does it really help? I
have not seen any better performance with recent versions of the kernel
or the application, in terms of writing faster on existing drives. I
would assume that the benefit would be requiring less system resources,
since the drive should run at the same speed as long as the buffer is
filled. I may be missing some other benefit...
> NO. The current implementation is not clean.
In practice? Or as a possible failure mode for heavily loaded systems?
> It may be that I will have to forbid raisedma() for pre-2.4 kernels
> if it turnes out that raising the dma limit is only safe with 2.4
> kernels. In this case, I will remove the current hacky code and revert
> to the safe implementation that uses the stack variable only.
>
> This is possible as the 2.4 kernels introduce an ioctl() implementation
> that does not have limitations on the DMA address anymore.
> It is not needed to copy data in user space anymore and there is no need
> for a copy buffer of sufficient size.
Actually the kernel doesn't impose restrictions, but the hardware
usually used does. Typical SCSI controllers can only address a small
subset of the memory available with 2.4 kernels, so on server size
systems you still need transfer buffers, I believe.
--
-bill davidsen ([EMAIL PROTECTED])
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]