Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Aug 2013 16:05:03 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        svn-src-projects@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r254408 - in projects/camlock/sys: cam/ata cam/scsi dev/md geom
Message-ID:  <20130816130503.GC4972@kib.kiev.ua>
In-Reply-To: <201308161225.r7GCP3EW061762@svn.freebsd.org>
References:  <201308161225.r7GCP3EW061762@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Dr39avWuu01nZVqZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 16, 2013 at 12:25:03PM +0000, Alexander Motin wrote:
> Author: mav
> Date: Fri Aug 16 12:25:02 2013
> New Revision: 254408
> URL: http://svnweb.freebsd.org/changeset/base/254408
>=20
> Log:
>   Make first steps toward direct BIO dispatch in GEOM:
>    - Define flags, declaring that specific consumer/provider is capable of
>   sending requests/replies (respectively) directly, i,e. doesn't hold any=
 locks
>   and so reenterable, and/or able to directly receive replies/requests, i=
=2Ee.
>   doesn't depend on GEOM up/down threads semantics.  As result, GEOM will=
 make
>   direct calls only if both caller and callee are cpable of it in each ca=
se.
>    - Define disk(9) flag to declare that disk is capable of direct request
>   completion, and use it for da(4) and ada(4) drivers.  Make GEOM DISK to=
 pass
>   that flag to its provider and also assume that any disk is capable of
>   receiveing requests directly.
>    - Mark GEOM DEV as capable of both direct send and receive.
>    - Make md(4) declare both direct send and receive after adding mutex to
>   serialize its statistics update on request path.

I do not think it is safe to allow the mdstart_malloc() to execute in
parallel with itself.  It certainly causes data corruption for the new
block allocations on write, and possibly random kernel memory corruption.

It seems that vnode and swap backends are safe, though.

--Dr39avWuu01nZVqZ
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (FreeBSD)

iQIcBAEBAgAGBQJSDiN+AAoJEJDCuSvBvK1BqrQP/3iE/JR2RXScBdZW+jqgbyGR
zDagwywGGxB+w9Dc1aouVExhqZVNpzJP55duAnW7vajaKpv9QzZF5c+wW/d9s0BI
tms2cPsGWIxVvzXQt3LBBabtth88yOfw9KUpgldPwwwM0WBvjq/fhMJr5/vNC2sR
cwQaW3kRCbVJTTRbkaqu0BpoRb1HWyG6OBwdyLLMTVC0sgxM96V3W52IwEmgxSay
WZMQGuM0y+Wpuhw2s0KjYiubFEOMnQfHva9NfcG/fIluEtSNtGBGlFqzzqfruEAO
vNvRtjHFSPuv2XFR2leuLYUsvvyzuVa3enHa13E3uDergQVRluEaeLWJSbvNgT6h
Svnl3X9b8yLPgxpaSLwtqeLVcQXZ2YcaKBKBd46KA9Gxs6RpG/pJWoaP/ov8G9pb
bNkv/TmJ1egrFJatRqpFX6MA7fOeCH7e3Y3uNNRtWZVuezNWMaugcIrHwjMHQqhi
thOFRu+WUQtsJYCGXOGsBaF7o0WPV4QJvK8NkicQcpSm0yXKZs19bHapiyDRzcSX
ndU9PN5Hj0Eo8m6uezJZhbkP6XoyQD7nrTVMDSJ3XaSfysBzdAcSMQkmW66B2Cku
UVbRHlcp5EBnoSukmASHxGVWuZlJxT3ZdZqUzSZqBLZNbxVooBLTjBENf0wlieJl
QFzpEidryAIuu1YvMsPH
=uK9c
-----END PGP SIGNATURE-----

--Dr39avWuu01nZVqZ--



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