1 ================== 2 Guest halt polling 3 ================== 4 5 The cpuidle_haltpoll driver, with the haltpoll 6 the guest vcpus to poll for a specified amount 7 halting. 8 9 This provides the following benefits to host s 10 11 1) The POLL flag is set while polling 12 a remote vCPU to avoid sending an I 13 cost of handling the IPI) when perf 14 15 2) The VM-exit cost can be avoided. 16 17 The downside of guest side polling is that pol 18 even with other runnable tasks in the host. 19 20 The basic logic as follows: A global value, gu 21 is configured by the user, indicating the maxi 22 time polling is allowed. This value is fixed. 23 24 Each vcpu has an adjustable guest_halt_poll_ns 25 ("per-cpu guest_halt_poll_ns"), which is adjus 26 in response to events (explained below). 27 28 Module Parameters 29 ================= 30 31 The haltpoll governor has 5 tunable module par 32 33 1) guest_halt_poll_ns: 34 35 Maximum amount of time, in nanoseconds, that p 36 performed before halting. 37 38 Default: 200000 39 40 2) guest_halt_poll_shrink: 41 42 Division factor used to shrink per-cpu guest_h 43 wakeup event occurs after the global guest_hal 44 45 Default: 2 46 47 3) guest_halt_poll_grow: 48 49 Multiplication factor used to grow per-cpu gue 50 when event occurs after per-cpu guest_halt_pol 51 but before global guest_halt_poll_ns. 52 53 Default: 2 54 55 4) guest_halt_poll_grow_start: 56 57 The per-cpu guest_halt_poll_ns eventually reac 58 in case of an idle system. This value sets the 59 per-cpu guest_halt_poll_ns when growing. This 60 be increased from 10000, to avoid misses durin 61 growth stage: 62 63 10k, 20k, 40k, ... (example assumes guest_halt 64 65 Default: 50000 66 67 5) guest_halt_poll_allow_shrink: 68 69 Bool parameter which allows shrinking. Set to 70 to avoid it (per-cpu guest_halt_poll_ns will r 71 high once achieves global guest_halt_poll_ns v 72 73 Default: Y 74 75 The module parameters can be set from the sysf 76 77 /sys/module/haltpoll/parameters/ 78 79 Further Notes 80 ============= 81 82 - Care should be taken when setting the guest_ 83 large value has the potential to drive the c 84 which would be almost entirely idle otherwis
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.