On Tue, Mar 22, 2011 at 12:23 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote: > Hi Al, > > The following patches are the inode_lock breakup series originally > derived from Nick Piggin's vfs-scale tree. I've kind of been sitting > on them until the dcache_lock breakup and rcu path-walk has had some > time to be shaken out. The patch Ñet is pretty much unchanged from > the last round of review last last year - all I've done to bring it > up to date is forward port it and run it through some testing on XFS > and ext4. > > I know it's late in the .39 merge window, but I hope you'll consider > it if the patches are still acceptable(*). Otherwise I'm happy to take > the time to get it right for .40. > > Cheers, > > Dave. > > (*) The series can also be found here: > > Âgit://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git inode-scale > > Dave Chinner (8): > Â Â Âfs: protect inode->i_state with inode->i_lock > Â Â Âfs: factor inode disposal > Â Â Âfs: Lock the inode LRU list separately > Â Â Âfs: remove inode_lock from iput_final and prune_icache > Â Â Âfs: move i_sb_list out from under inode_lock > Â Â Âfs: move i_wb_list out from under inode_lock > Â Â Âfs: rename inode_lock to inode_hash_lock > Â Â Âfs: pull inode->i_lock up out of writeback_single_inode > [...] Hi, I have tested this patch-series on top of linux-next (next-20110322) by running xfstests-dev (built from git). My sdb2 partition (on an external 1GBytes USB-2.0 hdd) was formatted and mounted as ext4-fs . The check-log is attached (not sure how to interpret the errors and failures). Regards, - Sedat - P.S.: Note to myself (Host: Debian/sid i386) [ BUILD ] $ apt-get install uuid-dev xfslibs-dev libacl1-dev libdm0-dev libgdbm-dev [ TESTS ] $ apt-get install xfsdump DEVNODE="sdb2" FSTYPE="ext4" $ mkfs.$FSTYPE /dev/$DEVNODE $ mkdir -p /mnt/$DEVNODE $ mount -t $FSTYPE /dev/$DEVNODE /mnt/$DEVNODE $ TEST_DIR=/mnt/$DEVNODE TEST_DEV=/dev/$DEVNODE ./check 2>&1 | tee ../check_${DEVNODE}-${FSTYPE}.txt -SD // 22-Mar-2011
FSTYP -- ext4 PLATFORM -- Linux/i686 tbox 2.6.38-next20110322-2-686-iniza 001 5s ... 4s 002 1s ... 1s 003 [not run] not suitable for this filesystem type: ext4 004 [not run] not suitable for this filesystem type: ext4 005 - output mismatch (see 005.out.bad) --- 005.out 2011-03-22 17:47:03.861226933 +0100 +++ 005.out.bad 2011-03-22 18:47:58.847277538 +0100 @@ -1,7 +1,7 @@ QA output created by 005 *** touch deep symlinks -ELOOP returned. Good. +No ELOOP? Unexpected! *** touch recusive symlinks 006 0s ... 1s 007 1s ... 1s 008 [not run] not suitable for this filesystem type: ext4 009 [not run] not suitable for this filesystem type: ext4 010 0s ... 1s 011 1s ... 2s 012 [not run] not suitable for this filesystem type: ext4 013 42s ... 39s 014 0s ... 0s 015 [not run] not suitable for this filesystem type: ext4 016 [not run] not suitable for this filesystem type: ext4 017 [not run] not suitable for this filesystem type: ext4 018 [not run] not suitable for this filesystem type: ext4 019 [not run] not suitable for this filesystem type: ext4 020 [not run] not suitable for this filesystem type: ext4 021 [not run] not suitable for this filesystem type: ext4 022 [not run] not suitable for this filesystem type: ext4 023 [not run] not suitable for this filesystem type: ext4 024 [not run] not suitable for this filesystem type: ext4 025 [not run] not suitable for this filesystem type: ext4 026 [not run] not suitable for this filesystem type: ext4 027 [not run] not suitable for this filesystem type: ext4 028 [not run] not suitable for this filesystem type: ext4 029 [not run] not suitable for this filesystem type: ext4 030 [not run] not suitable for this filesystem type: ext4 031 [not run] not suitable for this filesystem type: ext4 032 [not run] not suitable for this filesystem type: ext4 033 [not run] not suitable for this filesystem type: ext4 034 [not run] not suitable for this filesystem type: ext4 035 [not run] not suitable for this filesystem type: ext4 036 [not run] not suitable for this filesystem type: ext4 037 [not run] not suitable for this filesystem type: ext4 038 [not run] not suitable for this filesystem type: ext4 039 [not run] not suitable for this filesystem type: ext4 040 [not run] Can't run srcdiff without KWORKAREA set 041 [not run] not suitable for this filesystem type: ext4 042 [not run] not suitable for this filesystem type: ext4 043 [not run] not suitable for this filesystem type: ext4 044 [not run] not suitable for this filesystem type: ext4 045 [not run] not suitable for this filesystem type: ext4 046 [not run] not suitable for this filesystem type: ext4 047 [not run] not suitable for this filesystem type: ext4 048 [not run] not suitable for this filesystem type: ext4 049 [not run] not suitable for this filesystem type: ext4 050 [not run] not suitable for this filesystem type: ext4 051 [not run] not suitable for this filesystem type: ext4 052 [not run] not suitable for this filesystem type: ext4 053 [not run] this test requires a valid $SCRATCH_DEV 054 [not run] not suitable for this filesystem type: ext4 055 [not run] not suitable for this filesystem type: ext4 056 [not run] not suitable for this filesystem type: ext4 057 [not run] Place holder for IRIX test 057 058 [not run] Place holder for IRIX test 058 059 [not run] Place holder for IRIX test 059 060 [not run] Place holder for IRIX test 060 061 [not run] not suitable for this filesystem type: ext4 062 [not run] not suitable for this filesystem type: ext4 063 [not run] not suitable for this filesystem type: ext4 064 [not run] not suitable for this filesystem type: ext4 065 [not run] not suitable for this filesystem type: ext4 066 [not run] not suitable for this filesystem type: ext4 067 [not run] not suitable for this filesystem type: ext4 068 [not run] not suitable for this filesystem type: ext4 069 [not run] this test requires a valid $SCRATCH_DEV 070 7s ... 6s 071 [not run] not suitable for this filesystem type: ext4 072 [not run] not suitable for this filesystem type: ext4 073 [not run] not suitable for this filesystem type: ext4 074 465s ... 459s 075 20s ... 18s 076 [not run] this test requires a valid $SCRATCH_DEV 077 [not run] fsgqa user not defined. 078 [not run] not suitable for this filesystem type: ext4 079 [not run] not suitable for this filesystem type: ext4 080 [not run] not suitable for this filesystem type: ext4 081 [not run] not suitable for this filesystem type: ext4 082 [not run] not suitable for this filesystem type: ext4 083 [not run] not suitable for this filesystem type: ext4 084 [not run] not suitable for this filesystem type: ext4 085 [not run] not suitable for this filesystem type: ext4 086 [not run] not suitable for this filesystem type: ext4 087 [not run] not suitable for this filesystem type: ext4 088 1s ... 0s 089 20s ... 19s 090 [not run] not suitable for this filesystem type: ext4 091 [not run] not suitable for this filesystem type: ext4 092 [not run] not suitable for this filesystem type: ext4 093 [not run] not suitable for this OS: Linux 094 [not run] not suitable for this filesystem type: ext4 095 [not run] not suitable for this filesystem type: ext4 096 [not run] not suitable for this filesystem type: ext4 097 [not run] not suitable for this OS: Linux 098 [not run] not suitable for this filesystem type: ext4 099 [not run] not suitable for this OS: Linux 100 [not run] this test requires a valid $SCRATCH_DEV 101 [not run] not suitable for this filesystem type: ext4 102 [not run] not suitable for this filesystem type: ext4 103 [not run] not suitable for this filesystem type: ext4 104 [not run] not suitable for this filesystem type: ext4 105 [not run] this test requires a valid $SCRATCH_DEV 106 [not run] not suitable for this filesystem type: ext4 107 [not run] not suitable for this filesystem type: ext4 108 [not run] not suitable for this filesystem type: ext4 109 [not run] not suitable for this filesystem type: ext4 110 [not run] not suitable for this filesystem type: ext4 111 [not run] not suitable for this filesystem type: ext4 112 [not run] fsx not built with AIO for this platform 113 [not run] aio-stress not built for this platform 114 [not run] not suitable for this filesystem type: ext4 115 [not run] not suitable for this filesystem type: ext4 116 [not run] not suitable for this filesystem type: ext4 117 [not run] not suitable for this filesystem type: ext4 118 [not run] not suitable for this filesystem type: ext4 119 [not run] not suitable for this filesystem type: ext4 120 [not run] not suitable for this filesystem type: ext4 121 [not run] not suitable for this filesystem type: ext4 122 [not run] not suitable for this filesystem type: ext4 123 [not run] fsgqa user not defined. 124 [not run] this test requires a valid $SCRATCH_DEV 125 [not run] fsgqa user not defined. 126 1s ... 1s 127 96s ... 95s 128 [not run] this test requires a valid $SCRATCH_DEV 129 [not run] this test requires a valid $SCRATCH_DEV 130 [not run] this test requires a valid $SCRATCH_DEV 131 1s ... 1s 132 [not run] this test requires a valid $SCRATCH_DEV 133 238s ... 239s 134 [not run] not suitable for this filesystem type: ext4 135 [not run] this test requires a valid $SCRATCH_DEV 136 [not run] not suitable for this filesystem type: ext4 137 [not run] not suitable for this filesystem type: ext4 138 [not run] not suitable for this filesystem type: ext4 139 [not run] not suitable for this filesystem type: ext4 140 [not run] not suitable for this filesystem type: ext4 141 [not run] this test requires a valid $SCRATCH_DEV 142 [not run] not suitable for this filesystem type: ext4 143 [not run] not suitable for this filesystem type: ext4 144 [not run] not suitable for this filesystem type: ext4 145 [not run] not suitable for this filesystem type: ext4 146 [not run] not suitable for this filesystem type: ext4 147 [not run] not suitable for this filesystem type: ext4 148 [not run] parallel repair binary xfs_prepair64 is not installed 149 [not run] parallel repair binary xfs_prepair is not installed 150 [not run] not suitable for this filesystem type: ext4 151 [not run] not suitable for this filesystem type: ext4 152 [not run] not suitable for this filesystem type: ext4 153 [not run] not suitable for this filesystem type: ext4 154 [not run] not suitable for this filesystem type: ext4 155 [not run] not suitable for this filesystem type: ext4 156 [not run] not suitable for this filesystem type: ext4 157 [not run] not suitable for this filesystem type: ext4 158 [not run] not suitable for this filesystem type: ext4 159 [not run] not suitable for this filesystem type: ext4 160 [not run] not suitable for this filesystem type: ext4 161 [not run] not suitable for this filesystem type: ext4 162 [not run] not suitable for this filesystem type: ext4 163 [not run] not suitable for this filesystem type: ext4 164 [not run] not suitable for this filesystem type: ext4 165 [not run] not suitable for this filesystem type: ext4 166 [not run] not suitable for this filesystem type: ext4 167 [not run] not suitable for this filesystem type: ext4 168 [not run] not suitable for this filesystem type: ext4 169 [not run] this test requires a valid $SCRATCH_DEV 170 [not run] not suitable for this filesystem type: ext4 171 [not run] not suitable for this filesystem type: ext4 172 [not run] not suitable for this filesystem type: ext4 173 [not run] not suitable for this filesystem type: ext4 174 [not run] not suitable for this filesystem type: ext4 175 [not run] not suitable for this filesystem type: ext4 176 [not run] not suitable for this filesystem type: ext4 177 [not run] not suitable for this filesystem type: ext4 178 [not run] not suitable for this filesystem type: ext4 179 [not run] not suitable for this filesystem type: ext4 180 [not run] not suitable for this filesystem type: ext4 181 [not run] not suitable for this filesystem type: ext4 182 [not run] not suitable for this filesystem type: ext4 183 [not run] not suitable for this filesystem type: ext4 184 1s ... 0s 185 [not run] not suitable for this filesystem type: ext4 186 [not run] not suitable for this filesystem type: ext4 187 [not run] not suitable for this filesystem type: ext4 188 [not run] not suitable for this filesystem type: ext4 189 [not run] not suitable for this filesystem type: ext4 190 [not run] not suitable for this filesystem type: ext4 191 [not run] not suitable for this filesystem type: ext4 192 [not run] not suitable for this filesystem type: ext4 193 [not run] fsgqa user not defined. 194 [not run] not suitable for this filesystem type: ext4 195 [not run] not suitable for this filesystem type: ext4 196 [not run] not suitable for this filesystem type: ext4 197 [not run] not suitable for this filesystem type: ext4 198 [failed, exit status 127] - output mismatch (see 198.out.bad) --- 198.out 2011-03-22 17:47:03.917226229 +0100 +++ 198.out.bad 2011-03-22 19:04:12.591035920 +0100 @@ -1,2 +1,3 @@ QA output created by 198 Silence is golden. +./198: line 54: /home/sd/src/xfstests-dev/xfstests-dev/src/aio-dio-regress/aiodio_sparse2: No such file or directory 199 [not run] not suitable for this filesystem type: ext4 200 [not run] not suitable for this filesystem type: ext4 201 [not run] not suitable for this filesystem type: ext4 202 [not run] not suitable for this filesystem type: ext4 203 [not run] not suitable for this filesystem type: ext4 204 [not run] this test requires a valid $SCRATCH_DEV 205 [not run] not suitable for this filesystem type: ext4 206 [not run] not suitable for this filesystem type: ext4 207 [not run] src/aio-dio-regress/aio-dio-extend-stat not built 208 [not run] src/aio-dio-regress/aio-dio-invalidate-failure not built 209 [not run] src/aio-dio-regress/aio-dio-invalidate-readahead not built 210 [not run] src/aio-dio-regress/aio-dio-subblock-eof-read not built 211 [not run] src/aio-dio-regress/aio-free-ring-with-bogus-nr-pages not built 212 [not run] src/aio-dio-regress/aio-io-setup-with-nonwritable-context-pointer not built 213 2s ... 2s 214 1s ... 1s 215 2s ... 2s 216 [not run] not suitable for this filesystem type: ext4 217 [not run] not suitable for this filesystem type: ext4 218 [not run] this test requires a valid $SCRATCH_DEV 219 [not run] this test requires a valid $SCRATCH_DEV 220 [not run] not suitable for this filesystem type: ext4 221 1s ... 1s 222 [not run] not suitable for this filesystem type: ext4 223 [not run] this test requires a valid $SCRATCH_DEV 224 [not run] this test requires a valid $SCRATCH_DEV 225 11s ... 11s 226 [not run] this test requires a valid $SCRATCH_DEV 227 [not run] not suitable for this filesystem type: ext4 228 0s ... 1s 229 [not run] not suitable for this filesystem type: ext4 230 [not run] this test requires a valid $SCRATCH_DEV 231 [not run] this test requires a valid $SCRATCH_DEV 232 [not run] this test requires a valid $SCRATCH_DEV 233 [not run] this test requires a valid $SCRATCH_DEV 234 [not run] this test requires a valid $SCRATCH_DEV 235 [not run] this test requires a valid $SCRATCH_DEV 236 2s ... 1s 237 0s ... 0s 238 [not run] not suitable for this filesystem type: ext4 239 [not run] src/aio-dio-regress/aio-dio-hole-filling-race not built 240 [failed, exit status 127] - output mismatch (see 240.out.bad) --- 240.out 2011-03-22 17:47:03.925226129 +0100 +++ 240.out.bad 2011-03-22 19:04:59.866441589 +0100 @@ -1,2 +1,3 @@ QA output created by 240 Silence is golden. +./240: line 72: /home/sd/src/xfstests-dev/xfstests-dev/src/aio-dio-regress/aiodio_sparse2: No such file or directory 241 [not run] dbench not found 242 [not run] not suitable for this filesystem type: ext4 243 3s ... 3s 244 [not run] not suitable for this filesystem type: ext4 245 0s ... 0s 246 0s ... 0s 247 77s ... 78s 248 0s ... 0s 249 0s ... 1s 250 [not run] not suitable for this filesystem type: ext4 251 [not run] this test requires a valid $SCRATCH_DEV Ran: 001 002 005 006 007 010 011 013 014 070 074 075 088 089 126 127 131 133 184 198 213 214 215 221 225 228 236 237 240 243 245 246 247 248 249 Not run: 003 004 008 009 012 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 071 072 073 076 077 078 079 080 081 082 083 084 085 086 087 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 128 129 130 132 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 185 186 187 188 189 190 191 192 193 194 195 196 197 199 200 201 202 203 204 205 206 207 208 209 210 211 212 216 217 218 219 220 222 223 224 226 227 229 230 231 232 233 234 235 238 239 241 242 244 250 251 Failures: 005 198 240 Failed 3 of 35 tests