cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

guest-halt-polling.rst (2466B)


      1.. include:: ../disclaimer-zh_CN.rst
      2
      3:Original: Documentation/virt/guest-halt-polling.rst
      4
      5:翻译:
      6
      7 司延腾 Yanteng Si <siyanteng@loongson.cn>
      8
      9:校译:
     10
     11 时奎亮 Alex Shi <alexs@kernel.org>
     12
     13.. _cn_virt_guest-halt-polling:
     14
     15========================================
     16客户机停机轮询机制(Guest halt polling)
     17========================================
     18
     19cpuidle_haltpoll驱动,与haltpoll管理器一起,允许客户机vcpus在停机前轮询
     20一定的时间。
     21
     22这为物理机侧的轮询提供了以下好处:
     23
     24	1) 在执行轮询时,POLL标志被设置,这允许远程vCPU在执行唤醒时避免发送
     25	   IPI(以及处理IPI的相关成本)。
     26
     27	2) 可以避免虚拟机退出的成本。
     28
     29客户机侧轮询的缺点是,即使在物理机中的其他可运行任务中也会进行轮询。
     30
     31其基本逻辑如下。一个全局值,即guest_halt_poll_ns,是由用户配置的,表示允
     32许轮询的最大时间量。这个值是固定的。
     33
     34每个vcpu都有一个可调整的guest_halt_poll_ns("per-cpu guest_halt_poll_ns"),
     35它由算法响应事件进行调整(解释如下)。
     36
     37模块参数
     38========
     39
     40haltpoll管理器有5个可调整的模块参数:
     41
     421) guest_halt_poll_ns:
     43
     44轮询停机前执行的最大时间,以纳秒为单位。
     45
     46默认值: 200000
     47
     482) guest_halt_poll_shrink:
     49
     50当唤醒事件发生在全局的guest_halt_poll_ns之后,用于缩减每个CPU的guest_halt_poll_ns
     51的划分系数。
     52
     53默认值: 2
     54
     553) guest_halt_poll_grow:
     56
     57当事件发生在per-cpu guest_halt_poll_ns之后但在global guest_halt_poll_ns之前,
     58用于增长per-cpu guest_halt_poll_ns的乘法系数。
     59
     60默认值: 2
     61
     624) guest_halt_poll_grow_start:
     63
     64在系统空闲的情况下,每个cpu guest_halt_poll_ns最终达到零。这个值设置了增长时的
     65初始每cpu guest_halt_poll_ns。这个值可以从10000开始增加,以避免在最初的增长阶
     66段出现失误。:
     67
     6810k, 20k, 40k, ... (例如,假设guest_halt_poll_grow=2).
     69
     70默认值: 50000
     71
     725) guest_halt_poll_allow_shrink:
     73
     74允许缩减的Bool参数。设置为N以避免它(一旦达到全局的guest_halt_poll_ns值,每CPU的
     75guest_halt_poll_ns将保持高位)。
     76
     77默认值: Y
     78
     79模块参数可以从Debugfs文件中设置,在::
     80
     81	/sys/module/haltpoll/parameters/
     82
     83进一步说明
     84==========
     85
     86- 在设置guest_halt_poll_ns参数时应该小心,因为一个大的值有可能使几乎是完全空闲机
     87  器上的cpu使用率达到100%。