Dear all,
I have AMD athlon (64 bit machine) and below are the limits of shared memory in my machine /------ Shared Memory Limits --------/
max number of segments = 4096
max seg size (kbytes) = 32768 max total shared memory (kbytes) = 8388608 min seg size (bytes) = 1 I want to change the above limits v.i.z max seg size to 8 GB (Yeah ...
GigaBytes) and max. no of segments to 16.
By what i have learnt so far, i understand that i got to change the below macros v.i.z. #define SHMMAX and #define SHMMNI in /usr/src/linux-2.6.7/include/linux/shm.h and i would also like to increase the PAGE_SIZE from 4k to 16 or 32
kbytes.
which i can do by changing the PAGE_SHIFT macro #define PAGE_SHIFT 12 #define PAGE_SIZE (0x1 << PAGE_SHIFT) in /usr/src/linux-2.6.7/include/asm-x86_64/page.h I have some queries regarding this.
1. Will this changing of Shared Memory and Page Size give any qualms to the
system performance or working??
( AFAIK increasing Page Size will
have issues in flushing data from memory to hard disk (HDD) but its ok with me..
as i am not going
to write much on HDD and my swap space too won't frequently come
in picture as i have 2GB of RAM )
2. Is there anything i shud consider or change along with tuning above
Macro values?
3. As we know that the user space process can't access kernel address space and when shmat system call is used the shared memory is mapped to the Process's Virtual Address space, Now the question is from where in the memory does shared memory come from... i mean does it come from User Space or Kernel Space.........or from process's Data
Segment.... ??????
Thank you for your time.
regards,
Vishal.
|