From owner-freebsd-current@FreeBSD.ORG Thu Jul 11 06:17:58 2013 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5A980496; Thu, 11 Jul 2013 06:17:58 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id F20A7130D; Thu, 11 Jul 2013 06:17:57 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r6B6HrPH039484; Thu, 11 Jul 2013 09:17:53 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.3 kib.kiev.ua r6B6HrPH039484 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r6B6Hr6x039483; Thu, 11 Jul 2013 09:17:53 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 11 Jul 2013 09:17:53 +0300 From: Konstantin Belousov To: Adrian Chadd Subject: Re: hacking - aio_sendfile() Message-ID: <20130711061753.GK91021@kib.kiev.ua> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="wMW4snQFzBrk6QzR" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: freebsd-current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jul 2013 06:17:58 -0000 --wMW4snQFzBrk6QzR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 10, 2013 at 04:36:23PM -0700, Adrian Chadd wrote: > Hiya, >=20 > I've started writing an aio_sendfile() syscall. >=20 > http://people.freebsd.org/~adrian/ath/20130710-aio-sendfile-3.diff >=20 > Yes, the diff is against -HEAD and not stable/9. >=20 > It's totally horrible, hackish and likely bad. I've only done some > very, very basic testing to ensure it actually works; i haven't at all > stress tested it out yet. It's also very naive - I'm not at all doing > any checks to see whether I can short-cut to do the aio there and > then; I'm always queuing the sendfile() op through the worker threads. > That's likely stupid and inefficient in a lot of cases, but it at > least gets the syscall up and working. Yes, it is naive, but for different reason. The kern_sendfile() is synchronous function, it only completes after the other end of the network communication allows it. This means that calling kern_sendfile() from the aio thread blocks the thread indefinitely by unbounded sleep. Your implementation easily causes exhaustion of the aio thread pool, blocking the whole aio subsystem. It is known that our aio does not work for sockets for the same reason. I object against adding more code with the same defect. Proper route seems to rewrite aio for sockets using the upcalls. The same should be done for sendfile, if sendfile is given aio flavor. >=20 > I'd like some feedback and possibly some help in stress testing it to > make sure it's functioning well. >=20 > Thanks, >=20 >=20 > -adrian > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" --wMW4snQFzBrk6QzR Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQIcBAEBAgAGBQJR3k4RAAoJEJDCuSvBvK1B+eUP+QFLTmvVepk5pm4zBtz0D0T3 FduAgbi4cUknborLn/ATcn09TuxeBCxxj224nOlnUYqi7Es7AXvYcs3UG3Y9jbZ8 Y+vhDvdGGW8o3Kb7h6bv0EnZVvOkFXx9A6+gVi4y9icGA8WP2mqHNhQynJHIjJbn Ej2Ud0jPE4dyJeosMoHwGR40l+ESQ9Jb+ObBehNspyJBo6kY3aWXg6Rq6v2qdIwT ZHv5e8ALO84CvxgUtFKZ0x+c50+qcks9R+ZZvBgqG3PS4RvEt0SKNy3aAi6bT5Y5 uBHYf0iWsTg4Bt7MJCLef0fb/Dw3FwkZfsK57h4w8HGwQpik9j8HpeZnVFH49x4h 5CvHECbRTdahnhs/iAv3c9HM2jVh5R9hmlGF46vET+wseIbObZByX/Fr8Va1ULly 79oxHc7BH+t5Hqu9xgyn3MCRnAf3455k3FDGSB9T7cJVeLv/yqpuPwRwvo/VhIaJ O4AP9nXO+z2Jp+6ZhCxRv7mpZ4X/GNtvM5botA5khkUfxJdTdJY8W+bFUqUyiNDN iVZvXcU5mHYIiQnkEQNLFYJRLpuO3BSJWBX+vXJWQUJcQSx8Ppf4U62wRw60/9R8 bEdhH5MFhHe1nArUdMoslBirnXVR0czxbCJgeSOu4boue6ayCI+055lxiJZlGyn5 HzvcvH4c/c54bAAXnat7 =TocX -----END PGP SIGNATURE----- --wMW4snQFzBrk6QzR--