Home | History | Annotate | Download | only in regression
      1 #! /bin/sh
      2 
      3 ################################################################################
      4 ##                                                                            ##
      5 ## Copyright (c) 2009 FUJITSU LIMITED                                         ##
      6 ##                                                                            ##
      7 ## This program is free software;  you can redistribute it and#or modify      ##
      8 ## it under the terms of the GNU General Public License as published by       ##
      9 ## the Free Software Foundation; either version 2 of the License, or          ##
     10 ## (at your option) any later version.                                        ##
     11 ##                                                                            ##
     12 ## This program is distributed in the hope that it will be useful, but        ##
     13 ## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
     14 ## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
     15 ## for more details.                                                          ##
     16 ##                                                                            ##
     17 ## You should have received a copy of the GNU General Public License          ##
     18 ## along with this program;  if not, write to the Free Software               ##
     19 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
     20 ##                                                                            ##
     21 ## Author: Li Zefan <lizf (at] cn.fujitsu.com>                                     ##
     22 ##                                                                            ##
     23 ################################################################################
     24 
     25 # attach current task to memcg/0/
     26 mkdir memcg/0
     27 echo $$ > memcg/0/tasks
     28 
     29 ./memcg_test_4 &
     30 pid=$!
     31 sleep 1
     32 
     33 # let $pid allocate 100M memory
     34 /bin/kill -SIGUSR1 $pid
     35 sleep 1
     36 
     37 # shrink memory, and then 80M will be swapped
     38 echo 40M > memcg/0/memory.limit_in_bytes
     39 
     40 # turn off swap, and swapoff will be killed
     41 swapoff -a
     42 sleep 1
     43 echo $pid > memcg/tasks 2> /dev/null
     44 echo $$ > memcg/tasks 2> /dev/null
     45 
     46 # now remove the cgroup
     47 rmdir memcg/0
     48 
     49