From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54028) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bk2S7-000693-4F for qemu-devel@nongnu.org; Wed, 14 Sep 2016 01:09:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bk2S2-000568-W4 for qemu-devel@nongnu.org; Wed, 14 Sep 2016 01:09:42 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:44901) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bk2S2-00055j-Mq for qemu-devel@nongnu.org; Wed, 14 Sep 2016 01:09:38 -0400 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u8E58Tv8075916 for ; Wed, 14 Sep 2016 01:09:38 -0400 Received: from e28smtp05.in.ibm.com (e28smtp05.in.ibm.com [125.16.236.5]) by mx0a-001b2d01.pphosted.com with ESMTP id 25eupkc1ty-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Wed, 14 Sep 2016 01:09:37 -0400 Received: from localhost by e28smtp05.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 14 Sep 2016 10:39:34 +0530 From: Nikunj A Dadhania In-Reply-To: <1473827823.8689.329.camel@kernel.crashing.org> References: <1473659314-11813-1-git-send-email-nikunj@linux.vnet.ibm.com> <1473659314-11813-3-git-send-email-nikunj@linux.vnet.ibm.com> <20160914030941.GE15077@voom.fritz.box> <87twdj2l3y.fsf@abhimanyu.i-did-not-set--mail-host-address--so-tickle-me> <1473827823.8689.329.camel@kernel.crashing.org> Date: Wed, 14 Sep 2016 10:39:26 +0530 MIME-Version: 1.0 Content-Type: text/plain Message-Id: <87oa3r2hkp.fsf@abhimanyu.i-did-not-set--mail-host-address--so-tickle-me> Subject: Re: [Qemu-devel] [PATCH v3 2/3] target-ppc: add flag in chech_tlb_flush() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Benjamin Herrenschmidt , David Gibson Cc: qemu-ppc@nongnu.org, alex.bennee@linaro.org, qemu-devel@nongnu.org, rth@twiddle.net Benjamin Herrenschmidt writes: > On Wed, 2016-09-14 at 09:23 +0530, Nikunj A Dadhania wrote: > > Hr... this is confusing, let me rephrase ;-) > >> Due to lazy tlb flushes, propagation of the tlb flush is delayed. > Moreover, certain operations need to do broadcast flush, this too can > be >> delayed until we hit the operation that warrant a broadcast. > > Instead: > > We flush the qemu TLB lazily. check_tlb_flush is called whenever we > hit a context synchronizing event or instruction that requires a pending > flush to be performed. > > However, we fail to handle broadcast TLB flush operations. In order > to fix that efficiently, we want to differenciate whether check_tlb_flush() > needs to only apply pending local flushes (isync instructions, > interrupts, ...) or also global pending flush operations. The latter > is only needed when executing instructions that are defined architecturally > as synchronizing global TLB flush operations. This in our case is ptesync > on BookS and tlbsync on BookE along with the paravirtualized hypervisor > calls. Nice ;-) Regards Nikunj