Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp3804501ybi; Fri, 19 Jul 2019 09:18:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqx71AVuSZm57aHceDIxVkLMFioMAX724UBxpjLgeKTCsMssUS0KOoTyzW+HOx1rLLNWh79o X-Received: by 2002:a63:e948:: with SMTP id q8mr53255222pgj.93.1563553124949; Fri, 19 Jul 2019 09:18:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563553124; cv=none; d=google.com; s=arc-20160816; b=KDIoDkq2xjQTne65cbCR8bVTgM8KdzC4J97DpktHQCRfGN/M8fQEQwgbvwxm3megM6 IGbkOo3HFCbeAvaglKxBw4WN27JwBHZALrG30LvLqKxY0c4fwgA+v1JdAoIRH2QuGvcm jZ7ihhkccUvnvYaFHAwogWS+3wfuJmnv8/crQk6vA0k3lmiNH5ioITP+N+9ve6vYskHa CCkgiddrpaAWavArK5sb2mBFqnSi6dBMfqct4Um3MZ0/yynbjJUOPWtrqZrURVsgRNux /rRQNem9woI0wS2/LdRb7J6XBh4F9FPp3psqxgDqJqtzVMBGN25AgPx+VCxe73WzRmJ5 VDLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :ironport-sdr; bh=q/5fo4lPu836uVTX3/IKBU20J/2hTLTl15Fei0H/63k=; b=XDSpVbx8cFKWApixeRRztU5JxWPL0JmjOEkJhPwDMAIr51+7OSIpHHLybd33fyoSsM 5/inBKCTk+r/1DbAlV5XGy4IbqV52tP//sR9Bx9BvHhj12ySrWi/pJyZc+gwrGwQ77YO KPqeghI31I49+WNhnkbA4bLBToZdUfT9Hk35Q9RIb+S9nlCiz3Jcy7/wF7TLP7ju22zg VYKG0RCxanFKvZwhXns5AGNjS/ky/iuD4Bh6rFZVEdQ3DUQjPgGywwNkFjpoRAKSIqOT em/250JABpN7xpxilztQqp5BHVdrlgU2oyp3DVoCoH7JovRyeu5bMNTyeN/9HyHqMcU/ bz/Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j64si5979200pge.556.2019.07.19.09.17.49; Fri, 19 Jul 2019 09:18:44 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728801AbfGSNoN (ORCPT + 99 others); Fri, 19 Jul 2019 09:44:13 -0400 Received: from esa3.hc3370-68.iphmx.com ([216.71.145.155]:51402 "EHLO esa3.hc3370-68.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727603AbfGSNoN (ORCPT ); Fri, 19 Jul 2019 09:44:13 -0400 Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: X1OrYF3szn/jVMuWJIItUAaAsvQfAa90y3D9AP8stN+fw0rDmOqSfER+UcNjSzseQyw2gQjLoU /GjqlzMCrkr3moi7VpoI/l+tT8DP4ITyhzGMGaoebhPW5kOMDN6/U8/OnQiAzaUXaZnh+WL/L9 Q/NwVHMJLR9W7ZBkjR/B2Dwccb44Amt3mb58Xr857UowUmTIqIlT8ZJ7TiJk9Wy1hsZXoMGyf3 49LJadLIzXut48bh2dFZAbcQYl9yVGIMsmFekJ5JqlccSYAhOErRajrLXyspGZGBr3TdU/0c9s Brs= X-SBRS: 2.7 X-MesageID: 3199218 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,282,1559534400"; d="scan'208";a="3199218" Subject: Re: [PATCH v2] x86/paravirt: Drop {read,write}_cr8() hooks To: Andy Lutomirski CC: Nadav Amit , LKML , "the arch/x86 maintainers" , "virtualization@lists.linux-foundation.org" , Borislav Petkov , Peter Zijlstra , Stephane Eranian , Feng Tang , Juergen Gross , "Boris Ostrovsky" , "Rafael J. Wysocki" , Pavel Machek References: <20190715151641.29210-1-andrew.cooper3@citrix.com> <602B4D96-E2A9-45BE-8247-4E3481ED5402@vmware.com> <4a7592c8-0ee8-f394-c445-4032daf74493@citrix.com> From: Andrew Cooper Openpgp: preference=signencrypt Autocrypt: addr=andrew.cooper3@citrix.com; prefer-encrypt=mutual; keydata= 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 6+ahAA== Message-ID: <1b6ef9c2-6c55-81b9-2b9d-4dc7b5d764ab@citrix.com> Date: Fri, 19 Jul 2019 14:44:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Language: en-GB X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 16/07/2019 01:05, Andy Lutomirski wrote: > On Mon, Jul 15, 2019 at 4:30 PM Andrew Cooper wrote: >> On 15/07/2019 19:17, Nadav Amit wrote: >>>> On Jul 15, 2019, at 8:16 AM, Andrew Cooper wrote: >>>> >>>> There is a lot of infrastructure for functionality which is used >>>> exclusively in __{save,restore}_processor_state() on the suspend/resume >>>> path. >>>> >>>> cr8 is an alias of APIC_TASKPRI, and APIC_TASKPRI is saved/restored by >>>> lapic_{suspend,resume}(). Saving and restoring cr8 independently of the >>>> rest of the Local APIC state isn't a clever thing to be doing. >>>> >>>> Delete the suspend/resume cr8 handling, which shrinks the size of struct >>>> saved_context, and allows for the removal of both PVOPS. >>> I think removing the interface for CR8 writes is also good to avoid >>> potential correctness issues, as the SDM says (10.8.6.1 "Interaction of Task >>> Priorities between CR8 and APIC”): >>> >>> "Operating software should implement either direct APIC TPR updates or CR8 >>> style TPR updates but not mix them. Software can use a serializing >>> instruction (for example, CPUID) to serialize updates between MOV CR8 and >>> stores to the APIC.” >>> >>> And native_write_cr8() did not even issue a serializing instruction. >>> >> Given its location, the one write_cr8() is bounded by two serialising >> operations, so is safe in practice. >> >> However, I agree with the statement in the manual. I could submit a v3 >> with an updated commit message, or let it be fixed on commit. Whichever >> is easiest. >> > I don't see anything wrong with the message. If we actually used CR8 > for interrupt priorities, we wouldn't want it to serialize. The bug > is that the code that did the write_cr8() should have had a comment as > to how it serialized against lapic_restore(). But that doesn't seem > worth mentioning in the message, since, as noted, the real problem was > that it nonsensically restored just TPR without restoring everything > else. Fair enough, in which case I'm happy with v2 as it is. ~Andrew