Received: by 10.223.164.202 with SMTP id h10csp639785wrb; Thu, 30 Nov 2017 16:56:26 -0800 (PST) X-Google-Smtp-Source: AGs4zMZjKYWu6hPeZ1XtOAifmUxpnnkPNzcsQmAPSvQAioObxvZ8ZLvC5d9J6faeZnc6o3X40Q/R X-Received: by 10.84.231.1 with SMTP id f1mr4342689plk.297.1512089786314; Thu, 30 Nov 2017 16:56:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512089786; cv=none; d=google.com; s=arc-20160816; b=q/QQXwpQhxZ7wxNZwc83K5m5Z9Hy/kYSJeFMKLW7JxgRfCjNTOZCAbvcIKMrTsc/Ar LXVX12AfnMYxCzzVvEQzB+nMRV7VmwRULxXTvXrW1rOTAhK6ii4BCg9qdp+YZdIWmE1h sVRVmQfzSgxe+9pBtwdiuIPpdMLXrn5/2g/SQD6kikqv1hWRWDO+3d5FVtgP/popDvEE 2GqRQFJa71kHSBHQgmYhf5lzRKxfiBOIOM9p2mvAdme+x5cYGlhvLeOoqr15PCcqUfTh fps/ZR+XtWWEQ2yFscZ+5OwULRlUnbvuZdZGxI1aBWGh1SYyqvzMmAV7QQJQZ/C5Bbc+ r6qQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=CboC0c82CR3faSCiEDkb8wTkRofN0Sj79SM3pxJKpLk=; b=0jBzmRGjmlTBt5VV/7CLWGrxisVXf6nGtXNUTU/pVKbsxsdIg3ugsmbXmYMfseU/m0 mqzr371CrHmSSZBTuAVGUyyqG9tITabA2QIfVQ2i1E1bdcsYKnmoOOVDQXFA6bjQFVP0 DxCtrPsQNGN3UzMbw8L4WJXajWxTESNnqEEojl44w+XmbP7gVnfQc+rxQf1fvPBLSYwF JujKaO7dCu7tOW9dbaJJeh11tkPbbm4OZn7Tt+bvwx7t8ndrnWsOMsjvg2VQyB1PU2G4 vFUdWa5BNYFE0UI3ZBU9lekv1/vden4aGtIJF8EIljwNCzUFsi3qXMWxi/CdnCvT0TXd UdWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RZCJInEZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v6si4165284pfj.231.2017.11.30.16.56.10; Thu, 30 Nov 2017 16:56:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RZCJInEZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751680AbdLAA4C (ORCPT + 99 others); Thu, 30 Nov 2017 19:56:02 -0500 Received: from mail-ot0-f196.google.com ([74.125.82.196]:33954 "EHLO mail-ot0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751125AbdLAA4B (ORCPT ); Thu, 30 Nov 2017 19:56:01 -0500 Received: by mail-ot0-f196.google.com with SMTP id o23so7797883otd.1; Thu, 30 Nov 2017 16:56:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CboC0c82CR3faSCiEDkb8wTkRofN0Sj79SM3pxJKpLk=; b=RZCJInEZPOSTQfkGdsODBllPJGh1/NLGzr7iCx9fJcnCo+9sQ1GLxh0KoGUQ/7aGnY 4i/YVEiuKWSp1cakhhp7VDcXl5M/R2VZEHT+eE1Tuk202XCWUukZQ84xx1Zt++uMdctz aO9Q/x4kskVn/PosGZNDjQe+YswrBR1MprBVKyHQ2K9UuewWQ+Q7DgzqpLyMyTtJAefy T9E7mRR2EnFnEgNIGWAFqxH85mPmDRPUwqlQQq0OgtCJT2qVQMu1XamtGOSa/RhtnjtJ 8WpSCo04uoKw/2dm8u/P5vad06BfE4iW11uJ6Nuo4pZLIP+hok5WLhN5aHE0FGEYxrgU 0n3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=CboC0c82CR3faSCiEDkb8wTkRofN0Sj79SM3pxJKpLk=; b=dR3QP0yHISE+0mcaDF5uVDrvdnMy5yOf1t/6AhZnoo4CJryFTc+RdS7yioBElT6ZGF O5Vl+gMNUiZ1bWVpjwAvtAcvTsNgXO8jg3Zer1narw6PFzTrdp346m0bJbXTwTpU2w1T XZVBH9trh/5F6ClJmTr3vt2RPDfe99GiFMMMbWtSfZJqhVWvwSbdVhTYvLinMvGl2bkG i79o7Nt0PM5S9xx7ghhfsy1BfpN2uAysVaIBQzitg4GW4irHPuwJEeBLt7oTn8Qskc1p NdQ8vicbNTfOl/s0XWjmQ31FNUhgBaT+HPeF40tEa0PLP3c1v1Oo5tg/+hgocfAkDBZa y11w== X-Gm-Message-State: AJaThX6UKOTo6iRbhc8Wyb28P5eQmIeARugDnlclsf+mDq4HdNRqhnD5 7O0nBPyOGA9dGHxqEMOaWKltP6K4+GvMry9QNbE= X-Received: by 10.157.72.131 with SMTP id d3mr6552742otf.137.1512089760376; Thu, 30 Nov 2017 16:56:00 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.209.8 with HTTP; Thu, 30 Nov 2017 16:55:59 -0800 (PST) In-Reply-To: <20171130151715.GB1399@flask> References: <1512021674-9880-1-git-send-email-wanpeng.li@hotmail.com> <1512021674-9880-3-git-send-email-wanpeng.li@hotmail.com> <20171130151715.GB1399@flask> From: Wanpeng Li Date: Fri, 1 Dec 2017 08:55:59 +0800 Message-ID: Subject: Re: [PATCH v7 2/4] KVM: X86: Add Paravirt TLB Shootdown To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Cc: "linux-kernel@vger.kernel.org" , kvm , Paolo Bonzini , Peter Zijlstra , Wanpeng Li Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017-11-30 23:17 GMT+08:00 Radim Kr=C4=8Dm=C3=A1=C5=99 = : > 2017-11-29 22:01-0800, Wanpeng Li: >> From: Wanpeng Li >> --- >> diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c >> @@ -498,6 +498,34 @@ static void __init kvm_apf_trap_init(void) >> update_intr_gate(X86_TRAP_PF, async_page_fault); >> } >> >> +static DEFINE_PER_CPU(cpumask_var_t, __pv_tlb_mask); >> + >> +static void kvm_flush_tlb_others(const struct cpumask *cpumask, >> + const struct flush_tlb_info *info) >> +{ >> + u8 state; >> + int cpu; >> + struct kvm_steal_time *src; >> + struct cpumask *flushmask =3D this_cpu_cpumask_var_ptr(__pv_tlb_ma= sk); >> + >> + cpumask_copy(flushmask, cpumask); > > Is it impossible to call this function before the allocation? > > I was guessing that early_initcall might allow us to avoid a (static) > condition as there is no point in calling when there are no others, but > expected the worst ... kernel_init() -> kernel_init_freeable() -> do_basic_setup() -> do_initcalls() -> async_synchronize_full() =3D> finish all async __init code -> try_to_run_init_process() All the async __init codes can guarantee to be completed before init task is created, so I think arch_initcall() is fine. Regards, Wanpeng Li From 1585504670660687023@xxx Thu Nov 30 15:18:02 +0000 2017 X-GM-THRID: 1585469692856919567 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread