| #!/bin/sh |
| |
| # |
| # Exercises the SYS V IPC code of mm/ |
| # |
| # Creates a shared segment using shmget, attaches and locks it |
| # |
| # to calling process's VM and then unlocks and releases it. |
| # |
| |
| . ./hw_vars |
| |
| #segment size being requested |
| SHM_SIZE=$((shm_size / nr_task / 2)) |
| |
| #check for max shared memory allowed on system |
| MAX_SHARE_SEGMENT=$(cat /proc/sys/kernel/shmmax) |
| |
| echo "MAX SEGMENT is $MAX_SHARE_SEGMENT total asking is $((shm_size / 2))" |
| |
| #check to see if the request can be satisfied else exit with error |
| if [ $MAX_SHARE_SEGMENT -lt $SHM_SIZE ] |
| then |
| echo "Cannot allocate more shared memory segment than $MAX_SHARE_SEGMENT" |
| echo "exiting now..." |
| exit 1 #exit on failure |
| fi |
| |
| $USEMEM -n $nr_task -L --random $SHM_SIZE |