From: kernel test robot <lkp@intel.com> To: Jane Chu <jane.chu@oracle.com>, david@fromorbit.com, djwong@kernel.org, dan.j.williams@intel.com, hch@infradead.org, vishal.l.verma@intel.com, dave.jiang@intel.com, agk@redhat.com, snitzer@redhat.com, dm-devel@redhat.com, ira.weiny@intel.com, willy@infradead.org, vgoyal@redhat.com, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org Cc: kbuild-all@lists.01.org Subject: Re: [PATCH v6 2/6] x86/mce: relocate set{clear}_mce_nospec() functions Date: Sat, 19 Mar 2022 16:13:44 +0800 [thread overview] Message-ID: <202203191637.PK2oJUeq-lkp@intel.com> (raw) In-Reply-To: <20220319062833.3136528-3-jane.chu@oracle.com> Hi Jane, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on nvdimm/libnvdimm-for-next] [also build test WARNING on device-mapper-dm/for-next linus/master v5.17-rc8 next-20220318] [cannot apply to tip/x86/mm] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jane-Chu/DAX-poison-recovery/20220319-143144 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220319/202203191637.PK2oJUeq-lkp@intel.com/config) compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/71b9b09529b207ce15667c1f5fba4b727b6754e6 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jane-Chu/DAX-poison-recovery/20220319-143144 git checkout 71b9b09529b207ce15667c1f5fba4b727b6754e6 # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/mm/pat/ fs/fuse/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> arch/x86/mm/pat/set_memory.c:1935:5: warning: no previous prototype for 'set_mce_nospec' [-Wmissing-prototypes] 1935 | int set_mce_nospec(unsigned long pfn, bool unmap) | ^~~~~~~~~~~~~~ >> arch/x86/mm/pat/set_memory.c:1968:5: warning: no previous prototype for 'clear_mce_nospec' [-Wmissing-prototypes] 1968 | int clear_mce_nospec(unsigned long pfn) | ^~~~~~~~~~~~~~~~ vim +/set_mce_nospec +1935 arch/x86/mm/pat/set_memory.c 1927 1928 #ifdef CONFIG_X86_64 1929 /* 1930 * Prevent speculative access to the page by either unmapping 1931 * it (if we do not require access to any part of the page) or 1932 * marking it uncacheable (if we want to try to retrieve data 1933 * from non-poisoned lines in the page). 1934 */ > 1935 int set_mce_nospec(unsigned long pfn, bool unmap) 1936 { 1937 unsigned long decoy_addr; 1938 int rc; 1939 1940 /* SGX pages are not in the 1:1 map */ 1941 if (arch_is_platform_page(pfn << PAGE_SHIFT)) 1942 return 0; 1943 /* 1944 * We would like to just call: 1945 * set_memory_XX((unsigned long)pfn_to_kaddr(pfn), 1); 1946 * but doing that would radically increase the odds of a 1947 * speculative access to the poison page because we'd have 1948 * the virtual address of the kernel 1:1 mapping sitting 1949 * around in registers. 1950 * Instead we get tricky. We create a non-canonical address 1951 * that looks just like the one we want, but has bit 63 flipped. 1952 * This relies on set_memory_XX() properly sanitizing any __pa() 1953 * results with __PHYSICAL_MASK or PTE_PFN_MASK. 1954 */ 1955 decoy_addr = (pfn << PAGE_SHIFT) + (PAGE_OFFSET ^ BIT(63)); 1956 1957 if (unmap) 1958 rc = set_memory_np(decoy_addr, 1); 1959 else 1960 rc = set_memory_uc(decoy_addr, 1); 1961 if (rc) 1962 pr_warn("Could not invalidate pfn=0x%lx from 1:1 map\n", pfn); 1963 return rc; 1964 } 1965 EXPORT_SYMBOL(set_mce_nospec); 1966 1967 /* Restore full speculative operation to the pfn. */ > 1968 int clear_mce_nospec(unsigned long pfn) 1969 { 1970 return set_memory_wb((unsigned long) pfn_to_kaddr(pfn), 1); 1971 } 1972 EXPORT_SYMBOL(clear_mce_nospec); 1973 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: Jane Chu <jane.chu@oracle.com>, david@fromorbit.com, djwong@kernel.org, dan.j.williams@intel.com, hch@infradead.org, vishal.l.verma@intel.com, dave.jiang@intel.com, agk@redhat.com, snitzer@redhat.com, dm-devel@redhat.com, ira.weiny@intel.com, willy@infradead.org, vgoyal@redhat.com, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org Cc: kbuild-all@lists.01.org Subject: Re: [dm-devel] [PATCH v6 2/6] x86/mce: relocate set{clear}_mce_nospec() functions Date: Sat, 19 Mar 2022 16:13:44 +0800 [thread overview] Message-ID: <202203191637.PK2oJUeq-lkp@intel.com> (raw) In-Reply-To: <20220319062833.3136528-3-jane.chu@oracle.com> Hi Jane, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on nvdimm/libnvdimm-for-next] [also build test WARNING on device-mapper-dm/for-next linus/master v5.17-rc8 next-20220318] [cannot apply to tip/x86/mm] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jane-Chu/DAX-poison-recovery/20220319-143144 base: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220319/202203191637.PK2oJUeq-lkp@intel.com/config) compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/71b9b09529b207ce15667c1f5fba4b727b6754e6 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jane-Chu/DAX-poison-recovery/20220319-143144 git checkout 71b9b09529b207ce15667c1f5fba4b727b6754e6 # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/mm/pat/ fs/fuse/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> arch/x86/mm/pat/set_memory.c:1935:5: warning: no previous prototype for 'set_mce_nospec' [-Wmissing-prototypes] 1935 | int set_mce_nospec(unsigned long pfn, bool unmap) | ^~~~~~~~~~~~~~ >> arch/x86/mm/pat/set_memory.c:1968:5: warning: no previous prototype for 'clear_mce_nospec' [-Wmissing-prototypes] 1968 | int clear_mce_nospec(unsigned long pfn) | ^~~~~~~~~~~~~~~~ vim +/set_mce_nospec +1935 arch/x86/mm/pat/set_memory.c 1927 1928 #ifdef CONFIG_X86_64 1929 /* 1930 * Prevent speculative access to the page by either unmapping 1931 * it (if we do not require access to any part of the page) or 1932 * marking it uncacheable (if we want to try to retrieve data 1933 * from non-poisoned lines in the page). 1934 */ > 1935 int set_mce_nospec(unsigned long pfn, bool unmap) 1936 { 1937 unsigned long decoy_addr; 1938 int rc; 1939 1940 /* SGX pages are not in the 1:1 map */ 1941 if (arch_is_platform_page(pfn << PAGE_SHIFT)) 1942 return 0; 1943 /* 1944 * We would like to just call: 1945 * set_memory_XX((unsigned long)pfn_to_kaddr(pfn), 1); 1946 * but doing that would radically increase the odds of a 1947 * speculative access to the poison page because we'd have 1948 * the virtual address of the kernel 1:1 mapping sitting 1949 * around in registers. 1950 * Instead we get tricky. We create a non-canonical address 1951 * that looks just like the one we want, but has bit 63 flipped. 1952 * This relies on set_memory_XX() properly sanitizing any __pa() 1953 * results with __PHYSICAL_MASK or PTE_PFN_MASK. 1954 */ 1955 decoy_addr = (pfn << PAGE_SHIFT) + (PAGE_OFFSET ^ BIT(63)); 1956 1957 if (unmap) 1958 rc = set_memory_np(decoy_addr, 1); 1959 else 1960 rc = set_memory_uc(decoy_addr, 1); 1961 if (rc) 1962 pr_warn("Could not invalidate pfn=0x%lx from 1:1 map\n", pfn); 1963 return rc; 1964 } 1965 EXPORT_SYMBOL(set_mce_nospec); 1966 1967 /* Restore full speculative operation to the pfn. */ > 1968 int clear_mce_nospec(unsigned long pfn) 1969 { 1970 return set_memory_wb((unsigned long) pfn_to_kaddr(pfn), 1); 1971 } 1972 EXPORT_SYMBOL(clear_mce_nospec); 1973 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org -- dm-devel mailing list dm-devel@redhat.com https://listman.redhat.com/mailman/listinfo/dm-devel
next prev parent reply other threads:[~2022-03-19 8:14 UTC|newest] Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-03-19 6:28 [PATCH v6 0/6] DAX poison recovery Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-19 6:28 ` [PATCH v6 1/6] x86/mm: fix comment Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-22 8:40 ` Christoph Hellwig 2022-03-22 8:40 ` [dm-devel] " Christoph Hellwig 2022-03-19 6:28 ` [PATCH v6 2/6] x86/mce: relocate set{clear}_mce_nospec() functions Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-19 8:13 ` kernel test robot [this message] 2022-03-19 8:13 ` kernel test robot 2022-03-19 8:24 ` kernel test robot 2022-03-19 8:24 ` [dm-devel] " kernel test robot 2022-03-22 8:42 ` Christoph Hellwig 2022-03-22 8:42 ` [dm-devel] " Christoph Hellwig 2022-03-22 22:19 ` Jane Chu 2022-03-22 22:19 ` [dm-devel] " Jane Chu 2022-03-22 22:41 ` Borislav Petkov 2022-03-22 22:41 ` [dm-devel] " Borislav Petkov 2022-03-22 23:48 ` Jane Chu 2022-03-22 23:48 ` [dm-devel] " Jane Chu 2022-03-19 6:28 ` [PATCH v6 3/6] mce: fix set_mce_nospec to always unmap the whole page Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-22 8:44 ` Christoph Hellwig 2022-03-22 8:44 ` [dm-devel] " Christoph Hellwig 2022-03-22 22:45 ` Jane Chu 2022-03-22 22:45 ` [dm-devel] " Jane Chu 2022-03-19 6:28 ` [PATCH v6 4/6] dax: add DAX_RECOVERY flag and .recovery_write dev_pgmap_ops Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-19 8:24 ` kernel test robot 2022-03-19 8:24 ` [dm-devel] " kernel test robot 2022-03-19 8:44 ` kernel test robot 2022-03-19 8:44 ` [dm-devel] " kernel test robot 2022-03-22 9:01 ` Christoph Hellwig 2022-03-22 9:01 ` [dm-devel] " Christoph Hellwig 2022-03-22 23:05 ` Jane Chu 2022-03-22 23:05 ` [dm-devel] " Jane Chu 2022-03-23 5:45 ` Christoph Hellwig 2022-03-23 5:45 ` [dm-devel] " Christoph Hellwig 2022-03-23 18:43 ` Jane Chu 2022-03-23 18:43 ` [dm-devel] " Jane Chu 2022-03-24 6:37 ` Christoph Hellwig 2022-03-24 6:37 ` [dm-devel] " Christoph Hellwig 2022-03-26 6:31 ` Jane Chu 2022-03-26 6:31 ` [dm-devel] " Jane Chu 2022-03-19 6:28 ` [PATCH v6 5/6] pmem: refactor pmem_clear_poison() Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu 2022-03-22 8:53 ` Christoph Hellwig 2022-03-22 8:53 ` [dm-devel] " Christoph Hellwig 2022-03-22 23:45 ` Jane Chu 2022-03-22 23:45 ` [dm-devel] " Jane Chu 2022-03-19 6:28 ` [PATCH v6 6/6] pmem: implement pmem_recovery_write() Jane Chu 2022-03-19 6:28 ` [dm-devel] " Jane Chu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202203191637.PK2oJUeq-lkp@intel.com \ --to=lkp@intel.com \ --cc=agk@redhat.com \ --cc=dan.j.williams@intel.com \ --cc=dave.jiang@intel.com \ --cc=david@fromorbit.com \ --cc=djwong@kernel.org \ --cc=dm-devel@redhat.com \ --cc=hch@infradead.org \ --cc=ira.weiny@intel.com \ --cc=jane.chu@oracle.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-xfs@vger.kernel.org \ --cc=nvdimm@lists.linux.dev \ --cc=snitzer@redhat.com \ --cc=vgoyal@redhat.com \ --cc=vishal.l.verma@intel.com \ --cc=willy@infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.