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.