From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH v2] posix-aio-compat: fix latency issues Date: Mon, 22 Aug 2011 19:29:03 +0200 Message-ID: <4E5291DF.1070603@siemens.com> References: <1313294689-21572-1-git-send-email-avi@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Kevin Wolf , qemu-devel@nongnu.org, kvm@vger.kernel.org To: Avi Kivity Return-path: In-Reply-To: <1313294689-21572-1-git-send-email-avi@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org On 2011-08-14 06:04, Avi Kivity wrote: > In certain circumstances, posix-aio-compat can incur a lot of latency: > - threads are created by vcpu threads, so if vcpu affinity is set, > aio threads inherit vcpu affinity. This can cause many aio threads > to compete for one cpu. > - we can create up to max_threads (64) aio threads in one go; since a > pthread_create can take around 30=CE=BCs, we have up to 2ms of cpu t= ime > under a global lock. >=20 > Fix by: > - moving thread creation to the main thread, so we inherit the main > thread's affinity instead of the vcpu thread's affinity. > - if a thread is currently being created, and we need to create yet > another thread, let thread being born create the new thread, reducin= g > the amount of time we spend under the main thread. > - drop the local lock while creating a thread (we may still hold the > global mutex, though) >=20 > Note this doesn't eliminate latency completely; scheduler artifacts or > lack of host cpu resources can still cause it. We may want pre-allocat= ed > threads when this cannot be tolerated. >=20 > Thanks to Uli Obergfell of Red Hat for his excellent analysis and sugge= stions. At this chance: What is the state of getting rid of the remaining delta between upstream's version and qemu-kvm? Jan --=20 Siemens AG Corporate Technology CT T DE IT 1 Corporate Competence Center Embedded Linux Otto-Hahn-Ring 6 81739 Muenchen Tel.: +49 (89) 636-40042 Fax: +49 (89) 636-45450 mailto:jan.kiszka@siemens.com Siemens Aktiengesellschaft: Chairman of the Supervisory Board: Gerhard Cromme; Managing Board: Peter Loescher, Chairman, President and Chief Executive Officer; Roland Busch, Brigitte Ederer, Klaus Helmrich, Joe Kaeser, Barbara Kux, Hermann Requardt, Siegfried Russwurm, Peter Y. Solmssen, Michael Suess; Registered offices: Berlin and Munich, Germany; Commercial registries: Berlin Charlottenburg, HRB 12300, Munich, HRB 6684; WEEE-Reg.-No. DE 23691322