Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Feb 2014 11:05:41 +0400
From:      Lev Serebryakov <lev@FreeBSD.org>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        freebsd-geom@freebsd.org
Subject:   Re: 3rd party geom module on 10-STABLE cause panics in biodone()
Message-ID:  <202114262.20140226110541@serebryakov.spb.ru>
In-Reply-To: <530D1640.3050104@FreeBSD.org>
References:  <585146922.20140226020105@serebryakov.spb.ru> <530D1640.3050104@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello, Alexander.
You wrote 26 =F4=E5=E2=F0=E0=EB=FF 2014 =E3., 2:16:32:

>> 3561    if ((bp->bio_flags & BIO_TRANSIENT_MAPPING) !=3D 0) {
>> 3562      bp->bio_flags &=3D ~BIO_TRANSIENT_MAPPING;
>> 3563      bp->bio_flags |=3D BIO_UNMAPPED;
>> 3564      start =3D trunc_page((vm_offset_t)bp->bio_data);
>> 3565      end =3D round_page((vm_offset_t)bp->bio_data + bp->bio_length);
>> 3566      pmap_qremove(start, OFF_TO_IDX(end - start));
>> 3567      vmem_free(transient_arena, start, end - start);
>> 3568      atomic_add_int(&inflight_transient_maps, -1);
>> 3569    }
>>
>>   And these crashes are very bad: 9 of 10 times system could not make
>> crashdump or reboot and 8 out of 10 times it shuts down video output (!).
>>
>>   I was lucky to get one crashdump to find this line...
>>
>>   What could I do wrong in my module?
AM> IIRC I had problem with that part of code during my GEOM direct dispatch
AM> work when some requests were unmapped twice. At that time I've added=20
AM> restoring the flags at lines 3562-3563, and it helped in my case. Make=
=20
AM> sure that you are not have some unexpected requests reuse, etc, that ma=
y=20
AM> cause incorrect combination of BIO flags and addresses.
 It is impossible to debug this on real hardware and now I'm trying to
reproduce this on VirtualBox. My plan is to print out EVERY bio which is
freed here and every processed bio in my module and to find exact path of
failing bio though my module...

--=20
// Black Lion AKA Lev Serebryakov <lev@FreeBSD.org>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202114262.20140226110541>