Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cumulative] buildbot crunching, proof of concept (*1), #2129, #3115 #3190

Conversation

kernelOfTruth
Copy link
Contributor

One huge cumulative pull-request to speed up testing for the build-bots

like mentioned in #3189

additional changes (non-upstream)
fbbf1f0

details - see: openzfs#3189
@kernelOfTruth
Copy link
Contributor Author

weird - it builds fine here:

 CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/avl/../../module/avl/avl.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/unicode/../../module/unicode/u8_textprep.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/../../module/nvpair/nvpair.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/unicode/../../module/unicode/uconv.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/../../module/nvpair/fnvpair.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/../../module/nvpair/nvpair_alloc_spl.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/../../module/nvpair/nvpair_alloc_fixed.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_deleg.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_prop.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zprop_common.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_namecheck.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/abd.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_comutil.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/avl/zavl.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/arc.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_fletcher.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zfs_uio.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/../../module/zcommon/zpool_prop.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/blkptr.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/bplist.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/bpobj.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dbuf.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dbuf_stats.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/bptree.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/ddt.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/ddt_zap.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/zcommon.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_diff.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_object.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_objset.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/znvpair.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_send.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_traverse.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_tx.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/unicode/zunicode.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dmu_zfetch.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dnode.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dnode_sync.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_dataset.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_deadlist.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_deleg.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_bookmark.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_dir.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_pool.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_prop.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_scan.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_synctask.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/fm.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/gzip.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/lzjb.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/lz4.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/metaslab.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/multilist.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/range_tree.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/refcount.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/rrwlock.o
