Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó +cc@s•ddlZddlmZddlTddlZddljZddlm Z ddl Z ddl Z ej j ƒZdejfd„ƒYZdS(iÿÿÿÿNi(thotplug(t*(tcommandst DiskPlugincBs9eZdZd„Zd„Zd„Zd„Zed„ƒZd„Z d„Z d„Z d „Z d „Z ed „ƒZed „ƒZd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zeddeƒd„ƒZe dƒe!d„ƒZ"eddeƒd „ƒZ#e dƒe!d!„ƒZ$ed"deƒd#„ƒZ%e d"ƒe!d$„ƒZ&d%„Z'd&„Z(ed'deƒd(„ƒZ)e d'ƒe!d)„ƒZ*e+d*deƒd+„ƒZ,d,„Z-ed-deƒd.„ƒZ.e d-ƒe!d/„ƒZ/RS(0s' Plugin for tuning options of disks. c Os§tt|ƒj||Žddddddddd d d d g |_d dddddddddd dg |_t|jƒ|_d|_d|_t ƒ|_ dS(NiþiáiÃi¥i‘i}iiiUiFi7iiiiúiæiÒi¾iªi–i‚iniZi<ig{®Gáz„?( tsuperRt__init__t _power_levelst_spindown_levelstlent_levelst _level_stepst_load_smallestRt_cmd(tselftargstkwargs((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyRs--  cCsÀtt|ƒjƒt|_t|_tƒ|_tƒ|_xp|j j dƒD]\}|j |ƒrP|jj |j ƒ|jr¬|j|j ƒr¬|jj |j ƒq¬qPqPWtƒ|_dS(Ntblock(RRt _init_devicestTruet_devices_supportedt _use_hdparmtsett _free_devicest_hdparm_apm_devicest_hardware_inventoryt get_devicest_device_is_supportedtaddtsys_namet_is_hdparm_apm_supportedt_assigned_devices(R tdevice((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyRs    cCs&g|D]}|jjd|ƒ^qS(NR(Rt get_device(R tdevicestx((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_get_device_objects)scCs»|jjddd|gdtjgdtƒ\}}}|tj krdtjdƒt|_tS|r–tj d|ƒtj d||fƒtSd |kr·tj d |ƒtStS( Nthdparms-Cs/dev/%st no_errorst return_errs4hdparm command not found, ignoring for other devicess#Device '%s' not supported by hdparms(rc: %s, msg: '%s')tunknowns3Driver for device '%s' does not support apm command( R texecuteterrnotENOENTRtlogtwarntFalseRtinfotdebug(R Rtrctoutterr_msg((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyR,s   cCsI|jdkoH|jjddƒdkoH|jdkpH|jjdkS( Ntdiskt removablet0tscsitvirtiotxentnvme(R6R7R8R9(t device_typet attributestgettNonetparentt subsystem(tclsR((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyR<scCs|jj|d|jƒdS(NR(Rt subscribet_hardware_events_callback(R ((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_hardware_events_initCscCs|jj|ƒdS(N(Rt unsubscribe(R ((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_hardware_events_cleanupFscCs;|j|ƒs|dkr7tt|ƒj||ƒndS(Ntremove(RRRRB(R teventR((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyRBIscCs?|jdk r"|jj|ƒntt|ƒj||ƒdS(N(t _load_monitorR=t add_deviceRRt_added_device_apply_tuning(R tinstancet device_name((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyRJMscCs?|jdk r"|jj|ƒntt|ƒj||ƒdS(N(RHR=t remove_deviceRRt_removed_device_unapply_tuning(R RKRL((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyRNRscCs5itd6dd6dd6dd6dd6dd6dd6S(Ntdynamictelevatortapmtspindownt readaheadtreadahead_multiplytscheduler_quantum(RR=(R@((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_get_config_optionsWscCs ddgS(NRQRR((R@((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt#_get_config_options_used_by_dynamiccscCs’t|_d|_d|_|j|jdƒr|t|_|jjd|j ƒ|_ i|_ i|_ i|_ i|_nt|_d|_ dS(NiROR3(Rt_has_static_tuningt _apm_errcntt_spindown_errcntt _option_booltoptionst_has_dynamic_tuningt_monitors_repositorytcreatetassigned_devicesRHt _device_idlet_statst_idlet_spindown_change_delayedR-R=(R RK((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_instance_initjs          cCs2|jdk r.|jj|jƒd|_ndS(N(RHR=R^tdelete(R RK((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_instance_cleanup}scCsÓ|rd}|j}nd}|j}|tjkr:dS|dkrOd}ne|tj kr‡tjd|_|_tjdƒdS|d7}|tjkr´tjd|ƒn|rÆ||_n ||_dS(NRRRQiisIhdparm command not found, ignoring future set_apm / set_spindown commandss5disabling set_%s command: too many consecutive errors( RZRYtconststERROR_THRESHOLDR)R*R+R,R.(R R0RRtstcnt((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_update_errcnt‚s&       cCsgtjd|ƒ|jjdd|d|gdtjgƒ\}}|j|tƒt|j ||jj|d|ƒn|S(Ns%d(R³R·R R›(R RœRR�RžRµ((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_set_readaheadds cCsM|j|ƒ}|jj|d|ƒjƒ}t|ƒdkrCdSt|ƒS(NR i(R³R R¢tstripRR=Rª(R RR£RžRœ((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_get_readaheadls RTc CsÏ|r dS|jddd|ƒ}|r†|j|ƒ}|dkrGdStt|ƒ|ƒ}|jj||ƒ|j||tƒnE|jj |ƒ}|dkr¨dS|j||tƒ|jj |ƒdS(Nt command_nameRTRL( R=t _storage_keyRºRªR„t_storageRR¸R-R<tunset( R tenablingt multiplierRtverifyR£t storage_keyt old_readaheadt new_readahead((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_multiply_readaheadts"    cCs|j|dƒS(Nsqueue/iosched/quantum(R˜(R R((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_scheduler_quantum_file‰sRUcCs9|j|ƒ}|s5|jj|dt|ƒƒn|S(Ns%d(RÆR R›Rª(R RœRR�Rž((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_set_scheduler_quantumŒs cCsg|j|ƒ}|jj|d|ƒjƒ}t|ƒdkr]|sYtjd|ƒndSt|ƒS(NR is>disk_scheduler_quantum option is not supported for device '%s'( RÆR R¢R¹RR+R.R=Rª(R RR£RžRœ((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyt_get_scheduler_quantum“s(0t__name__t __module__t__doc__RRR#Rt classmethodRRCRERBRJRNRVRWReRgRlRnRqR~RvRwRxRŒR�R˜R™t command_setRRŸt command_getR-R¤R¦R°R±R²R³R·R¸Rºtcommand_customRÅRÆRÇRÈ(((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyR sZ               2              (R)tRt decoratorst tuned.logsttunedt tuned.constsRhttuned.utils.commandsRR�R§tlogsR<R+tPluginR(((s=/usr/lib/python2.7/site-packages/tuned/plugins/plugin_disk.pyts