From: Will Deacon <will.deacon@arm.com>
To: Pavel Tatashin <pasha.tatashin@oracle.com>
Cc: linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
linux-s390@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
x86@kernel.org, kasan-dev@googlegroups.com,
borntraeger@de.ibm.com, heiko.carstens@de.ibm.com,
davem@davemloft.net, willy@infradead.org,
Michal Hocko <mhocko@kernel.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
catalin.marinas@arm.com, sam@ravnborg.org,
mgorman@techsingularity.net,
Steve Sistare <steven.sistare@oracle.com>,
daniel.m.jordan@oracle.com, bob.picco@oracle.com
Subject: Re: [PATCH v11 7/9] arm64/kasan: add and use kasan_map_populate()
Date: Fri, 13 Oct 2017 16:44:26 +0100 [thread overview]
Message-ID: <20171013154426.GC4746@arm.com> (raw)
In-Reply-To: <CAOAebxv4h+8ej6JA_DZbXaNV5JsAk4MbcCLf1+2RvwKGF2+MxQ@mail.gmail.com>
Hi Pavel,
On Fri, Oct 13, 2017 at 11:09:41AM -0400, Pavel Tatashin wrote:
> > It shouldn't be difficult to use section mappings with my patch, I just
> > don't really see the need to try to optimise TLB pressure when you're
> > running with KASAN enabled which already has something like a 3x slowdown
> > afaik. If it ends up being a big deal, we can always do that later, but
> > my main aim here is to divorce kasan from vmemmap because they should be
> > completely unrelated.
>
> Yes, I understand that kasan makes system slow, but my point is why
> make it even slower? However, I am OK adding your patch to the series,
> BTW, symmetric changes will be needed for x86 as well sometime later.
>
> >
> > This certainly doesn't sound right; mapping the shadow with pages shouldn't
> > lead to problems. I also can't seem to reproduce this myself -- could you
> > share your full .config and a pointer to the git tree that you're using,
> > please?
>
> Config is attached. I am using my patch series + your patch + today's
> clone from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Great, I hit the same problem with your .config. It might actually be
CONFIG_DEBUG_MEMORY_INIT which does it.
> Also, in a separate e-mail i sent out the qemu arguments.
>
> >
> >> I feel, this patch requires more work, and I am troubled with using
> >> base pages instead of large pages.
> >
> > I'm happy to try fixing this, because I think splitting up kasan and vmemmap
> > is the right thing to do here.
>
> Thank you very much.
Thanks for sharing the .config and tree. It looks like the problem is that
kimg_shadow_start and kimg_shadow_end are not page-aligned. Whilst I fix
them up in kasan_map_populate, they remain unaligned when passed to
kasan_populate_zero_shadow, which confuses the loop termination conditions
in e.g. zero_pte_populate and the shadow isn't configured properly.
Fixup diff below; please merge in with my original patch.
Will
--->8
diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index b922826d9908..207b1acb823a 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -146,7 +146,7 @@ asmlinkage void __init kasan_early_init(void)
static void __init kasan_map_populate(unsigned long start, unsigned long end,
int node)
{
- kasan_pgd_populate(start & PAGE_MASK, PAGE_ALIGN(end), node, false);
+ kasan_pgd_populate(start, end, node, false);
}
/*
@@ -183,8 +183,8 @@ void __init kasan_init(void)
struct memblock_region *reg;
int i;
- kimg_shadow_start = (u64)kasan_mem_to_shadow(_text);
- kimg_shadow_end = (u64)kasan_mem_to_shadow(_end);
+ kimg_shadow_start = (u64)kasan_mem_to_shadow(_text) & PAGE_MASK;
+ kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(_end));
mod_shadow_start = (u64)kasan_mem_to_shadow((void *)MODULES_VADDR);
mod_shadow_end = (u64)kasan_mem_to_shadow((void *)MODULES_END);
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v11 7/9] arm64/kasan: add and use kasan_map_populate()
Date: Fri, 13 Oct 2017 15:44:26 +0000 [thread overview]
Message-ID: <20171013154426.GC4746@arm.com> (raw)
In-Reply-To: <CAOAebxv4h+8ej6JA_DZbXaNV5JsAk4MbcCLf1+2RvwKGF2+MxQ@mail.gmail.com>
Hi Pavel,
On Fri, Oct 13, 2017 at 11:09:41AM -0400, Pavel Tatashin wrote:
> > It shouldn't be difficult to use section mappings with my patch, I just
> > don't really see the need to try to optimise TLB pressure when you're
> > running with KASAN enabled which already has something like a 3x slowdown
> > afaik. If it ends up being a big deal, we can always do that later, but
> > my main aim here is to divorce kasan from vmemmap because they should be
> > completely unrelated.
>
> Yes, I understand that kasan makes system slow, but my point is why
> make it even slower? However, I am OK adding your patch to the series,
> BTW, symmetric changes will be needed for x86 as well sometime later.
>
> >
> > This certainly doesn't sound right; mapping the shadow with pages shouldn't
> > lead to problems. I also can't seem to reproduce this myself -- could you
> > share your full .config and a pointer to the git tree that you're using,
> > please?
>
> Config is attached. I am using my patch series + your patch + today's
> clone from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Great, I hit the same problem with your .config. It might actually be
CONFIG_DEBUG_MEMORY_INIT which does it.
> Also, in a separate e-mail i sent out the qemu arguments.
>
> >
> >> I feel, this patch requires more work, and I am troubled with using
> >> base pages instead of large pages.
> >
> > I'm happy to try fixing this, because I think splitting up kasan and vmemmap
> > is the right thing to do here.
>
> Thank you very much.
Thanks for sharing the .config and tree. It looks like the problem is that
kimg_shadow_start and kimg_shadow_end are not page-aligned. Whilst I fix
them up in kasan_map_populate, they remain unaligned when passed to
kasan_populate_zero_shadow, which confuses the loop termination conditions
in e.g. zero_pte_populate and the shadow isn't configured properly.
Fixup diff below; please merge in with my original patch.
Will
--->8
diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index b922826d9908..207b1acb823a 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -146,7 +146,7 @@ asmlinkage void __init kasan_early_init(void)
static void __init kasan_map_populate(unsigned long start, unsigned long end,
int node)
{
- kasan_pgd_populate(start & PAGE_MASK, PAGE_ALIGN(end), node, false);
+ kasan_pgd_populate(start, end, node, false);
}
/*
@@ -183,8 +183,8 @@ void __init kasan_init(void)
struct memblock_region *reg;
int i;
- kimg_shadow_start = (u64)kasan_mem_to_shadow(_text);
- kimg_shadow_end = (u64)kasan_mem_to_shadow(_end);
+ kimg_shadow_start = (u64)kasan_mem_to_shadow(_text) & PAGE_MASK;
+ kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(_end));
mod_shadow_start = (u64)kasan_mem_to_shadow((void *)MODULES_VADDR);
mod_shadow_end = (u64)kasan_mem_to_shadow((void *)MODULES_END);
WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v11 7/9] arm64/kasan: add and use kasan_map_populate()
Date: Fri, 13 Oct 2017 16:44:26 +0100 [thread overview]
Message-ID: <20171013154426.GC4746@arm.com> (raw)
In-Reply-To: <CAOAebxv4h+8ej6JA_DZbXaNV5JsAk4MbcCLf1+2RvwKGF2+MxQ@mail.gmail.com>
Hi Pavel,
On Fri, Oct 13, 2017 at 11:09:41AM -0400, Pavel Tatashin wrote:
> > It shouldn't be difficult to use section mappings with my patch, I just
> > don't really see the need to try to optimise TLB pressure when you're
> > running with KASAN enabled which already has something like a 3x slowdown
> > afaik. If it ends up being a big deal, we can always do that later, but
> > my main aim here is to divorce kasan from vmemmap because they should be
> > completely unrelated.
>
> Yes, I understand that kasan makes system slow, but my point is why
> make it even slower? However, I am OK adding your patch to the series,
> BTW, symmetric changes will be needed for x86 as well sometime later.
>
> >
> > This certainly doesn't sound right; mapping the shadow with pages shouldn't
> > lead to problems. I also can't seem to reproduce this myself -- could you
> > share your full .config and a pointer to the git tree that you're using,
> > please?
>
> Config is attached. I am using my patch series + your patch + today's
> clone from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Great, I hit the same problem with your .config. It might actually be
CONFIG_DEBUG_MEMORY_INIT which does it.
> Also, in a separate e-mail i sent out the qemu arguments.
>
> >
> >> I feel, this patch requires more work, and I am troubled with using
> >> base pages instead of large pages.
> >
> > I'm happy to try fixing this, because I think splitting up kasan and vmemmap
> > is the right thing to do here.
>
> Thank you very much.
Thanks for sharing the .config and tree. It looks like the problem is that
kimg_shadow_start and kimg_shadow_end are not page-aligned. Whilst I fix
them up in kasan_map_populate, they remain unaligned when passed to
kasan_populate_zero_shadow, which confuses the loop termination conditions
in e.g. zero_pte_populate and the shadow isn't configured properly.
Fixup diff below; please merge in with my original patch.
Will
--->8
diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index b922826d9908..207b1acb823a 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -146,7 +146,7 @@ asmlinkage void __init kasan_early_init(void)
static void __init kasan_map_populate(unsigned long start, unsigned long end,
int node)
{
- kasan_pgd_populate(start & PAGE_MASK, PAGE_ALIGN(end), node, false);
+ kasan_pgd_populate(start, end, node, false);
}
/*
@@ -183,8 +183,8 @@ void __init kasan_init(void)
struct memblock_region *reg;
int i;
- kimg_shadow_start = (u64)kasan_mem_to_shadow(_text);
- kimg_shadow_end = (u64)kasan_mem_to_shadow(_end);
+ kimg_shadow_start = (u64)kasan_mem_to_shadow(_text) & PAGE_MASK;
+ kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(_end));
mod_shadow_start = (u64)kasan_mem_to_shadow((void *)MODULES_VADDR);
mod_shadow_end = (u64)kasan_mem_to_shadow((void *)MODULES_END);
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: Pavel Tatashin <pasha.tatashin@oracle.com>
Cc: linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
linux-s390@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
x86@kernel.org, kasan-dev@googlegroups.com,
borntraeger@de.ibm.com, heiko.carstens@de.ibm.com,
davem@davemloft.net, willy@infradead.org,
Michal Hocko <mhocko@kernel.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
catalin.marinas@arm.com, sam@ravnborg.org,
mgorman@techsingularity.net,
Steve Sistare <steven.sistare@oracle.com>,
daniel.m.jordan@oracle.com, bob.picco@oracle.com
Subject: Re: [PATCH v11 7/9] arm64/kasan: add and use kasan_map_populate()
Date: Fri, 13 Oct 2017 16:44:26 +0100 [thread overview]
Message-ID: <20171013154426.GC4746@arm.com> (raw)
In-Reply-To: <CAOAebxv4h+8ej6JA_DZbXaNV5JsAk4MbcCLf1+2RvwKGF2+MxQ@mail.gmail.com>
Hi Pavel,
On Fri, Oct 13, 2017 at 11:09:41AM -0400, Pavel Tatashin wrote:
> > It shouldn't be difficult to use section mappings with my patch, I just
> > don't really see the need to try to optimise TLB pressure when you're
> > running with KASAN enabled which already has something like a 3x slowdown
> > afaik. If it ends up being a big deal, we can always do that later, but
> > my main aim here is to divorce kasan from vmemmap because they should be
> > completely unrelated.
>
> Yes, I understand that kasan makes system slow, but my point is why
> make it even slower? However, I am OK adding your patch to the series,
> BTW, symmetric changes will be needed for x86 as well sometime later.
>
> >
> > This certainly doesn't sound right; mapping the shadow with pages shouldn't
> > lead to problems. I also can't seem to reproduce this myself -- could you
> > share your full .config and a pointer to the git tree that you're using,
> > please?
>
> Config is attached. I am using my patch series + your patch + today's
> clone from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Great, I hit the same problem with your .config. It might actually be
CONFIG_DEBUG_MEMORY_INIT which does it.
> Also, in a separate e-mail i sent out the qemu arguments.
>
> >
> >> I feel, this patch requires more work, and I am troubled with using
> >> base pages instead of large pages.
> >
> > I'm happy to try fixing this, because I think splitting up kasan and vmemmap
> > is the right thing to do here.
>
> Thank you very much.
Thanks for sharing the .config and tree. It looks like the problem is that
kimg_shadow_start and kimg_shadow_end are not page-aligned. Whilst I fix
them up in kasan_map_populate, they remain unaligned when passed to
kasan_populate_zero_shadow, which confuses the loop termination conditions
in e.g. zero_pte_populate and the shadow isn't configured properly.
Fixup diff below; please merge in with my original patch.
Will
--->8
diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index b922826d9908..207b1acb823a 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -146,7 +146,7 @@ asmlinkage void __init kasan_early_init(void)
static void __init kasan_map_populate(unsigned long start, unsigned long end,
int node)
{
- kasan_pgd_populate(start & PAGE_MASK, PAGE_ALIGN(end), node, false);
+ kasan_pgd_populate(start, end, node, false);
}
/*
@@ -183,8 +183,8 @@ void __init kasan_init(void)
struct memblock_region *reg;
int i;
- kimg_shadow_start = (u64)kasan_mem_to_shadow(_text);
- kimg_shadow_end = (u64)kasan_mem_to_shadow(_end);
+ kimg_shadow_start = (u64)kasan_mem_to_shadow(_text) & PAGE_MASK;
+ kimg_shadow_end = PAGE_ALIGN((u64)kasan_mem_to_shadow(_end));
mod_shadow_start = (u64)kasan_mem_to_shadow((void *)MODULES_VADDR);
mod_shadow_end = (u64)kasan_mem_to_shadow((void *)MODULES_END);
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-10-13 15:44 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-09 22:19 [PATCH v11 0/9] complete deferred page initialization Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 1/9] x86/mm: setting fields in deferred pages Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 2/9] sparc64/mm: " Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 3/9] sparc64: simplify vmemmap_populate Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 4/9] mm: defining memblock_virt_alloc_try_nid_raw Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 5/9] mm: zero reserved and unavailable struct pages Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-10 13:44 ` Michal Hocko
2017-10-10 13:44 ` Michal Hocko
2017-10-10 13:44 ` Michal Hocko
2017-10-10 13:44 ` Michal Hocko
2017-10-10 14:09 ` Michal Hocko
2017-10-10 14:09 ` Michal Hocko
2017-10-10 14:09 ` Michal Hocko
2017-10-10 14:09 ` Michal Hocko
2017-10-10 14:30 ` Pavel Tatashin
2017-10-10 14:30 ` Pavel Tatashin
2017-10-10 14:30 ` Pavel Tatashin
2017-10-10 14:30 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 6/9] x86/kasan: add and use kasan_map_populate() Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 7/9] arm64/kasan: " Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-10 15:56 ` Will Deacon
2017-10-10 15:56 ` Will Deacon
2017-10-10 15:56 ` Will Deacon
2017-10-10 15:56 ` Will Deacon
2017-10-10 17:07 ` Pavel Tatashin
2017-10-10 17:07 ` Pavel Tatashin
2017-10-10 17:07 ` Pavel Tatashin
2017-10-10 17:07 ` Pavel Tatashin
2017-10-10 17:10 ` Will Deacon
2017-10-10 17:10 ` Will Deacon
2017-10-10 17:10 ` Will Deacon
2017-10-10 17:10 ` Will Deacon
2017-10-10 17:41 ` Pavel Tatashin
2017-10-10 17:41 ` Pavel Tatashin
2017-10-10 17:41 ` Pavel Tatashin
2017-10-10 17:41 ` Pavel Tatashin
2017-10-13 14:10 ` Pavel Tatashin
2017-10-13 14:10 ` Pavel Tatashin
2017-10-13 14:10 ` Pavel Tatashin
2017-10-13 14:10 ` Pavel Tatashin
2017-10-13 14:43 ` Will Deacon
2017-10-13 14:43 ` Will Deacon
2017-10-13 14:43 ` Will Deacon
2017-10-13 14:43 ` Will Deacon
2017-10-13 14:56 ` Mark Rutland
2017-10-13 14:56 ` Mark Rutland
2017-10-13 14:56 ` Mark Rutland
2017-10-13 14:56 ` Mark Rutland
2017-10-13 15:02 ` Pavel Tatashin
2017-10-13 15:02 ` Pavel Tatashin
2017-10-13 15:02 ` Pavel Tatashin
2017-10-13 15:02 ` Pavel Tatashin
2017-10-13 15:09 ` Pavel Tatashin
2017-10-13 15:09 ` Pavel Tatashin
2017-10-13 15:09 ` Pavel Tatashin
2017-10-13 15:34 ` Pavel Tatashin
2017-10-13 15:34 ` Pavel Tatashin
2017-10-13 15:34 ` Pavel Tatashin
2017-10-13 15:34 ` Pavel Tatashin
2017-10-13 15:44 ` Will Deacon [this message]
2017-10-13 15:44 ` Will Deacon
2017-10-13 15:44 ` Will Deacon
2017-10-13 15:44 ` Will Deacon
2017-10-13 15:54 ` Pavel Tatashin
2017-10-13 15:54 ` Pavel Tatashin
2017-10-13 15:54 ` Pavel Tatashin
2017-10-13 15:54 ` Pavel Tatashin
2017-10-13 16:00 ` Pavel Tatashin
2017-10-13 16:00 ` Pavel Tatashin
2017-10-13 16:00 ` Pavel Tatashin
2017-10-13 16:00 ` Pavel Tatashin
2017-10-13 16:18 ` Will Deacon
2017-10-13 16:18 ` Will Deacon
2017-10-13 16:18 ` Will Deacon
2017-10-13 16:18 ` Will Deacon
2017-10-09 22:19 ` [PATCH v11 8/9] mm: stop zeroing memory during allocation in vmemmap Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` [PATCH v11 9/9] sparc64: optimized struct page zeroing Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-09 22:19 ` Pavel Tatashin
2017-10-10 14:15 ` [PATCH v11 0/9] complete deferred page initialization Michal Hocko
2017-10-10 14:15 ` Michal Hocko
2017-10-10 14:15 ` Michal Hocko
2017-10-10 14:15 ` Michal Hocko
2017-10-10 17:19 ` Pavel Tatashin
2017-10-10 17:19 ` Pavel Tatashin
2017-10-10 17:19 ` Pavel Tatashin
2017-10-10 17:19 ` Pavel Tatashin
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=20171013154426.GC4746@arm.com \
--to=will.deacon@arm.com \
--cc=ard.biesheuvel@linaro.org \
--cc=bob.picco@oracle.com \
--cc=borntraeger@de.ibm.com \
--cc=catalin.marinas@arm.com \
--cc=daniel.m.jordan@oracle.com \
--cc=davem@davemloft.net \
--cc=heiko.carstens@de.ibm.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=pasha.tatashin@oracle.com \
--cc=sam@ravnborg.org \
--cc=sparclinux@vger.kernel.org \
--cc=steven.sistare@oracle.com \
--cc=willy@infradead.org \
--cc=x86@kernel.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: link
Be 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.