Date: Mon, 09 Dec 2013 09:27:37 +0100 From: Paolo Pinto <paolo.pinto@netasq.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: nicolas dumont <nicolas.dumont@netasq.com>, freebsd-geom@freebsd.org Subject: Re: geom_uzip, panic: bio_length in mdstart_vnode() Message-ID: <52A57EF9.5050905@netasq.com> In-Reply-To: <20131204162029.GV59496@kib.kiev.ua> References: <529F2748.2060900@netasq.com> <20131204162029.GV59496@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format. --------------ms040509050209030501020602 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Konstantin, Thanks for the workaround, it works for me; the assertion doesn't trigger anymore. On 12/04/2013 05:20 PM, Konstantin Belousov wrote: > On Wed, Dec 04, 2013 at 01:59:52PM +0100, Paolo Pinto wrote: >> Hi list! >> >> My kernel is compiled with option INVARIANTS and I get a reproducible >> kernel panic when trying to read data from a GEOM based compressed >> memory disk: >> >> Unread portion of the kernel message buffer: >> panic: bio_length 140288 >> cpuid =3D 3 >> KDB: stack backtrace: >> #0 0xffffffff80909726 at kdb_backtrace+0x66 >> #1 0xffffffff808d0fa8 at panic+0x1d8 >> #2 0xffffffff80595949 at mdstart_vnode+0x619 >=20 > The issue is that geom_uzip creates bios which are larger than MAXPHYS.= >=20 > As a workaround, the following patch should be enough. It only fires > assert when md really uses pbuf, and since geom_uzip knows nothing > about unmapped bio, the assertion must not trigger. >=20 > diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c > index 8ae51d1..639677e 100644 > --- a/sys/dev/md/md.c > +++ b/sys/dev/md/md.c > @@ -746,12 +746,12 @@ mdstart_vnode(struct md_s *sc, struct bio *bp) > return (error); > } > =20 > - KASSERT(bp->bio_length <=3D MAXPHYS, ("bio_length %jd", > - (uintmax_t)bp->bio_length)); > if ((bp->bio_flags & BIO_UNMAPPED) =3D=3D 0) { > pb =3D NULL; > aiov.iov_base =3D bp->bio_data; > } else { > + KASSERT(bp->bio_length <=3D MAXPHYS, ("bio_length %jd", > + (uintmax_t)bp->bio_length)); > pb =3D getpbuf(&md_vnode_pbuf_freecnt); > pmap_qenter((vm_offset_t)pb->b_data, bp->bio_ma, bp->bio_ma_n); > aiov.iov_base =3D (void *)((vm_offset_t)pb->b_data + >=20 --=20 Paolo Pinto R&D System Engineer NETASQ - We secure IT --------------ms040509050209030501020602 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIEnTCC BJkwggOBoAMCAQICCnDGsUgWa/KQbFgwDQYJKoZIhvcNAQEFBQAwgZExCzAJBgNVBAYTAkZS MQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZlIGQnQXNjcTEuMCwGA1UEChMl TkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0eTEnMCUGA1UECxMeTkVUQVNR IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDgxMzE0NDUzM1oXDTE0MDgxMzE0NDUz M1owgc4xCzAJBgNVBAYTAkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZl IGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0 eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRQwEgYDVQQDEwtQ YW9sbyBQSU5UTzElMCMGCSqGSIb3DQEJARYWcGFvbG8ucGludG9AbmV0YXNxLmNvbTCCASIw DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfH5PlgbBG9sAsYW+VgBDysPWJOjsMJFaOq iyCsBGgZUS6n0McSqWQMGaX+lGgiuVLkmxNxnLq8kZkARq4VbT25IaRdgbE0yPmFgYLd+9RK RNUBfGD6S0++7pebb7CXDrplhofj8fL+oLjOU27MdG/ZkWqV6Y0kTH9XPPrMSdSNqUSAcy5O iq7GwoTYwYlzhHILmXlVvjLZ1Ev9bJP053JomE1e7BuXjOETiPe1ymMvMNTCEjEXrmhpGmNV GIpxOKbokkngGpECQpicXf+okbHFFyEiINaNFFYlpDGHl8XXADvcEyxC7SyrIxgwpSL95VXp 3WeBNzRB+XUlFXNLnSUCAwEAAaOBszCBsDAdBgNVHQ4EFgQUwDeJ4UTO9EshTMwEjMVUgs6Y KcowHwYDVR0jBBgwFoAUJyrrHdlE2joXc2oJICDJJaj5f7IwCQYDVR0TBAIwADAOBgNVHQ8B Af8EBAMCA+gwIQYDVR0RBBowGIEWcGFvbG8ucGludG9AbmV0YXNxLmNvbTARBglghkgBhvhC AQEEBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUA A4IBAQCEKfnRno7B0wOD+ZpUhK24j5uuvPTP4ObfFqbK/yRPJZOZpMr9OgJg9g+uhgL268EX MqMmE5GbhDQq2uD70dS3f7irlssd9zjRQwdtH10c7J/NxTek3oMK+jDHFJMtaLwYyG/bfFPN TV/z3LBh+XHIYzpgtE8LCz8q1LyPay6acw364LmQRlUNRjVy9VYPQ8aFTMIterRSuy5kUP3w kga4WFan0uyLfGiTm5p21lyTExooMKFerEEdGdB/ctLfWbBcOaS8xTNzuhlwfINETBfqrhOQ 56ozRyAF6mElm0FFi4au/NPTX5sD/XrMITugeEub180NtKIP8ZeoQabp/j7ZMYIEATCCA/0C AQEwgaAwgZExCzAJBgNVBAYTAkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5l dXZlIGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rp dml0eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRpb24gQXV0aG9yaXR5AgpwxrFIFmvy kGxYMAkGBSsOAwIaBQCgggI1MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTEzMTIwOTA4MjczN1owIwYJKoZIhvcNAQkEMRYEFKB9YI7Trr688WNcZ1zez9xc fJ2KMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG 9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN AwICASgwgbEGCSsGAQQBgjcQBDGBozCBoDCBkTELMAkGA1UEBhMCRlIxDTALBgNVBAgTBE5v cmQxGjAYBgNVBAcTEVZpbGxlbmV1dmUgZCdBc2NxMS4wLAYDVQQKEyVORVRBU1EgLSBTZWN1 cmUgSW50ZXJuZXQgQ29ubmVjdGl2aXR5MScwJQYDVQQLEx5ORVRBU1EgQ2VydGlmaWNhdGlv biBBdXRob3JpdHkCCnDGsUgWa/KQbFgwgbMGCyqGSIb3DQEJEAILMYGjoIGgMIGRMQswCQYD VQQGEwJGUjENMAsGA1UECBMETm9yZDEaMBgGA1UEBxMRVmlsbGVuZXV2ZSBkJ0FzY3ExLjAs BgNVBAoTJU5FVEFTUSAtIFNlY3VyZSBJbnRlcm5ldCBDb25uZWN0aXZpdHkxJzAlBgNVBAsT Hk5FVEFTUSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIKcMaxSBZr8pBsWDANBgkqhkiG9w0B AQEFAASCAQBIMn69fX+0oFNqZfiz6yBqfE7nyrKiWqn6qotXbFMioEYbMD7I0lnvfs7K1tqX Q9wznTa/l701RatU4B671uwT84RPzGdlsNCURfojbInT0CcHlvhbFORNAzGLik4brhufFz/E 7mlggTu8QZOGzFBxmUzNOrrIPUW45hZtJdYhE7pGNTPc1gcmO3Kn8kNf21Wqihmqgu+FuXLy t0wfKKP7FHNkvRhez/RAflRLWiAGFILdv7+czLmESHNwJEKRMkMd61bpIzTp8sxxLY1c28pC lHCHcUi2skjK2nI/Levhi6+XmBntfWDLUWwJPBmwG5RvCM67tnA5lHseuklu6QwgAAAAAAAA --------------ms040509050209030501020602--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52A57EF9.5050905>