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

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/nfs/pnfs.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/filesystems/nfs/pnfs.rst (Version linux-6.11.5) and /Documentation/filesystems/nfs/pnfs.rst (Version linux-2.6.0)


  1 ==========================                        
  2 Reference counting in pnfs                        
  3 ==========================                        
  4                                                   
  5 The are several inter-related caches.  We have    
  6 reference multiple devices, each of which can     
  7 Each data server can be referenced by multiple    
  8 can be referenced by multiple layouts. To keep    
  9 we need to reference count.                       
 10                                                   
 11                                                   
 12 struct pnfs_layout_hdr                            
 13 ======================                            
 14                                                   
 15 The on-the-wire command LAYOUTGET corresponds     
 16 pnfs_layout_segment, usually referred to by th    
 17 Each nfs_inode may hold a pointer to a cache o    
 18 segments in nfsi->layout, of type struct pnfs_    
 19                                                   
 20 We reference the header for the inode pointing    
 21 outstanding RPC call that references it (LAYOU    
 22 LAYOUTCOMMIT), and for each lseg held within.     
 23                                                   
 24 Each header is also (when non-empty) put on a     
 25 struct nfs_client (cl_layouts).  Being put on     
 26 the reference count, as the layout is kept aro    
 27 keeps it in the list.                             
 28                                                   
 29 deviceid_cache                                    
 30 ==============                                    
 31                                                   
 32 lsegs reference device ids, which are resolved    
 33 layout driver type.  The device ids are held i    
 34 nfs4_deviceid_cache).  The cache itself is ref    
 35 mount.  The entries (struct nfs4_deviceid) the    
 36 the lifetime of each lseg referencing them.       
 37                                                   
 38 RCU is used because the deviceid is basically     
 39 data structure.  The hlist size of 32 buckets     
 40 justification, but seems reasonable given that    
 41 deviceid's per filesystem, and multiple filesy    
 42                                                   
 43 The hash code is copied from the nfsd code bas    
 44 hashing and variations of this algorithm can b    
 45 <http://groups.google.com/group/comp.lang.c/br    
 46                                                   
 47 data server cache                                 
 48 =================                                 
 49                                                   
 50 file driver devices refer to data servers, whi    
 51 level cache.  Its reference is held over the l    
 52 pointing to it.                                   
 53                                                   
 54 lseg                                              
 55 ====                                              
 56                                                   
 57 lseg maintains an extra reference correspondin    
 58 bit which holds it in the pnfs_layout_hdr's li    
 59 is removed from the pnfs_layout_hdr's list, th    
 60 bit is set, preventing any new lsegs from bein    
 61                                                   
 62 layout drivers                                    
 63 ==============                                    
 64                                                   
 65 PNFS utilizes what is called layout drivers. T    
 66 layout types: "files", "objects", "blocks", an    
 67 of these types there is a layout-driver with a    
 68 table which are called by the nfs-client pnfs-    
 69 different layout types.                           
 70                                                   
 71 Files-layout-driver code is in: fs/nfs/filelay    
 72 Blocks-layout-driver code is in: fs/nfs/blockl    
 73 Flexfiles-layout-driver code is in: fs/nfs/fle    
 74                                                   
 75 blocks-layout setup                               
 76 ===================                               
 77                                                   
 78 TODO: Document the setup needs of the blocks l    
                                                      

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