MINI MINI MANI MO
ó
©=[c           @   s   d  d l  m Z d  d l Td d l Z d d l Z d d l Z d d l Z d d l m	 Z	 e j
 j ƒ  Z e	 ƒ  Z
 d e j f d „  ƒ  YZ d S(   i   (   t   base(   t   *iÿÿÿÿN(   t   commandst   VMPluginc           B   s’   e  Z d  Z e d „  ƒ Z d „  Z d „  Z e d „  ƒ Z e d ƒ d „  ƒ Z	 e d ƒ d „  ƒ Z
 e d ƒ d	 „  ƒ Z e d ƒ d
 „  ƒ Z
 RS(   s(   
	Plugin for tuning memory management.
	c         C   s   i d  d 6d  d 6S(   Nt   transparent_hugepagest   transparent_hugepage(   t   None(   t   self(    (    s;   /usr/lib/python2.7/site-packages/tuned/plugins/plugin_vm.pyt   _get_config_options   s    c         C   s   t  | _ t | _ d  S(   N(   t   Truet   _has_static_tuningt   Falset   _has_dynamic_tuning(   R   t   instance(    (    s;   /usr/lib/python2.7/site-packages/tuned/plugins/plugin_vm.pyt   _instance_init   s    	c         C   s   d  S(   N(    (   R   R
   (    (    s;   /usr/lib/python2.7/site-packages/tuned/plugins/plugin_vm.pyt   _instance_cleanup   s    c         C   s%   d } t  j j | ƒ s! d } n  | S(   Ns+   /sys/kernel/mm/transparent_hugepage/enableds2   /sys/kernel/mm/redhat_transparent_hugepage/enabled(   t   ost   patht   exists(   R   R   (    (    s;   /usr/lib/python2.7/site-packages/tuned/plugins/plugin_vm.pyt	   _thp_file    s    	R   c         C   sÍ   | d k r0 | s, t  j d t | ƒ ƒ n  d  St j d d t ƒ} | j d ƒ d k rt | sp t  j d	 ƒ n  d  S|  j	 ƒ  } t
 j j | ƒ r¯ | s« t j
 | | ƒ n  | S| sÅ t  j d
 ƒ n  d  Sd  S(   Nt   alwayst   nevert   madvises-   Incorrect 'transparent_hugepages' value '%s'.s
   /proc/cmdlinet   no_errors   transparent_hugepage=i    sW   transparent_hugepage is already set in kernel boot cmdline, ingoring value from profilesD   Option 'transparent_hugepages' is not supported on current hardware.(   s   alwaysR   R   (   t   logt   warnt   strR   t   cmdt	   read_fileR	   t   findt   infoR   R   R   R   t
   write_to_file(   R   t   valuet   simt   cmdlinet   sys_file(    (    s;   /usr/lib/python2.7/site-packages/tuned/plugins/plugin_vm.pyt   _set_transparent_hugepages'   s"