~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/virt/guest-halt-polling.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/virt/guest-halt-polling.rst (Version linux-6.12-rc7) and /Documentation/virt/guest-halt-polling.rst (Version linux-4.13.16)


  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    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php