From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98862C43331 for ; Mon, 30 Mar 2020 02:38:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 628822078B for ; Mon, 30 Mar 2020 02:38:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729039AbgC3CiD (ORCPT ); Sun, 29 Mar 2020 22:38:03 -0400 Received: from mga06.intel.com ([134.134.136.31]:9530 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728107AbgC3CiC (ORCPT ); Sun, 29 Mar 2020 22:38:02 -0400 IronPort-SDR: lZIG+MHT3UYuDYKUYpMzpjOCt92Ez0M5gGBRJj3uE4EKcKi4Yx9qDjul8buscc/CF9ieq6+mLV 5FjpRBeKDVzA== X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2020 19:38:01 -0700 IronPort-SDR: YYyK4wfSIAgToErcbOGjx8KGtxlHVKSC1t3ssVBVVo2QXogvsHUa2E+KWvCXrTCOvmnqTIjGFd jAS5wd+12qlA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,322,1580803200"; d="gz'50?scan'50,208,50";a="394981667" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by orsmga004.jf.intel.com with ESMTP; 29 Mar 2020 19:37:56 -0700 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1jIkJH-0002yS-Vc; Mon, 30 Mar 2020 10:37:55 +0800 Date: Mon, 30 Mar 2020 10:37:46 +0800 From: kbuild test robot To: Ashish Kalra Cc: kbuild-all@lists.01.org, pbonzini@redhat.com, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, joro@8bytes.org, bp@suse.de, thomas.lendacky@amd.com, x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, rientjes@google.com, srutherford@google.com, luto@kernel.org, brijesh.singh@amd.com Subject: Re: [PATCH v5 10/14] mm: x86: Invoke hypercall when page encryption status is changed Message-ID: <202003301031.0d5Z4JdC%lkp@intel.com> References: <7de8c7748914b9511175b5a8b252332d1c00d33f.1585531159.git.ashish.kalra@amd.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nFreZHaLTZJo0R7j" Content-Disposition: inline In-Reply-To: <7de8c7748914b9511175b5a8b252332d1c00d33f.1585531159.git.ashish.kalra@amd.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Ashish, I love your patch! Yet something to improve: [auto build test ERROR on tip/x86/mm] [also build test ERROR on v5.6] [cannot apply to kvm/linux-next tip/x86/core next-20200327] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Ashish-Kalra/Add-AMD-SEV-guest-live-migration-support/20200330-094122 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git aa61ee7b9ee3cb84c0d3a842b0d17937bf024c46 config: i386-tinyconfig (attached as .config) compiler: gcc-7 (Debian 7.5.0-5) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/x86/mm/pat/set_memory.c: In function '__set_memory_enc_dec': >> arch/x86/mm/pat/set_memory.c:1995:2: error: implicit declaration of function 'page_encryption_changed'; did you mean 'sme_encrypt_kernel'? [-Werror=implicit-function-declaration] page_encryption_changed(addr, numpages, enc); ^~~~~~~~~~~~~~~~~~~~~~~ sme_encrypt_kernel cc1: some warnings being treated as errors vim +1995 arch/x86/mm/pat/set_memory.c 1950 1951 static int __set_memory_enc_dec(unsigned long addr, int numpages, bool enc) 1952 { 1953 struct cpa_data cpa; 1954 int ret; 1955 1956 /* Nothing to do if memory encryption is not active */ 1957 if (!mem_encrypt_active()) 1958 return 0; 1959 1960 /* Should not be working on unaligned addresses */ 1961 if (WARN_ONCE(addr & ~PAGE_MASK, "misaligned address: %#lx\n", addr)) 1962 addr &= PAGE_MASK; 1963 1964 memset(&cpa, 0, sizeof(cpa)); 1965 cpa.vaddr = &addr; 1966 cpa.numpages = numpages; 1967 cpa.mask_set = enc ? __pgprot(_PAGE_ENC) : __pgprot(0); 1968 cpa.mask_clr = enc ? __pgprot(0) : __pgprot(_PAGE_ENC); 1969 cpa.pgd = init_mm.pgd; 1970 1971 /* Must avoid aliasing mappings in the highmem code */ 1972 kmap_flush_unused(); 1973 vm_unmap_aliases(); 1974 1975 /* 1976 * Before changing the encryption attribute, we need to flush caches. 1977 */ 1978 cpa_flush(&cpa, 1); 1979 1980 ret = __change_page_attr_set_clr(&cpa, 1); 1981 1982 /* 1983 * After changing the encryption attribute, we need to flush TLBs again 1984 * in case any speculative TLB caching occurred (but no need to flush 1985 * caches again). We could just use cpa_flush_all(), but in case TLB 1986 * flushing gets optimized in the cpa_flush() path use the same logic 1987 * as above. 1988 */ 1989 cpa_flush(&cpa, 0); 1990 1991 /* Notify hypervisor that a given memory range is mapped encrypted 1992 * or decrypted. The hypervisor will use this information during the 1993 * VM migration. 1994 */ > 1995 page_encryption_changed(addr, numpages, enc); 1996 1997 return ret; 1998 } 1999 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --nFreZHaLTZJo0R7j Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 /QCYloq3XWgAAA== --nFreZHaLTZJo0R7j--