On Wed, Mar 26, 2008 at 08:38:22AM +1100, NeilBrown wrote: ...Right. Makes sense. I looked at the code (xfs_ialloc.c:xfs_ialloc_ag_alloc) 290 /* 291 * Set initial values for the inodes in this buffer. 292 */ 293 xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); 294 for (i = 0; i < ninodes; i++) { 295 free = XFS_MAKE_IPTR(args.mp, fbuf, i); 296 free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); 297 free->di_core.di_version = version; 298 free->di_next_unlinked = cpu_to_be32(NULLAGINO); 299 xfs_ialloc_log_di(tp, fbuf, i, 300 XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); 301 } xfs_biozero(...) turns into a memset(buf, 0, len), and since the loop that follows doesn't change the generation number, it'll stay 0. I'm not familiar enough with NFS, do you want something that's monotonically increasing or do you just test for inequality? If it is inequality, why not just use something like the jiffies - that should be unique enough. Something tells me that the SGI folks might not be all too happy with the in-sb number...XFS tries to be as parallel as possible, and this would cause the counter variable to bounce around their NUMA systems. Perhaps a per-ag variable would be better, but I remember reading that parallelizing updates to some inode count variable (I forget which) in the superblock \cite{dchinner-ols2006} led to a rather big improvement. It's almost morning down under, so I guess we'll get their comments on this soon. Josef 'Jeff' Sipek. -- Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. - Brian W. Kernighan --
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Matt Mackall | Re: [PATCH] x86: fix unconditional arch/x86/kernel/pcspeaker.c compiling |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Natalie Protasevich | [BUG] New Kernel Bugs |
git: | |
