From: "Jürgen Groß" <jgross@suse.com> To: Sergey Dyasli <sergey.dyasli@citrix.com>, xen-devel@lists.xen.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko <glider@google.com>, Dmitry Vyukov <dvyukov@google.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>, George Dunlap <george.dunlap@citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Andrew Morton <akpm@linux-foundation.org> Subject: Re: [PATCH v1 2/4] x86/xen: add basic KASAN support for PV kernel Date: Thu, 9 Jan 2020 10:15:28 +0100 [thread overview] Message-ID: <0c968669-2b21-b772-dba8-f674057bd6e7@suse.com> (raw) In-Reply-To: <20200108152100.7630-3-sergey.dyasli@citrix.com> On 08.01.20 16:20, Sergey Dyasli wrote: > This enables to use Outline instrumentation for Xen PV kernels. > > KASAN_INLINE and KASAN_VMALLOC options currently lead to boot crashes > and hence disabled. > > Signed-off-by: Sergey Dyasli <sergey.dyasli@citrix.com> > --- > RFC --> v1: > - New functions with declarations in xen/xen-ops.h > - Fixed the issue with free_kernel_image_pages() with the help of > xen_pv_kasan_unpin_pgd() > --- > arch/x86/mm/kasan_init_64.c | 12 ++++++++++++ > arch/x86/xen/Makefile | 7 +++++++ > arch/x86/xen/enlighten_pv.c | 3 +++ > arch/x86/xen/mmu_pv.c | 39 +++++++++++++++++++++++++++++++++++++ > drivers/xen/Makefile | 2 ++ > include/xen/xen-ops.h | 4 ++++ > kernel/Makefile | 2 ++ > lib/Kconfig.kasan | 3 ++- > 8 files changed, 71 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c > index cf5bc37c90ac..902a6a152d33 100644 > --- a/arch/x86/mm/kasan_init_64.c > +++ b/arch/x86/mm/kasan_init_64.c > @@ -13,6 +13,9 @@ > #include <linux/sched/task.h> > #include <linux/vmalloc.h> > > +#include <xen/xen.h> > +#include <xen/xen-ops.h> > + > #include <asm/e820/types.h> > #include <asm/pgalloc.h> > #include <asm/tlbflush.h> > @@ -332,6 +335,11 @@ void __init kasan_early_init(void) > for (i = 0; pgtable_l5_enabled() && i < PTRS_PER_P4D; i++) > kasan_early_shadow_p4d[i] = __p4d(p4d_val); > > + if (xen_pv_domain()) { > + pgd_t *pv_top_pgt = xen_pv_kasan_early_init(); You are breaking the build with CONFIG_XEN_PV undefined here. > + kasan_map_early_shadow(pv_top_pgt); > + } > + > kasan_map_early_shadow(early_top_pgt); > kasan_map_early_shadow(init_top_pgt); > } > @@ -369,6 +377,8 @@ void __init kasan_init(void) > __pgd(__pa(tmp_p4d_table) | _KERNPG_TABLE)); > } > > + xen_pv_kasan_pin_pgd(early_top_pgt); Same here (and below). For the pin/unpin variants I'd rather have an inline wrapper containing the "if (xen_pv_domain())" in xen-ops.h which can easily contain the needed #ifdef CONFIG_XEN_PV. Juergen
WARNING: multiple messages have this Message-ID (diff)
From: "Jürgen Groß" <jgross@suse.com> To: Sergey Dyasli <sergey.dyasli@citrix.com>, xen-devel@lists.xen.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Stefano Stabellini <sstabellini@kernel.org>, George Dunlap <george.dunlap@citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, Alexander Potapenko <glider@google.com>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Andrew Morton <akpm@linux-foundation.org>, Dmitry Vyukov <dvyukov@google.com> Subject: Re: [Xen-devel] [PATCH v1 2/4] x86/xen: add basic KASAN support for PV kernel Date: Thu, 9 Jan 2020 10:15:28 +0100 [thread overview] Message-ID: <0c968669-2b21-b772-dba8-f674057bd6e7@suse.com> (raw) In-Reply-To: <20200108152100.7630-3-sergey.dyasli@citrix.com> On 08.01.20 16:20, Sergey Dyasli wrote: > This enables to use Outline instrumentation for Xen PV kernels. > > KASAN_INLINE and KASAN_VMALLOC options currently lead to boot crashes > and hence disabled. > > Signed-off-by: Sergey Dyasli <sergey.dyasli@citrix.com> > --- > RFC --> v1: > - New functions with declarations in xen/xen-ops.h > - Fixed the issue with free_kernel_image_pages() with the help of > xen_pv_kasan_unpin_pgd() > --- > arch/x86/mm/kasan_init_64.c | 12 ++++++++++++ > arch/x86/xen/Makefile | 7 +++++++ > arch/x86/xen/enlighten_pv.c | 3 +++ > arch/x86/xen/mmu_pv.c | 39 +++++++++++++++++++++++++++++++++++++ > drivers/xen/Makefile | 2 ++ > include/xen/xen-ops.h | 4 ++++ > kernel/Makefile | 2 ++ > lib/Kconfig.kasan | 3 ++- > 8 files changed, 71 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c > index cf5bc37c90ac..902a6a152d33 100644 > --- a/arch/x86/mm/kasan_init_64.c > +++ b/arch/x86/mm/kasan_init_64.c > @@ -13,6 +13,9 @@ > #include <linux/sched/task.h> > #include <linux/vmalloc.h> > > +#include <xen/xen.h> > +#include <xen/xen-ops.h> > + > #include <asm/e820/types.h> > #include <asm/pgalloc.h> > #include <asm/tlbflush.h> > @@ -332,6 +335,11 @@ void __init kasan_early_init(void) > for (i = 0; pgtable_l5_enabled() && i < PTRS_PER_P4D; i++) > kasan_early_shadow_p4d[i] = __p4d(p4d_val); > > + if (xen_pv_domain()) { > + pgd_t *pv_top_pgt = xen_pv_kasan_early_init(); You are breaking the build with CONFIG_XEN_PV undefined here. > + kasan_map_early_shadow(pv_top_pgt); > + } > + > kasan_map_early_shadow(early_top_pgt); > kasan_map_early_shadow(init_top_pgt); > } > @@ -369,6 +377,8 @@ void __init kasan_init(void) > __pgd(__pa(tmp_p4d_table) | _KERNPG_TABLE)); > } > > + xen_pv_kasan_pin_pgd(early_top_pgt); Same here (and below). For the pin/unpin variants I'd rather have an inline wrapper containing the "if (xen_pv_domain())" in xen-ops.h which can easily contain the needed #ifdef CONFIG_XEN_PV. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2020-01-09 9:23 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-08 15:20 [PATCH v1 0/4] basic KASAN support for Xen PV domains Sergey Dyasli 2020-01-08 15:20 ` [Xen-devel] " Sergey Dyasli 2020-01-08 15:20 ` [PATCH v1 1/4] kasan: introduce set_pmd_early_shadow() Sergey Dyasli 2020-01-08 15:20 ` [Xen-devel] " Sergey Dyasli 2020-01-10 14:41 ` kbuild test robot 2020-01-10 14:41 ` kbuild test robot 2020-01-10 14:41 ` [Xen-devel] " kbuild test robot 2020-01-11 5:21 ` kbuild test robot 2020-01-11 5:21 ` kbuild test robot 2020-01-11 5:21 ` [Xen-devel] " kbuild test robot 2020-01-15 10:54 ` Sergey Dyasli 2020-01-15 10:54 ` [Xen-devel] " Sergey Dyasli 2020-01-15 10:54 ` Sergey Dyasli 2020-01-15 11:09 ` Jürgen Groß 2020-01-15 11:09 ` [Xen-devel] " Jürgen Groß 2020-01-15 16:32 ` Sergey Dyasli 2020-01-15 16:32 ` [Xen-devel] " Sergey Dyasli 2020-01-15 16:32 ` Sergey Dyasli 2020-01-16 7:54 ` Jürgen Groß 2020-01-16 7:54 ` [Xen-devel] " Jürgen Groß 2020-01-08 15:20 ` [PATCH v1 2/4] x86/xen: add basic KASAN support for PV kernel Sergey Dyasli 2020-01-08 15:20 ` [Xen-devel] " Sergey Dyasli 2020-01-09 9:15 ` Jürgen Groß [this message] 2020-01-09 9:15 ` Jürgen Groß 2020-01-10 11:07 ` Sergey Dyasli 2020-01-10 11:07 ` [Xen-devel] " Sergey Dyasli 2020-01-10 11:07 ` Sergey Dyasli 2020-01-09 23:27 ` Boris Ostrovsky 2020-01-09 23:27 ` [Xen-devel] " Boris Ostrovsky 2020-01-10 11:46 ` Sergey Dyasli 2020-01-10 11:46 ` [Xen-devel] " Sergey Dyasli 2020-01-10 11:46 ` Sergey Dyasli 2020-01-10 13:05 ` kbuild test robot 2020-01-10 13:05 ` kbuild test robot 2020-01-10 13:05 ` [Xen-devel] " kbuild test robot 2020-01-10 17:19 ` kbuild test robot 2020-01-10 17:19 ` kbuild test robot 2020-01-10 17:19 ` [Xen-devel] " kbuild test robot 2020-01-08 15:20 ` [PATCH v1 3/4] xen: teach KASAN about grant tables Sergey Dyasli 2020-01-08 15:20 ` [Xen-devel] " Sergey Dyasli 2020-01-08 15:21 ` [PATCH v1 4/4] xen/netback: Fix grant copy across page boundary with KASAN Sergey Dyasli 2020-01-08 15:21 ` [Xen-devel] " Sergey Dyasli 2020-01-09 10:33 ` Vlastimil Babka 2020-01-09 10:33 ` [Xen-devel] " Vlastimil Babka 2020-01-15 11:02 ` Sergey Dyasli 2020-01-15 11:02 ` [Xen-devel] " Sergey Dyasli 2020-01-15 11:02 ` Sergey Dyasli 2020-01-09 13:36 ` Paul Durrant 2020-01-09 13:36 ` [Xen-devel] " Paul Durrant 2020-01-09 13:36 ` Paul Durrant 2020-01-10 14:27 ` Sergey Dyasli 2020-01-10 14:27 ` [Xen-devel] " Sergey Dyasli 2020-01-10 14:27 ` Sergey Dyasli
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=0c968669-2b21-b772-dba8-f674057bd6e7@suse.com \ --to=jgross@suse.com \ --cc=akpm@linux-foundation.org \ --cc=aryabinin@virtuozzo.com \ --cc=boris.ostrovsky@oracle.com \ --cc=dvyukov@google.com \ --cc=george.dunlap@citrix.com \ --cc=glider@google.com \ --cc=kasan-dev@googlegroups.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=ross.lagerwall@citrix.com \ --cc=sergey.dyasli@citrix.com \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xen.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.