On Sun, Apr 08, 2007 at 08:53:12PM +0200, Pawel Jakub Dawidek wrote: > fzap_upgrade() changes type from 'zap_micro' to 'zap_fat' and union is > used for this (see > sys/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h), that's why we > see this trash: > > zap_num_entries_mtx = {lock_object = {lo_name = 0x70000 <Address 0x70000 out of bounds>, > lo_type = 0x0, lo_flags = 2155822976, lo_witness_data = {lod_list = {stqe_next = 0x0}, > lod_witness = 0x0}}, sx_lock = 1, sx_recurse = 0}, > > I already use kmem_zalloc() (note _z_) for zap allocation in > zap_micro.c, so Max is right, that we have to clear this structure here. > > I'm quite tired of tracking such problems, because our mechanism for > detecting already initialized locks is too simple (based on one bit), so > I'd prefer to improve it, or just add bzero() to mutex_init(). I just committed a fix. Now I do 13 bits check for already initialized locks detection instead of standard 1 bit check. Could you repeat your test? -- Pawel Jakub Dawidek http://www.wheel.pl pjd_at_FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am!
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC