Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer


			NetBSD ZFS port TODO

1) ZVOL part

* zpool cannot be destroyed -> could not destroy 'test': could not unmount datasets
  We are leaking descriptor after open -> I'm getting EBUSY from spscfs_open.

2) ZPL part

* test zfs_vfsops.c and zfs_vnops.c changes
* xattr and acl support is needed for filesystem permisions ?
* Check if we are calling vfs_option clear set routines from vfs.c with mnt_updating lock held.
* Port zfs_replay.c -> DONE

3) ZFS part

* ACL support, xattr calls support
* Snapshots support
* iSCSI targets support
* NFSv3, NFSv4 support
* Samba filesystem support
* Implement getpages/putpages for zfs, can be done with genfs_* routines but vnode_t need some changes.
* zfs_rename support, Working but there are some issues with LOCKDEBUG see comment above zfs_rename.


				NetBSD ZFS Integration TODO


Pre-integration tasks.

DONE		why is zfs module deadlocking.
DONE		try to create a zvol/pool.
DONE		when creating zvol/pool ok, do minor stress testing.
DONE		port vfsops and vnodeops. ignore getpages/putpages.
DONE		lookupname/lookupnameat/nameiat
DONE		device properties for disk partitions.
DONE		changes to newfs fsck for zvols.
DONE		re-read zpool.cache and reconfigure pools.
DONE		successful unload of the module.
DONE		implement basic getpages/putpages.
DONE		callbacks into arc, for reclaim of memory or kernel virual space.
DONE		prevent module loading if less than 512MB RAM.
-		maybe changing the order of arguments for pool_cache constructors.
DONE		check ioctl handlers for safety (for patch to allow old-style unix ioctl)
PDONE		port ZFS ACL stuff, enough for POSIX.
DONE		port zfs_replay.c to NetBSD
DONE		successfully compile a kernel.
-		stress testing.
DONE		rc.d integration for zfs.
DONE 		fix dangling vnode panic, get zfs unmount to work
DONE		fix zfs_rename bug -> fix should be sent back to sun 
DONE		syncer/atime issues

Post-integration tasks.

-		 device properties for unique device id (driver:model-revision-serial-etc).
-		 use device id to locate disks/partitions
PDONE		 port ZFS snapshot / ctldir stuff.
-		 zfs/nfs integration.
-		 zfs/iscsi integration.
-		 native getpages/putpages.
PDONE zfs v22	 update ZFS to latest.
-		 Implement *at syscalls correctly.

Pre netbsd-6.0 tasks
-		 More testing especially zvol, vdev and zfs code snapshot will stay disabled
- 		 Get ztest and zdb working
- 		 Get zfs properties working

Post netbsd-6.0 tasks
-		 Update to latest version
-		 Harden zfs, test, survive build.sh on zfs
- 		 all Post integration tasks
-		 Write regression test suite 
-		 RUMP port (might be very good idea.)


#######
## List of Know ZFS bugs/issues
#######
   
User-land
=========

1) zpool list ENOMEM error .... fixed in rev 1.3 sunddi.h and rev 1.5 zfs_ioctl.h
2) zfs unmount crash in getmntinfo
3) ztest TXG dmu commit threshold problem ?? Maybe fixed by replacing atomic functions with mutex.
4) ztest vdev resize problem (spa_thread ? )							

Kernel
======

1) Faulted zpool after modload (missing ztest/ dmu_objset)
   ZDB fails to work with because of this problem. This need to be investigated more.
   see zdb.c#2904

2) data lost on filesystem after panic
3) Strange panic during zfs_znode_dmu_init
4) zpool scrub panic in vdev_open->vdev_disk_open->VOP_IOCTL
5) zfs set doesn't work -> zfs set dedup=on, zfs set compression=gzip
6) device nodes in /dev/zvol are not created





PDONE = Partialy done.