Message ID | 20210208165617.9977-8-vincenzo.frascino@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: ARMv8.5-A: MTE: Add async mode support | expand |
Hi Vincenzo,
I love your patch! Yet something to improve:
[auto build test ERROR on next-20210125]
[cannot apply to arm64/for-next/core xlnx/master arm/for-next soc/for-next kvmarm/next linus/master hnaz-linux-mm/master v5.11-rc6 v5.11-rc5 v5.11-rc4 v5.11-rc6]
[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/Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907
base: 59fa6a163ffabc1bf25c5e0e33899e268a96d3cc
config: powerpc64-randconfig-r033-20210209 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/53907a0b15724b414ddd9201356f92e09571ef90
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907
git checkout 53907a0b15724b414ddd9201356f92e09571ef90
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
powerpc-linux-ld: lib/test_kasan.o: in function `kasan_test_init':
test_kasan.c:(.text+0x849a): undefined reference to `kasan_flag_async'
>> powerpc-linux-ld: test_kasan.c:(.text+0x84a2): undefined reference to `kasan_flag_async'
powerpc-linux-ld: test_kasan.c:(.text+0x84e2): undefined reference to `kasan_flag_async'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On 2/9/21 6:32 AM, kernel test robot wrote: > Hi Vincenzo, > > I love your patch! Yet something to improve: > > [auto build test ERROR on next-20210125] > [cannot apply to arm64/for-next/core xlnx/master arm/for-next soc/for-next kvmarm/next linus/master hnaz-linux-mm/master v5.11-rc6 v5.11-rc5 v5.11-rc4 v5.11-rc6] The patches are based on linux-next/akpm and since they depend on some patches present on that tree, can be applied only on linux-next/akpm and linux-next/master. The dependency is reported in the cover letter. Thanks, Vincenzo > [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/Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907 > base: 59fa6a163ffabc1bf25c5e0e33899e268a96d3cc > config: powerpc64-randconfig-r033-20210209 (attached as .config) > compiler: powerpc-linux-gcc (GCC) 9.3.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/0day-ci/linux/commit/53907a0b15724b414ddd9201356f92e09571ef90 > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907 > git checkout 53907a0b15724b414ddd9201356f92e09571ef90 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > All errors (new ones prefixed by >>): > > powerpc-linux-ld: lib/test_kasan.o: in function `kasan_test_init': > test_kasan.c:(.text+0x849a): undefined reference to `kasan_flag_async' >>> powerpc-linux-ld: test_kasan.c:(.text+0x84a2): undefined reference to `kasan_flag_async' > powerpc-linux-ld: test_kasan.c:(.text+0x84e2): undefined reference to `kasan_flag_async' > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org >
On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: > From: Andrey Konovalov <andreyknvl@google.com> > > Asynchronous KASAN mode doesn't guarantee that a tag fault will be > detected immediately and causes tests to fail. Forbid running them > in asynchronous mode. > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> That's missing your SoB. > diff --git a/lib/test_kasan.c b/lib/test_kasan.c > index 7285dcf9fcc1..f82d9630cae1 100644 > --- a/lib/test_kasan.c > +++ b/lib/test_kasan.c > @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) > kunit_err(test, "can't run KASAN tests with KASAN disabled"); > return -1; > } > + if (kasan_flag_async) { > + kunit_err(test, "can't run KASAN tests in async mode"); > + return -1; > + } > > multishot = kasan_save_enable_multi_shot(); > hw_set_tagging_report_once(false); I think we can still run the kasan tests in async mode if we check the TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit().
On 2/9/21 12:02 PM, Catalin Marinas wrote: > On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: >> From: Andrey Konovalov <andreyknvl@google.com> >> >> Asynchronous KASAN mode doesn't guarantee that a tag fault will be >> detected immediately and causes tests to fail. Forbid running them >> in asynchronous mode. >> >> Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > > That's missing your SoB. > Yes, I will add it in the next iteration. >> diff --git a/lib/test_kasan.c b/lib/test_kasan.c >> index 7285dcf9fcc1..f82d9630cae1 100644 >> --- a/lib/test_kasan.c >> +++ b/lib/test_kasan.c >> @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) >> kunit_err(test, "can't run KASAN tests with KASAN disabled"); >> return -1; >> } >> + if (kasan_flag_async) { >> + kunit_err(test, "can't run KASAN tests in async mode"); >> + return -1; >> + } >> >> multishot = kasan_save_enable_multi_shot(); >> hw_set_tagging_report_once(false); > > I think we can still run the kasan tests in async mode if we check the > TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit(). > IIUC this was the plan for the future. But I let Andrey comment for more details.
On Tue, Feb 9, 2021 at 1:16 PM Vincenzo Frascino <vincenzo.frascino@arm.com> wrote: > > > > On 2/9/21 12:02 PM, Catalin Marinas wrote: > > On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: > >> From: Andrey Konovalov <andreyknvl@google.com> > >> > >> Asynchronous KASAN mode doesn't guarantee that a tag fault will be > >> detected immediately and causes tests to fail. Forbid running them > >> in asynchronous mode. > >> > >> Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > > > > That's missing your SoB. > > > > Yes, I will add it in the next iteration. > > >> diff --git a/lib/test_kasan.c b/lib/test_kasan.c > >> index 7285dcf9fcc1..f82d9630cae1 100644 > >> --- a/lib/test_kasan.c > >> +++ b/lib/test_kasan.c > >> @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) > >> kunit_err(test, "can't run KASAN tests with KASAN disabled"); > >> return -1; > >> } > >> + if (kasan_flag_async) { > >> + kunit_err(test, "can't run KASAN tests in async mode"); > >> + return -1; > >> + } > >> > >> multishot = kasan_save_enable_multi_shot(); > >> hw_set_tagging_report_once(false); > > > > I think we can still run the kasan tests in async mode if we check the > > TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit(). > > > > IIUC this was the plan for the future. But I let Andrey comment for more details. If it's possible to implement, then it would be good to have. Doesn't have to be a part of this series though.
On Tue, Feb 09, 2021 at 04:02:25PM +0100, Andrey Konovalov wrote: > On Tue, Feb 9, 2021 at 1:16 PM Vincenzo Frascino > <vincenzo.frascino@arm.com> wrote: > > On 2/9/21 12:02 PM, Catalin Marinas wrote: > > > On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: > > >> diff --git a/lib/test_kasan.c b/lib/test_kasan.c > > >> index 7285dcf9fcc1..f82d9630cae1 100644 > > >> --- a/lib/test_kasan.c > > >> +++ b/lib/test_kasan.c > > >> @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) > > >> kunit_err(test, "can't run KASAN tests with KASAN disabled"); > > >> return -1; > > >> } > > >> + if (kasan_flag_async) { > > >> + kunit_err(test, "can't run KASAN tests in async mode"); > > >> + return -1; > > >> + } > > >> > > >> multishot = kasan_save_enable_multi_shot(); > > >> hw_set_tagging_report_once(false); > > > > > > I think we can still run the kasan tests in async mode if we check the > > > TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit(). > > > > > > > IIUC this was the plan for the future. But I let Andrey comment for more details. > > If it's possible to implement, then it would be good to have. Doesn't > have to be a part of this series though. I think it can be part of this series but after the 5.12 merging window (we are a few days away from final 5.11 and I don't think we should rush the MTE kernel async support in). It would be nice to have the kasan tests running with async by the time we merge the patches (at a quick look, I think it's possible but, of course, we may hit some blockers when implementing it).
On Tue, Feb 9, 2021 at 6:07 PM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Tue, Feb 09, 2021 at 04:02:25PM +0100, Andrey Konovalov wrote: > > On Tue, Feb 9, 2021 at 1:16 PM Vincenzo Frascino > > <vincenzo.frascino@arm.com> wrote: > > > On 2/9/21 12:02 PM, Catalin Marinas wrote: > > > > On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: > > > >> diff --git a/lib/test_kasan.c b/lib/test_kasan.c > > > >> index 7285dcf9fcc1..f82d9630cae1 100644 > > > >> --- a/lib/test_kasan.c > > > >> +++ b/lib/test_kasan.c > > > >> @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) > > > >> kunit_err(test, "can't run KASAN tests with KASAN disabled"); > > > >> return -1; > > > >> } > > > >> + if (kasan_flag_async) { > > > >> + kunit_err(test, "can't run KASAN tests in async mode"); > > > >> + return -1; > > > >> + } > > > >> > > > >> multishot = kasan_save_enable_multi_shot(); > > > >> hw_set_tagging_report_once(false); > > > > > > > > I think we can still run the kasan tests in async mode if we check the > > > > TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit(). > > > > > > > > > > IIUC this was the plan for the future. But I let Andrey comment for more details. > > > > If it's possible to implement, then it would be good to have. Doesn't > > have to be a part of this series though. > > I think it can be part of this series but after the 5.12 merging window > (we are a few days away from final 5.11 and I don't think we should > rush the MTE kernel async support in). > > It would be nice to have the kasan tests running with async by the time > we merge the patches (at a quick look, I think it's possible but, of > course, we may hit some blockers when implementing it). OK, sounds good. If it's possible to put an explicit check for tag faults at the end of each test, then adding async support shouldn't be hard. Note, that some of the tests trigger bugs that are detected via explicit checks within KASAN. For example, KASAN checks that a pointer that's being freed points to a start of a slab object, or that the object is accessible when it gets freed, etc. I don't see this being a problem, so just FYI. Thanks!
Hi Andrey, On 2/9/21 5:26 PM, Andrey Konovalov wrote: > On Tue, Feb 9, 2021 at 6:07 PM Catalin Marinas <catalin.marinas@arm.com> wrote: >> >> On Tue, Feb 09, 2021 at 04:02:25PM +0100, Andrey Konovalov wrote: >>> On Tue, Feb 9, 2021 at 1:16 PM Vincenzo Frascino >>> <vincenzo.frascino@arm.com> wrote: >>>> On 2/9/21 12:02 PM, Catalin Marinas wrote: >>>>> On Mon, Feb 08, 2021 at 04:56:17PM +0000, Vincenzo Frascino wrote: >>>>>> diff --git a/lib/test_kasan.c b/lib/test_kasan.c >>>>>> index 7285dcf9fcc1..f82d9630cae1 100644 >>>>>> --- a/lib/test_kasan.c >>>>>> +++ b/lib/test_kasan.c >>>>>> @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) >>>>>> kunit_err(test, "can't run KASAN tests with KASAN disabled"); >>>>>> return -1; >>>>>> } >>>>>> + if (kasan_flag_async) { >>>>>> + kunit_err(test, "can't run KASAN tests in async mode"); >>>>>> + return -1; >>>>>> + } >>>>>> >>>>>> multishot = kasan_save_enable_multi_shot(); >>>>>> hw_set_tagging_report_once(false); >>>>> >>>>> I think we can still run the kasan tests in async mode if we check the >>>>> TFSR_EL1 at the end of each test by calling mte_check_tfsr_exit(). >>>>> >>>> >>>> IIUC this was the plan for the future. But I let Andrey comment for more details. >>> >>> If it's possible to implement, then it would be good to have. Doesn't >>> have to be a part of this series though. >> >> I think it can be part of this series but after the 5.12 merging window >> (we are a few days away from final 5.11 and I don't think we should >> rush the MTE kernel async support in). >> >> It would be nice to have the kasan tests running with async by the time >> we merge the patches (at a quick look, I think it's possible but, of >> course, we may hit some blockers when implementing it). > > OK, sounds good. > > If it's possible to put an explicit check for tag faults at the end of > each test, then adding async support shouldn't be hard. > > Note, that some of the tests trigger bugs that are detected via > explicit checks within KASAN. For example, KASAN checks that a pointer > that's being freed points to a start of a slab object, or that the > object is accessible when it gets freed, etc. I don't see this being a > problem, so just FYI. > Once you have your patches ready please send them to me and I will repost another version. In the meantime I will address the remaining comments. > Thanks! >
On 2/9/21 7:33 PM, Vincenzo Frascino wrote: > > On 2/9/21 6:32 AM, kernel test robot wrote: >> Hi Vincenzo, >> >> I love your patch! Yet something to improve: >> >> [auto build test ERROR on next-20210125] >> [cannot apply to arm64/for-next/core xlnx/master arm/for-next soc/for-next kvmarm/next linus/master hnaz-linux-mm/master v5.11-rc6 v5.11-rc5 v5.11-rc4 v5.11-rc6] > The patches are based on linux-next/akpm and since they depend on some patches > present on that tree, can be applied only on linux-next/akpm and linux-next/master. > > The dependency is reported in the cover letter. Hi Vincenzo, Thanks for the feedback, we'll take a look. Best Regards, Rong Chen > > Thanks, > Vincenzo > >> [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/Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907 >> base: 59fa6a163ffabc1bf25c5e0e33899e268a96d3cc >> config: powerpc64-randconfig-r033-20210209 (attached as .config) >> compiler: powerpc-linux-gcc (GCC) 9.3.0 >> reproduce (this is a W=1 build): >> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross >> chmod +x ~/bin/make.cross >> # https://github.com/0day-ci/linux/commit/53907a0b15724b414ddd9201356f92e09571ef90 >> git remote add linux-review https://github.com/0day-ci/linux >> git fetch --no-tags linux-review Vincenzo-Frascino/arm64-ARMv8-5-A-MTE-Add-async-mode-support/20210209-080907 >> git checkout 53907a0b15724b414ddd9201356f92e09571ef90 >> # save the attached .config to linux build tree >> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64 >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot <lkp@intel.com> >> >> All errors (new ones prefixed by >>): >> >> powerpc-linux-ld: lib/test_kasan.o: in function `kasan_test_init': >> test_kasan.c:(.text+0x849a): undefined reference to `kasan_flag_async' >>>> powerpc-linux-ld: test_kasan.c:(.text+0x84a2): undefined reference to `kasan_flag_async' >> powerpc-linux-ld: test_kasan.c:(.text+0x84e2): undefined reference to `kasan_flag_async' >> >> --- >> 0-DAY CI Kernel Test Service, Intel Corporation >> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org >>
diff --git a/lib/test_kasan.c b/lib/test_kasan.c index 7285dcf9fcc1..f82d9630cae1 100644 --- a/lib/test_kasan.c +++ b/lib/test_kasan.c @@ -51,6 +51,10 @@ static int kasan_test_init(struct kunit *test) kunit_err(test, "can't run KASAN tests with KASAN disabled"); return -1; } + if (kasan_flag_async) { + kunit_err(test, "can't run KASAN tests in async mode"); + return -1; + } multishot = kasan_save_enable_multi_shot(); hw_set_tagging_report_once(false);