From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 08/10] mm/kasan: Switch to using __pa_symbol and lm_alias
Date: Tue, 6 Dec 2016 17:25:12 +0000 [thread overview]
Message-ID: <20161206172512.GF24177@leverpostej> (raw)
In-Reply-To: <2f3ac043-c4cc-5c5a-8ac7-1396b6bb193f@virtuozzo.com>
On Thu, Dec 01, 2016 at 02:36:05PM +0300, Andrey Ryabinin wrote:
> On 11/29/2016 09:55 PM, Laura Abbott wrote:
> > __pa_symbol is the correct API to find the physical address of symbols.
> > Switch to it to allow for debugging APIs to work correctly.
>
> But __pa() is correct for symbols. I see how __pa_symbol() might be a little
> faster than __pa(), but there is nothing wrong in using __pa() on symbols.
While it's true today that __pa() works on symbols, this is for
pragmatic reasons (allowing existing code to work until it is all
cleaned up), and __pa_symbol() is the correct API to use.
Relying on this means that __pa() can't be optimised for the (vastly
common) case of translating linear map addresses.
Consistent use of __pa_symbol() will allow for subsequent optimisation
of __pa() in the common case, in adition to being necessary for arm64's
DEBUG_VIRTUAL.
> > Other functions such as p*d_populate may call __pa internally.
> > Ensure that the address passed is in the linear region by calling
> > lm_alias.
>
> Why it should be linear mapping address? __pa() translates kernel
> image address just fine.
As above, while that's true today, but is something that we wish to
change.
> Generated code is probably worse too.
Even if that is the case, given this is code run once at boot on a debug
build, I think it's outweighed by the gain from DEBUG_VIRTUAL, and as a
step towards optimising __pa().
Thanks,
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Laura Abbott <labbott@redhat.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Will Deacon <will.deacon@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
linux-arm-kernel@lists.infradead.org,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
kasan-dev@googlegroups.com
Subject: Re: [PATCHv4 08/10] mm/kasan: Switch to using __pa_symbol and lm_alias
Date: Tue, 6 Dec 2016 17:25:12 +0000 [thread overview]
Message-ID: <20161206172512.GF24177@leverpostej> (raw)
In-Reply-To: <2f3ac043-c4cc-5c5a-8ac7-1396b6bb193f@virtuozzo.com>
On Thu, Dec 01, 2016 at 02:36:05PM +0300, Andrey Ryabinin wrote:
> On 11/29/2016 09:55 PM, Laura Abbott wrote:
> > __pa_symbol is the correct API to find the physical address of symbols.
> > Switch to it to allow for debugging APIs to work correctly.
>
> But __pa() is correct for symbols. I see how __pa_symbol() might be a little
> faster than __pa(), but there is nothing wrong in using __pa() on symbols.
While it's true today that __pa() works on symbols, this is for
pragmatic reasons (allowing existing code to work until it is all
cleaned up), and __pa_symbol() is the correct API to use.
Relying on this means that __pa() can't be optimised for the (vastly
common) case of translating linear map addresses.
Consistent use of __pa_symbol() will allow for subsequent optimisation
of __pa() in the common case, in adition to being necessary for arm64's
DEBUG_VIRTUAL.
> > Other functions such as p*d_populate may call __pa internally.
> > Ensure that the address passed is in the linear region by calling
> > lm_alias.
>
> Why it should be linear mapping address? __pa() translates kernel
> image address just fine.
As above, while that's true today, but is something that we wish to
change.
> Generated code is probably worse too.
Even if that is the case, given this is code run once at boot on a debug
build, I think it's outweighed by the gain from DEBUG_VIRTUAL, and as a
step towards optimising __pa().
Thanks,
Mark.
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Laura Abbott <labbott@redhat.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Will Deacon <will.deacon@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
linux-arm-kernel@lists.infradead.org,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
kasan-dev@googlegroups.com
Subject: Re: [PATCHv4 08/10] mm/kasan: Switch to using __pa_symbol and lm_alias
Date: Tue, 6 Dec 2016 17:25:12 +0000 [thread overview]
Message-ID: <20161206172512.GF24177@leverpostej> (raw)
In-Reply-To: <2f3ac043-c4cc-5c5a-8ac7-1396b6bb193f@virtuozzo.com>
On Thu, Dec 01, 2016 at 02:36:05PM +0300, Andrey Ryabinin wrote:
> On 11/29/2016 09:55 PM, Laura Abbott wrote:
> > __pa_symbol is the correct API to find the physical address of symbols.
> > Switch to it to allow for debugging APIs to work correctly.
>
> But __pa() is correct for symbols. I see how __pa_symbol() might be a little
> faster than __pa(), but there is nothing wrong in using __pa() on symbols.
While it's true today that __pa() works on symbols, this is for
pragmatic reasons (allowing existing code to work until it is all
cleaned up), and __pa_symbol() is the correct API to use.
Relying on this means that __pa() can't be optimised for the (vastly
common) case of translating linear map addresses.
Consistent use of __pa_symbol() will allow for subsequent optimisation
of __pa() in the common case, in adition to being necessary for arm64's
DEBUG_VIRTUAL.
> > Other functions such as p*d_populate may call __pa internally.
> > Ensure that the address passed is in the linear region by calling
> > lm_alias.
>
> Why it should be linear mapping address? __pa() translates kernel
> image address just fine.
As above, while that's true today, but is something that we wish to
change.
> Generated code is probably worse too.
Even if that is the case, given this is code run once at boot on a debug
build, I think it's outweighed by the gain from DEBUG_VIRTUAL, and as a
step towards optimising __pa().
Thanks,
Mark.
next prev parent reply other threads:[~2016-12-06 17:25 UTC|newest]
Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-29 18:55 [PATCHv4 00/10] CONFIG_DEBUG_VIRTUAL for arm64 Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 01/10] lib/Kconfig.debug: Add ARCH_HAS_DEBUG_VIRTUAL Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 02/10] mm/cma: Cleanup highmem check Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 03/10] arm64: Move some macros under #ifndef __ASSEMBLY__ Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 04/10] arm64: Add cast for virt_to_pfn Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 05/10] arm64: Use __pa_symbol for kernel symbols Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-30 17:17 ` Catalin Marinas
2016-11-30 17:17 ` Catalin Marinas
2016-11-30 17:17 ` Catalin Marinas
2016-12-01 12:04 ` James Morse
2016-12-01 12:04 ` James Morse
2016-12-01 12:04 ` James Morse
2016-12-06 16:08 ` Mark Rutland
2016-12-06 16:08 ` Mark Rutland
2016-12-06 16:08 ` Mark Rutland
2016-12-06 0:50 ` Florian Fainelli
2016-12-06 0:50 ` Florian Fainelli
2016-12-06 0:50 ` Florian Fainelli
2016-12-06 11:46 ` Catalin Marinas
2016-12-06 11:46 ` Catalin Marinas
2016-12-06 11:46 ` Catalin Marinas
2016-12-06 17:02 ` Mark Rutland
2016-12-06 17:02 ` Mark Rutland
2016-12-06 17:02 ` Mark Rutland
2016-12-06 19:12 ` Laura Abbott
2016-12-06 19:12 ` Laura Abbott
2016-12-06 19:12 ` Laura Abbott
2016-11-29 18:55 ` [PATCHv4 06/10] xen: Switch to using __pa_symbol Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 22:26 ` Boris Ostrovsky
2016-11-29 22:26 ` Boris Ostrovsky
2016-11-29 22:26 ` Boris Ostrovsky
2016-11-29 22:42 ` Laura Abbott
2016-11-29 22:42 ` Laura Abbott
2016-11-29 22:42 ` Laura Abbott
2016-11-29 22:42 ` Laura Abbott
2016-11-29 22:26 ` Boris Ostrovsky
2016-11-29 18:55 ` [PATCHv4 07/10] kexec: Switch to __pa_symbol Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-12-01 2:41 ` Dave Young
2016-12-01 2:41 ` Dave Young
2016-12-01 2:41 ` Dave Young
2016-12-01 2:41 ` Dave Young
2016-12-01 3:13 ` Eric W. Biederman
2016-12-01 3:13 ` Eric W. Biederman
2016-12-01 3:13 ` Eric W. Biederman
2016-12-01 3:13 ` Eric W. Biederman
2016-12-01 4:27 ` Dave Young
2016-12-01 4:27 ` Dave Young
2016-12-01 4:27 ` Dave Young
2016-12-01 4:27 ` Dave Young
2016-11-29 18:55 ` [PATCHv4 08/10] mm/kasan: Switch to using __pa_symbol and lm_alias Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-12-01 11:36 ` Andrey Ryabinin
2016-12-01 11:36 ` Andrey Ryabinin
2016-12-01 11:36 ` Andrey Ryabinin
2016-12-01 19:10 ` Laura Abbott
2016-12-01 19:10 ` Laura Abbott
2016-12-01 19:10 ` Laura Abbott
2016-12-06 17:25 ` Mark Rutland [this message]
2016-12-06 17:25 ` Mark Rutland
2016-12-06 17:25 ` Mark Rutland
2016-12-06 17:44 ` Mark Rutland
2016-12-06 17:44 ` Mark Rutland
2016-12-06 17:44 ` Mark Rutland
2016-12-06 19:18 ` Mark Rutland
2016-12-06 19:18 ` Mark Rutland
2016-12-06 19:18 ` Mark Rutland
2016-11-29 18:55 ` [PATCHv4 09/10] mm/usercopy: Switch to using lm_alias Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 19:39 ` Kees Cook
2016-11-29 19:39 ` Kees Cook
2016-11-29 19:39 ` Kees Cook
2016-12-06 18:18 ` Mark Rutland
2016-12-06 18:18 ` Mark Rutland
2016-12-06 18:18 ` Mark Rutland
2016-12-06 20:10 ` Kees Cook
2016-12-06 20:10 ` Kees Cook
2016-12-06 20:10 ` Kees Cook
2016-12-07 13:57 ` Mark Rutland
2016-12-07 13:57 ` Mark Rutland
2016-12-07 13:57 ` Mark Rutland
2016-12-06 18:20 ` Mark Rutland
2016-12-06 18:20 ` Mark Rutland
2016-12-06 18:20 ` Mark Rutland
2016-11-29 18:55 ` [PATCHv4 10/10] arm64: Add support for CONFIG_DEBUG_VIRTUAL Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-11-29 18:55 ` Laura Abbott
2016-12-06 18:58 ` Mark Rutland
2016-12-06 18:58 ` Mark Rutland
2016-12-06 18:58 ` Mark Rutland
2016-12-06 19:53 ` [PATCH 0/3] ARM: " Florian Fainelli
2016-12-06 19:53 ` Florian Fainelli
2016-12-06 19:53 ` [PATCH 1/3] ARM: Define KERNEL_START and KERNEL_END Florian Fainelli
2016-12-06 19:53 ` Florian Fainelli
2016-12-06 22:43 ` Chris Brandt
2016-12-06 22:43 ` Chris Brandt
2016-12-06 22:47 ` Florian Fainelli
2016-12-06 22:47 ` Florian Fainelli
2016-12-07 6:11 ` kbuild test robot
2016-12-07 6:11 ` kbuild test robot
2016-12-06 19:53 ` [PATCH 2/3] ARM: Utilize __pa_symbol in lieu of __pa Florian Fainelli
2016-12-06 19:53 ` Florian Fainelli
2016-12-06 19:53 ` [PATCH 3/3] ARM: Add support for CONFIG_DEBUG_VIRTUAL Florian Fainelli
2016-12-06 19:53 ` Florian Fainelli
2016-12-06 20:42 ` Florian Fainelli
2016-12-06 20:42 ` Florian Fainelli
2016-12-07 2:00 ` Laura Abbott
2016-12-07 2:00 ` Laura Abbott
2016-12-07 2:24 ` Florian Fainelli
2016-12-07 2:24 ` Florian Fainelli
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=20161206172512.GF24177@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.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: 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.