Help Configuring the Memory Used by a Process in RedHat? (Cache Memory on CPU)
I have an Intel based computer which has a 1MB CPU cache that is running real-time processes. It is running RedHat Enterprise Linux, and I had a question about memory management.
I’m wondering if there is a way to tell the memory management routine (process, whatever) to store the memory used by a certain process in cache memory on the CPU. Currently, if the process goes out of a page of memory (for the process) in cache, the CPU has to go to SDRAM in order to get the needed information stored there. This causes a performance hit when going to RAM. Does anyone know of a way to do this? Any code examples would be helpful, or some C routines/commands to get me started would be very helpful. Thank you in advance. |
I'm by no means a kernel-hacker ...
To the best of my knowledge the kernel doesn't discriminate between Cache and RAM ... all you can do is minimize the RAM usage, and hope for the best... In this context I'd suggest trying QNX or RTOS instead of RH ;) Cheers, Tink |
We don't really have the option of going with another OS. We have figured out how to run RH real-time, but disabling interrupts.
I would think in C there should be a way to discriminate between cache and RAM, but I'm not sure. Is there any kind of I/O commands in C that would allow this? |
The thing is that memory utilisation on this level is being decided
by the mmu and CPU internal stuff, not by the OS. Your only chance is to minimize paging by having an as small as possible overhead ... shrink-to-fit the kernel ... get a CPU with a 2MB Cache ;) But this is just what I think is going on, as I said, I'm neither a motherboard/chipset designer nor a kernel-hacker. Cheers, Tink |
All times are GMT -5. The time now is 07:59 PM. |