/var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/multilist.c:30:1: warning: ‘multilist_d2l’ defined but not used [-Wunused-function]
 multilist_d2l(multilist_t *ml, void *obj)
 ^
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/sa.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/sha256.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_boot.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_config.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_errlog.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_history.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_misc.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/spa_stats.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/space_map.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/space_reftree.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/txg.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/trace.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/uberblock.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/unique.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_cache.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_disk.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_file.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_label.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_mirror.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_missing.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_queue.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_raidz.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/vdev_root.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zap.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zap_leaf.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zap_micro.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfeature.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfeature_common.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_acl.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_byteswap.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_ctldir.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_debug.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_dir.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_fm.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_fuid.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_ioctl.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_log.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_onexit.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_replay.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_rlock.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_sa.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_vfsops.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_vnops.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zfs_znode.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zil.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zio.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zio_checksum.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zio_compress.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zio_inject.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zle.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_ctldir.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_export.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_file.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_inode.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_super.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zpl_xattr.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zrlock.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/zvol.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_destroy.o
  CC [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/../../module/zfs/dsl_userhold.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/zfs.o
  Building modules, stage 2.
  MODPOST 5 modules
  CC      /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/avl/zavl.mod.o
  CC      /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/znvpair.mod.o
  CC      /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/unicode/zunicode.mod.o
  CC      /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/zcommon.mod.o
  CC      /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/zfs.mod.o
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/nvpair/znvpair.ko
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/avl/zavl.ko
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/unicode/zunicode.ko
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zcommon/zcommon.ko
  LD [M]  /var/tmp/portage/sys-fs/zfs-kmod-9999-r1/work/zfs-kmod-9999/module/zfs/zfs.ko

edit:

well, never had it built with debug on - therefore the difference XD


typedef struct arc_buf_data {
#ifdef DEBUG_ABD
char pad[PAGE_SIZE]; /* debug, coredumps when accessed */
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same DEBUG build error, originating from #2129

error: variably modified 'pad' at file scope

not sure in what (best) way to fix it - so leaving it to author

./module/zfs/arc.c: 3470: line > 80 characters
make: *** [checkstyle] Error 1
program finished with exit code 2
./module/zfs/arc.c: 3470: space or tab at end of line
Makefile:1259: recipe for target 'checkstyle' failed
make: *** [checkstyle] Error 1
program finished with exit code 2

let's see if more comes up
@kernelOfTruth
Copy link
Contributor Author

@behlendorf since several of the buildbots give it green light as of the latest commit (0afeca7)

e.g.
http://buildbot.zfsonlinux.org/builders/fedora-21-x86_64-builder/builds/738
http://buildbot.zfsonlinux.org/builders/ubuntu-14.04-amd64-builder/builds/2337

do you think it would be safe to use this ?

@sempervictus
Copy link
Contributor

Running on two test hosts for >24 hours so far, nothing in dmesg, and concurrent abuse from userspace and file operations with a scrub running seem to not kill it on the workstation. Server VM running copies of large directory structures over and over also hasnt died.
@kernelOfTruth: this PR hits a conflict with master, arc.c references l2arc_buflist_mtx and the recent mutex change conflicts, not a problem by any means, but figured i'd point it out. Is there a branch with full commit history i can merge instead of this congolmeration?

@kernelOfTruth
Copy link
Contributor Author

@sempervictus thanks for your trust and feedback 👍

issue #3189 is the split-out version of this cumulative pull-request

I've added .diff to the address like so: https://github.com/zfsonlinux/zfs/pull/3190.diff
and https://github.com/zfsonlinux/zfs/pull/3189.diff

and the resulting file is the same

Thanks for referring to the merge conflict, I'm sure there will be more in the near future if it won't get merged soon

So https://github.com/kernelOfTruth/zfs/tree/zfs_master_12.03.2015_2129%2B3115 should be the branch you're looking for - I've just pushed the remaining changes to get it to the state of this pull request

keep in mind though, that I haven't re-integrated those last fixes into the related upstream commits yet - which I'll do once I find some more time,

currently I'm occupied with other projects

Cheers !

edit:

I've merged the last 2 commits into one - it's really not necessary to have the build bots work on a diff of one added white space on this branch (forced push)

kernelOfTruth@a37d4a8

3189.diff & 3190.diff are still the same after this

@sempervictus
Copy link
Contributor

This is looking quite promising, and for some reason appears to have improved write speeds considerably. Here's a quick and dirty tiotest output (without @behlendorf's fix for the benchmark itself).

for i in 2 4 6 8; do tiotest -t $i -f 200; done
Tiotest results for 2 concurrent io threads:
,----------------------------------------------------------------------.
| Item                  | Time     | Rate         | Usr CPU  | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write         400 MBs |    0.7 s | 553.650 MB/s |  19.7 %  | 122.4 % |
| Random Write    8 MBs |    0.1 s |  77.008 MB/s |   4.9 %  |  82.8 % |
| Read          400 MBs |    1.0 s | 391.901 MB/s |  12.5 %  | 179.5 % |
| Random Read     8 MBs |    0.0 s | 393.736 MB/s |  40.3 %  | 161.3 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item         | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write        |        0.011 ms |        0.162 ms |  0.00000 |   0.00000 |
| Random Write |        0.036 ms |        0.140 ms |  0.00000 |   0.00000 |
| Read         |        0.019 ms |        0.158 ms |  0.00000 |   0.00000 |
| Random Read  |        0.019 ms |        0.063 ms |  0.00000 |   0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total        |        0.015 ms |        0.162 ms |  0.00000 |   0.00000 |
`--------------+-----------------+-----------------+----------+-----------'

Tiotest results for 4 concurrent io threads:
,----------------------------------------------------------------------.
| Item                  | Time     | Rate         | Usr CPU  | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write         800 MBs |    0.9 s | 877.479 MB/s | 173.7 %  | 766.6 % |
| Random Write   16 MBs |    0.1 s | 106.021 MB/s |  31.9 %  | 403.7 % |
| Read          800 MBs |    1.1 s | 705.469 MB/s |  98.1 %  | 1034.9 % |
| Random Read    16 MBs |    0.0 s | 655.439 MB/s | 117.5 %  | 1057.1 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item         | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write        |        0.013 ms |        0.318 ms |  0.00000 |   0.00000 |
| Random Write |        0.038 ms |        0.244 ms |  0.00000 |   0.00000 |
| Read         |        0.021 ms |        0.182 ms |  0.00000 |   0.00000 |
| Random Read  |        0.022 ms |        0.080 ms |  0.00000 |   0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total        |        0.017 ms |        0.318 ms |  0.00000 |   0.00000 |
`--------------+-----------------+-----------------+----------+-----------'

Tiotest results for 6 concurrent io threads:
,----------------------------------------------------------------------.
| Item                  | Time     | Rate         | Usr CPU  | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write        1200 MBs |    1.3 s | 952.789 MB/s | 522.8 %  | 1414.3 % |
| Random Write   23 MBs |    0.5 s |  51.567 MB/s |  21.1 %  | 359.5 % |
| Read         1200 MBs |    1.2 s | 985.870 MB/s | 321.9 %  | 2573.5 % |
| Random Read    23 MBs |    0.0 s | 954.179 MB/s | 439.7 %  | 2516.0 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item         | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write        |        0.016 ms |        2.819 ms |  0.00000 |   0.00000 |
| Random Write |        0.053 ms |        1.318 ms |  0.00000 |   0.00000 |
| Read         |        0.023 ms |        0.618 ms |  0.00000 |   0.00000 |
| Random Read  |        0.023 ms |        0.058 ms |  0.00000 |   0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total        |        0.020 ms |        2.819 ms |  0.00000 |   0.00000 |
`--------------+-----------------+-----------------+----------+-----------'

Tiotest results for 8 concurrent io threads:
,----------------------------------------------------------------------.
| Item                  | Time     | Rate         | Usr CPU  | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write        1600 MBs |    1.2 s | 1324.023 MB/s | 1898.4 %  | 2701.4 % |
| Random Write   31 MBs |    0.3 s | 116.501 MB/s | 112.6 %  | 1161.3 % |
| Read         1600 MBs |    1.3 s | 1233.267 MB/s | 704.6 %  | 4724.0 % |
| Random Read    31 MBs |    0.0 s | 1177.069 MB/s | 753.3 %  | 4580.2 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item         | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write        |        0.020 ms |        3.389 ms |  0.00000 |   0.00000 |
| Random Write |        0.048 ms |        4.092 ms |  0.00000 |   0.00000 |
| Read         |        0.024 ms |        0.204 ms |  0.00000 |   0.00000 |
| Random Read  |        0.025 ms |        0.066 ms |  0.00000 |   0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total        |        0.022 ms |        4.092 ms |  0.00000 |   0.00000 |
`--------------+-----------------+-----------------+----------+-----------'

Here's output from a prior build with ABD but sans the lock contention patch stack:

,----------------------------------------------------------------------.
| Item                  | Time     | Rate         | Usr CPU  | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write        1600 MBs |    2.3 s | 710.306 MB/s | 705.4 %  | 1814.9 % |
| Random Write   31 MBs |    0.4 s |  78.684 MB/s | 352.0 %  | 144.8 % |
| Read         1600 MBs |    1.1 s | 1479.082 MB/s | 760.6 %  | 3965.9 % |
| Random Read    31 MBs |    0.0 s | 1463.083 MB/s | 824.0 %  | 3895.3 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item         | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write        |        0.019 ms |        2.731 ms |  0.00000 |   0.00000 |
| Random Write |        0.043 ms |        3.881 ms |  0.00000 |   0.00000 |
| Read         |        0.020 ms |        0.236 ms |  0.00000 |   0.00000 |
| Random Read  |        0.020 ms |        0.056 ms |  0.00000 |   0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total        |        0.020 ms |        3.881 ms |  0.00000 |   0.00000 |
`--------------+-----------------+-----------------+----------+-----------'

@kernelOfTruth
Copy link
Contributor Author

@sempervictus thanks for sharing those ! - they sure look impressive 👍

did I read that right, that cpu% and sys% load significantly went down ?

Appears like Random Write is quite a beast on its own and depending on the workload is hard to tune towards (well both random write & read) :(

@sempervictus
Copy link
Contributor

Just for reference this is backed by a dm-crypt wrapped Samsung 840 1T, here's the zfs modprobe.d conf:

# ZFS ARC cache boundaries from 1-10G
options zfs zfs_arc_min=1073741824
options zfs zfs_arc_max=10737418240
#
# Write throttle
options zfs zfs_vdev_async_write_max_active=32
options zfs zfs_vdev_sync_write_max_active=32
#
# Read throttle
options zfs zfs_vdev_sync_read_max_active=32
options zfs zfs_vdev_async_read_max_active=12

CPU seems way down with the multilist ARC, and overall system performance under load is significantly higher - building a kernel, doing a scrub, and running a bunch of RBX code concurrently doesnt create any visible UI lag under lightdm/Unity.

@behlendorf
Copy link
Contributor

@kernelOfTruth @sempervictus thanks for the feedback and testing of these proposed changes. We definitely want to get this work merged as soon as we're comfortable with it. To do that we need to get run time on the code under a variety of workloads so I'm really happy to see you testing this. I'm always going to be reluctant to declare a patch this large completely safe. However if it passes the buildbot for your platform then it's certainly reasonably safe to run.

As for the performance results that's very encouraging and pretty much inline with my expectations. What would be tremendously helpful would be to collect a variety of benchmark results from the current master sources and from this pull request.

@sempervictus
Copy link
Contributor

@behlendorf: glad to be of help. By the way, this build also survives suspend/resume on a modern xeon. I would be interested to see how this stands up on a heavily loaded Lustre MDT, or something else which takes lots of seemingly random concurrent abuse.
I'm now running this on my primary workstation after seeing the test hosts run like antelope (scrub and zdb -mc aren't crying yet). For kicks spun up 12 small (separately backed by file VHDs, not clones) VBox VMs in the background, while writing/running RBX backed Ruby code (the Ruby VM compiles itself at each run and is fully concurrent) as my primary task. My laptop is getting a bit warm, but aside from that, its very responsive and usable both in userland file operations and CPU-based workloads (10 cores with HT kinda help there).
Given that our systems aren't slag yet, and the difference between this stack and master is like night and day, i'd like to encourage others who have disposable test systems to try this out on those systems and provide feedback.
Thank you @prakashsurya, @tuxoko, and @kernelOfTruth for putting this together. Unless this results in data loss or some gross incompatibility with upstream, i'll be seriously considering adding this to our production patch stack for its consistent behavior under varying workloads.

@kernelOfTruth
Copy link
Contributor Author

very nice ! 😄

@behlendorf you're welcome - happy to be of help

@sempervictus did you observe an severe overstepping of the pre-set ARC boundaries (e.g. zfs_arc_max) ?

currently considering if #3202 would need integration to make this a well-rounded system - if this to get a broader testing base, this might be the case for systems running older kernels

@sempervictus
Copy link
Contributor

ARC has been stable @ 10G for me, no signs of leakage.

Take this with a pile of salt: i just had my first strange behavior while running this on the very loaded workstation. System started to "jitter" a bit, lag introduced in readline and UI operations, nothing in dmesg or kern.log... so no idea if it came from here or something else destabilized. I did offload ~2G of snapshot about an hour prior, might be something to look at. Had to reboot, and not seeing it anywhere else yet.
Anyone else see anything like it? I'll keep eyes peeled for more. Re-running scrubs and zdb -mc on everything

@kernelOfTruth
Copy link
Contributor Author

@sempervictus interesting, hm, let's see if it shows up again and/or is reproducible

I've added most of the upstream patches to the pull-request:

the l2arc changes might not be needed,

the latest commit from #3202 might not be needed due to multilist ARC and other changes,

commit "Fix arc_meta_max accounting" and "Restructure per-filesystem reclaim" should make things work more reliably and consistently on older kernels, also

Leaving out "Fix arc_adjust_meta() behavior" out for now since that clashes with #2129 and #3115 changes, if I remember correctly from putting the pull-request together

Happy testing everyone 👍

@sempervictus
Copy link
Contributor

Havent been able to reproduce, yet...
I'm planning on feeding my current debs to an iSCSI SCST host backing a lab-dedicated cluster in our cloudstack over a couple of 10Gbit lines. Historically for us, SCST has been a great way to bring strange bugs to light with a few days of consistent use. Will report back once i have something there.

@kernelOfTruth
Copy link
Contributor Author

edit:

@sempervictus argh - sorry for the noise, I have obviously a hard time to concentrate (having lots of other things in life going on)

please disregard that comment about the re-introduced "MUTEX_FSTRANS",

like mentioned in the other issues/pull-requests it might be a good idea to protect the mutexes - but in this context it was unrelated

thanks

@kernelOfTruth kernelOfTruth force-pushed the zfs_master_12.03.2015_cumul_2129-3115 branch from 4fc3330 to 0afeca7 Compare March 26, 2015 22:56
@kernelOfTruth kernelOfTruth changed the title [cumulative] buildbot crunching, proof of concept, #2129, #3115 [cumulative] buildbot crunching, proof of concept (*1), #2129, #3115 Mar 27, 2015
tuxoko and others added 2 commits March 28, 2015 00:51
pad[PAGE_SIZE] to pad[4096]

(how about archs other than x86, x86_64 ?)
@kernelOfTruth
Copy link
Contributor Author

error: GnuTLS recv error (-9): A TLS packet with unexpected length was received. while accessing https://github.com/zfsonlinux/spl.git/info/refs?service=git-upload-pack
fatal: HTTP request failed
program finished with exit code 128

yeah, well - thank you for the delays and DDOS 👎

poor github

@odoucet
Copy link

odoucet commented Apr 1, 2015

Testing this pull request on our lab:

196GB RAM - dual CPU CPU E5-2430
11 mirror (22 drives) + mirror on logs (2 drives SSD) + L2ARC (2 drives)
CentOS 6.5 - Kernel 3.10.73 (elrepo)
options zfs zfs_arc_min=161061273600
options zfs zfs_arc_max=161061273600

Before (SPL / ZFS trunk from a few weeks ago)

SPL: Loaded module v0.6.3-71_g086476f
ZFS: Loaded module v0.6.3-101_g0574855, ZFS pool version 5000, ZFS filesystem version 5

Huge rsync (many terabytes of data) : leads to full ARC used and server stall (loadavg at 600).

Dmesg :

[<ffffffffa022786f>] nv_alloc_sleep_spl+0x1f/0x30 [znvpair]
 [<ffffffffa0278181>] spl_kmem_alloc+0x141/0x1f0 [spl]
 [<ffffffffa022786f>] nv_alloc_sleep_spl+0x1f/0x30 [znvpair]
 [<ffffffffa0278181>] spl_kmem_alloc+0x141/0x1f0 [spl]
(over and over)

After (this merge request)

SPL: Loaded module v0.6.3-81_gfade6b0
ZFS: Loaded module v0.6.3-259_g0f7d2a4, ZFS pool version 5000, ZFS filesystem version 5

Huge rsync (many terabytes of data) + scrub
=> OK, dmesg clean. So at this point, we did more than previous SPL/ZFS version.

Now, testing scanning all files (3.4TB of data) by launching an antivirus scan for example.
=> system hangs after ~ 2h with load at ~ 600
Console output
Tested again today and was able to reproduce the lock by launching again the antivirus scan (so 100% read pattern) :

INFO: task clamd:17279 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
clamd           D ffffffff81810d00     0 17279      1 0x00000080
 ffff881ffd009058 0000000000000082 ffff881ffd009fd8 0000000000013140
 ffff881ffd008010 0000000000013140 0000000000013140 0000000000013140
 ffff881ffd009fd8 0000000000013140 ffff883001c0e240 ffff881806984380
Call Trace:
 [<ffffffff815eee69>] schedule+0x29/0x70
 [<ffffffff815ef17e>] schedule_preempt_disabled+0xe/0x10
 [<ffffffff815ed8d4>] __mutex_lock_slowpath+0x194/0x240
 [<ffffffffa0277d6f>] ? spl_kmem_cache_free+0x13f/0x170 [spl]
 [<ffffffff815ed71b>] mutex_lock+0x2b/0x50
 [<ffffffffa0383cee>] zfs_zinactive+0x5e/0x2c0 [zfs]
 [<ffffffffa038297c>] zfs_inactive+0x7c/0x290 [zfs]
 [<ffffffffa039965e>] zpl_evict_inode+0x4e/0x70 [zfs]
 [<ffffffff811b5df4>] evict+0xb4/0x1d0
 [<ffffffff811b63df>] dispose_list+0x4f/0x60
 [<ffffffff811b65ac>] prune_icache_sb+0x1bc/0x3a0
 [<ffffffff8119f1b7>] prune_super+0x107/0x1a0
 [<ffffffff811421fd>] shrink_slab+0x18d/0x2c0
 [<ffffffff81139370>] ? drain_pages+0xa0/0xa0
 [<ffffffff81144364>] do_try_to_free_pages+0x2d4/0x3d0
 [<ffffffff81144762>] try_to_free_pages+0xf2/0x160
 [<ffffffff81139994>] __alloc_pages_slowpath+0x3a4/0x7d0
 [<ffffffff8113a0cd>] __alloc_pages_nodemask+0x30d/0x330
 [<ffffffff8117ff57>] kmem_getpages+0x67/0x1e0
 [<ffffffff81181a0b>] fallback_alloc+0x18b/0x270
 [<ffffffff811817b5>] ____cache_alloc_node+0x95/0x160
 [<ffffffff81182287>] kmem_cache_alloc+0x157/0x280
 [<ffffffffa02785d5>] spl_kmem_cache_alloc+0x85/0x180 [spl]
 [<ffffffffa02fef03>] dnode_create+0x33/0x220 [zfs]
 [<ffffffffa0300dbc>] dnode_hold_impl+0x46c/0x5c0 [zfs]
 [<ffffffffa0300f29>] dnode_hold+0x19/0x20 [zfs]
 [<ffffffffa02eba34>] dmu_bonus_hold+0x34/0x280 [zfs]
 [<ffffffffa0325ece>] sa_buf_hold+0xe/0x10 [zfs]
 [<ffffffffa0386226>] zfs_zget+0x76/0x460 [zfs]
 [<ffffffffa0364583>] zfs_dirent_lock+0x553/0x5f0 [zfs]
 [<ffffffffa036482b>] zfs_dirlook+0x8b/0x270 [zfs]
 [<ffffffffa035db40>] ? zfs_zaccess+0xa0/0x2d0 [zfs]
 [<ffffffff815ed70e>] ? mutex_lock+0x1e/0x50
 [<ffffffffa037fb1f>] zfs_lookup+0x2ef/0x340 [zfs]
 [<ffffffffa0398878>] zpl_lookup+0x78/0xe0 [zfs]
 [<ffffffff811b1f19>] ? d_alloc+0x29/0x70
 [<ffffffff811a60bd>] lookup_real+0x1d/0x60
 [<ffffffff811a9778>] lookup_open+0xc8/0x1d0
 [<ffffffff811a9b51>] do_last+0x2d1/0x750
 [<ffffffff811ac848>] path_openat+0xb8/0x460
 [<ffffffff811acd29>] do_filp_open+0x49/0xa0
 [<ffffffff811b8add>] ? __alloc_fd+0xcd/0x140
 [<ffffffff8119b128>] do_sys_open+0x108/0x1f0
 [<ffffffff8119b24e>] SyS_open+0x1e/0x20
 [<ffffffff815f9479>] system_call_fastpath+0x16/0x1b
INFO: task clamd:17280 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
clamd           D ffffffff81810d00     0 17280      1 0x00000080
 ffff8820250b9c58 0000000000000082 ffff8820250b9fd8 0000000000013140
 ffff8820250b8010 0000000000013140 0000000000013140 0000000000013140
 ffff8820250b9fd8 0000000000013140 ffff883005238ba0 ffff8818069d1120
Call Trace:
 [<ffffffff815eee69>] schedule+0x29/0x70
 [<ffffffff815ef17e>] schedule_preempt_disabled+0xe/0x10
 [<ffffffff815ed8d4>] __mutex_lock_slowpath+0x194/0x240
 [<ffffffff811aa445>] ? link_path_walk+0x475/0x910
 [<ffffffff815ed71b>] mutex_lock+0x2b/0x50
 [<ffffffff811a68ed>] lookup_slow+0x3d/0xc0
 [<ffffffff811ab065>] path_lookupat+0x6b5/0x770
 [<ffffffff811ab154>] filename_lookup+0x34/0xc0
 [<ffffffff811ac499>] user_path_at_empty+0x59/0xa0
 [<ffffffff811ac4f1>] user_path_at+0x11/0x20
 [<ffffffff8119a6f0>] SyS_faccessat+0xe0/0x230
 [<ffffffff810e1476>] ? __audit_syscall_exit+0x246/0x2f0
 [<ffffffff8119a608>] SyS_access+0x18/0x20
 [<ffffffff815f9479>] system_call_fastpath+0x16/0x1b

@kernelOfTruth
Copy link
Contributor Author

@odoucet Merci beaucoup for your feedback and testing !

did you observe anything suspicious in

/proc/spl/kstat/zfs/arcstats
/proc/meminfo
/proc/slabinfo

?

what antivirus are you running exactly ?

do you have the following patches from #3202 in your repository or included:
behlendorf@6116b99
behlendorf@fd90e76

if it's already included - perhaps

@tuxoko @dweeezil @behlendorf have an idea on how to tackle this or this rings a bell for them

@odoucet
Copy link

odoucet commented Apr 1, 2015

did you observe anything suspicious in /proc/spl/kstat/zfs/arcstats

  • EDIT * data was not recorded correctly, cannot have conclusion on this point for the last test. Will do better next time.

/proc/meminfo

only memory usage was monitored at that time, and memory was 99% full, meaning there is an overrhead to the 160GB ARC size (other process are not consuming much).
Cached data reported was below 500MB.

/proc/slabinfo

Sorry, did not record this one.

what antivirus are you running exactly ?

Clamav 0.98.6 with latest updates. Scan was performed with the daemon mode of this process, and multiscan client, meaning 16 files were open at the same time. It is very few number of file descriptors imo, and i'm surprised to have a system hang with that.

do you have the following patches from #3202 in your repository or included:
behlendorf/zfs@6116b99

No

behlendorf/zfs@fd90e76

No

I'm thinking I should probably test latest trunk to make sure these errors are from this pull request...

@behlendorf
Copy link
Contributor

@odoucet the deadlock you hit is a class of known issue which we're working on right now in #3225. These will be addressed before the tag and are unrelated to these ARC changes, so I'd say your test results are very promising.

@odoucet
Copy link

odoucet commented Apr 1, 2015

OK good to here. So concerning this very pull request, all seems OK, perfs seems great.
When data is in ARC, 'find' in a folder with 6.2M items is performed in 36 seconds. Great result (very synthetic test though).

@kernelOfTruth
Copy link
Contributor Author

@sempervictus if the jitter re-occured during your testing

you may want to take a look at: #3216

that's basically the broken-out patches from #3189 ported/rebased to a newer zfs master and yesterday added the changes from #3225 which should minimize locks of any (?) kind

@behlendorf
Copy link
Contributor

@kernelOfTruth with #3115 now merged and #2129 being refreshed I don't think there's any point in keeping this open. If you agree can you please close it out.

@kernelOfTruth
Copy link
Contributor Author

@behlendorf agreed, closing

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants