[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+fCnZd6O0_fc1U-D_i2shcF4Td-6389F3Q=fDkdYYXQupX1NA@mail.gmail.com>
Date: Sat, 22 Feb 2025 16:06:02 +0100
From: Andrey Konovalov <andreyknvl@...il.com>
To: Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>
Cc: kees@...nel.org, julian.stecklina@...erus-technology.de,
kevinloughlin@...gle.com, peterz@...radead.org, tglx@...utronix.de,
justinstitt@...gle.com, catalin.marinas@....com, wangkefeng.wang@...wei.com,
bhe@...hat.com, ryabinin.a.a@...il.com, kirill.shutemov@...ux.intel.com,
will@...nel.org, ardb@...nel.org, jason.andryuk@....com,
dave.hansen@...ux.intel.com, pasha.tatashin@...een.com,
guoweikang.kernel@...il.com, dwmw@...zon.co.uk, mark.rutland@....com,
broonie@...nel.org, apopple@...dia.com, bp@...en8.de, rppt@...nel.org,
kaleshsingh@...gle.com, richard.weiyang@...il.com, luto@...nel.org,
glider@...gle.com, pankaj.gupta@....com, pawan.kumar.gupta@...ux.intel.com,
kuan-ying.lee@...onical.com, tony.luck@...el.com, tj@...nel.org,
jgross@...e.com, dvyukov@...gle.com, baohua@...nel.org,
samuel.holland@...ive.com, dennis@...nel.org, akpm@...ux-foundation.org,
thomas.weissschuh@...utronix.de, surenb@...gle.com, kbingham@...nel.org,
ankita@...dia.com, nathan@...nel.org, ziy@...dia.com, xin@...or.com,
rafael.j.wysocki@...el.com, andriy.shevchenko@...ux.intel.com, cl@...ux.com,
jhubbard@...dia.com, hpa@...or.com, scott@...amperecomputing.com,
david@...hat.com, jan.kiszka@...mens.com, vincenzo.frascino@....com,
corbet@....net, maz@...nel.org, mingo@...hat.com, arnd@...db.de,
ytcoode@...il.com, xur@...gle.com, morbo@...gle.com,
thiago.bauermann@...aro.org, linux-doc@...r.kernel.org,
kasan-dev@...glegroups.com, linux-kernel@...r.kernel.org,
llvm@...ts.linux.dev, linux-mm@...ck.org,
linux-arm-kernel@...ts.infradead.org, x86@...nel.org
Subject: Re: [PATCH v2 01/14] kasan: sw_tags: Use arithmetic shift for shadow computation
On Fri, Feb 21, 2025 at 2:12 PM Maciej Wieczor-Retman
<maciej.wieczor-retman@...el.com> wrote:
>
> >Is there any reason we need this change for x86 SW_TAGS besides the
> >optimization benefits?
>
> I wanted to have the shadow memory boundries aligned properly, to not waste page
> table entries, so the memory map is more straight forward. This patch helps with
> that, I don't think it would have worked without it.
Ok, I see - let's add this info into the commit message then.
> >However, I just realized that this check is not entirely precise. When
> >doing the memory-to-shadow mapping, the memory address always has its
> >top byte set to 0xff: both the inlined compiler code and the outline
> >KASAN code do this
>
> Do you mean that non-canonical addresses passed to kasan_mem_to_shadow() will
> map to the same space that the canonical version would map to?
No, but non-canonical address are never passed to
kasan_mem_to_shadow(): KASAN always resets the tag before calling this
function.
> What does that? Does the compiler do something more than is in
> kasan_mem_to_shadow() when instrumenting functions?
Same for the compiler, it always untags the pointer first [1].
[1] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp#L922
> > Thus, the possible values a shadow address can
> >take are the result of the memory-to-shadow mapping applied to
> >[0xff00000000000000, 0xffffffffffffffff], not to the whole address
> >space. So we can make this check more precise.
>
> In case my question above didn't lead to this: what happens to the rest of the
> values if they get plugged into kasan_mem_to_shadow()?
We will get some invalid addresses. But this should never happen in
the first place.
Powered by blists - more mailing lists