From owner-freebsd-geom@FreeBSD.ORG Mon Dec 9 08:27:24 2013 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B7248623 for ; Mon, 9 Dec 2013 08:27:24 +0000 (UTC) Received: from work.netasq.com (gwlille.netasq.com [91.212.116.1]) by mx1.freebsd.org (Postfix) with ESMTP id 3EA021084 for ; Mon, 9 Dec 2013 08:27:23 +0000 (UTC) Received: from work.netasq.com (localhost [127.0.0.1]) by work.netasq.com (Postfix) with ESMTP id 315BA27065AD; Mon, 9 Dec 2013 09:27:17 +0100 (CET) Received: from [10.200.5.1] (unknown [10.2.200.254]) by work.netasq.com (Postfix) with ESMTPSA id E0C3D27063C9; Mon, 9 Dec 2013 09:27:16 +0100 (CET) Message-ID: <52A57EF9.5050905@netasq.com> Date: Mon, 09 Dec 2013 09:27:37 +0100 From: Paolo Pinto User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1 MIME-Version: 1.0 To: Konstantin Belousov Subject: Re: geom_uzip, panic: bio_length in mdstart_vnode() References: <529F2748.2060900@netasq.com> <20131204162029.GV59496@kib.kiev.ua> In-Reply-To: <20131204162029.GV59496@kib.kiev.ua> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms040509050209030501020602" Cc: nicolas dumont , freebsd-geom@freebsd.org X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 08:27:24 -0000 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--