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

TOMOYO Linux Cross Reference
Linux/Documentation/virt/acrn/io-request.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/virt/acrn/io-request.rst (Version linux-6.11.5) and /Documentation/virt/acrn/io-request.rst (Version linux-5.4.284)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 I/O request handling                              
  4 ====================                              
  5                                                   
  6 An I/O request of a User VM, which is construc    
  7 distributed by the ACRN Hypervisor Service Mod    
  8 corresponding to the address range of the I/O     
  9 handling are described in the following sectio    
 10                                                   
 11 1. I/O request                                    
 12 --------------                                    
 13                                                   
 14 For each User VM, there is a shared 4-KByte me    
 15 communication between the hypervisor and Servi    
 16 256-byte structure buffer, which is 'struct ac    
 17 an I/O handler of the hypervisor when a trappe    
 18 VM. ACRN userspace in the Service VM first all    
 19 the GPA (Guest Physical Address) of the buffer    
 20 used as an array of 16 I/O request slots with     
 21 bytes. This array is indexed by vCPU ID.          
 22                                                   
 23 2. I/O clients                                    
 24 --------------                                    
 25                                                   
 26 An I/O client is responsible for handling User    
 27 GPA falls in a certain range. Multiple I/O cli    
 28 User VM. There is a special client associated     
 29 default client, that handles all I/O requests     
 30 any other clients. The ACRN userspace acts as     
 31 VM.                                               
 32                                                   
 33 Below illustration shows the relationship betw    
 34 I/O requests and I/O clients.                     
 35                                                   
 36 ::                                                
 37                                                   
 38      +----------------------------------------    
 39      |                                       S    
 40      |+---------------------------------------    
 41      ||      +--------------------------------    
 42      ||      | shared page            ACRN use    
 43      ||      |    +-----------------+  +------    
 44      ||   +----+->| acrn_io_request |<-+  defa    
 45      ||   |  | |  +-----------------+  | I/O c    
 46      ||   |  | |  |       ...       |  +------    
 47      ||   |  | |  +-----------------+             
 48      ||   |  +-|------------------------------    
 49      ||---|----|------------------------------    
 50      ||   |    |                             k    
 51      ||   |    |            +-----------------    
 52      ||   |    |            | +-------------+     
 53      ||   |    +--------------+             |     
 54      ||   |                 | | I/O clients |     
 55      ||   |                 | |             |     
 56      ||   |                 | +-------------+     
 57      ||   |                 +-----------------    
 58      |+---|-----------------------------------    
 59      +----|-----------------------------------    
 60           |                                       
 61      +----|-----------------------------------    
 62      |  +-+-----------+                           
 63      |  | I/O handler |              ACRN Hype    
 64      |  +-------------+                           
 65      +----------------------------------------    
 66                                                   
 67 3. I/O request state transition                   
 68 -------------------------------                   
 69                                                   
 70 The state transitions of an ACRN I/O request a    
 71                                                   
 72 ::                                                
 73                                                   
 74    FREE -> PENDING -> PROCESSING -> COMPLETE -    
 75                                                   
 76 - FREE: this I/O request slot is empty            
 77 - PENDING: a valid I/O request is pending in t    
 78 - PROCESSING: the I/O request is being process    
 79 - COMPLETE: the I/O request has been processed    
 80                                                   
 81 An I/O request in COMPLETE or FREE state is ow    
 82 ACRN userspace are in charge of processing the    
 83                                                   
 84 4. Processing flow of I/O requests                
 85 ----------------------------------                
 86                                                   
 87 a. The I/O handler of the hypervisor will fill    
 88    state when a trapped I/O access happens in     
 89 b. The hypervisor makes an upcall, which is a     
 90    the Service VM.                                
 91 c. The upcall handler schedules a worker to di    
 92 d. The worker looks for the PENDING I/O reques    
 93    registered clients based on the address of     
 94    their state to PROCESSING, and notifies the    
 95 e. The notified client handles the assigned I/    
 96 f. The HSM updates I/O requests states to COMP    
 97    of the completion via hypercalls.              
                                                      

~ [ 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