On 01/23/09 16:42, Ben Rockwood wrote:
> I need some clarification on the FOID handed to zil_commit.  I wrote a 
> dscript to watch entry
> and return of zil_commit_writer.  Here is an example output:
> 
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211310 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211324 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211386 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211388 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211390 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211361 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211344 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211346 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:36:   ZIL Commit : Seq 183211357 : FOID 129644         
> Completed in 0 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 12960665 : FOID 24871   Completed in 
> 60 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211496 : FOID 129644         
> Completed in 19 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211483 : FOID 129644         
> Completed in 15 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211498 : FOID 129644         
> Completed in 10 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211502 : FOID 129644         
> Completed in 10 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211405 : FOID 129646         
> Completed in 171 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211500 : FOID 129644         
> Completed in 12 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 183211410 : FOID 129644         
> Completed in 49 ms
> 2009 Jan 23 23:34:37:   ZIL Commit : Seq 7781413 : FOID 24869    Completed in 
> 849 ms
> 
> For all the calls with the same FOID, does that mean they are ZIL commits on 
> the same POSIX file?

Yes, except we use 0 for all objects. The only other exception is that zvols 
also use
the ZIl but they use a fixed ZVOL_OBJ foid. A foid is just a file object id 
that is 
a 64 bit number identifying the DMU object.

> I see no easy way to trace these commits back through all the layers to 
> determine which file it
> is, but just knowing that some file is being hammered on more than another is 
> something worth knowing.

Right there's no easy mapping from foid to file. The ZPL layer holds the foid 
in its znode_t z_id
field which is the file system side of the vnode, and vnodes usually have the 
absolute 
filename in v_path.

> 
> benr.

Reply via email to