All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	David Hildenbrand <david@redhat.com>,
	Donald Dutile <ddutile@redhat.com>,
	Eric Chanudet <echanude@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Itaru Kitayama <itaru.kitayama@fujitsu.com>
Subject: Re: [PATCH v2 3/4] arm64: mm: Don't remap pgtables for allocate vs populate
Date: Thu, 11 Apr 2024 16:25:37 +0100	[thread overview]
Message-ID: <ZhgA8WDkZDbYIDHg@FVFF77S0Q05N> (raw)
In-Reply-To: <d9582c0e-af24-46a1-9c3e-b9dc68af20d8@arm.com>

On Thu, Apr 11, 2024 at 03:57:04PM +0100, Ryan Roberts wrote:
> On 11/04/2024 15:48, Mark Rutland wrote:
> > On Thu, Apr 11, 2024 at 02:37:49PM +0100, Ryan Roberts wrote:
> >> On 11/04/2024 14:02, Mark Rutland wrote:
> >>> but the logic remains fairly simple, and I suspect the overhead for late
> >>> allocations might not matter since the bulk of late changes are non-allocating.
> >>
> >> Its just the fixmap overhead that remains...
> > 
> > True; my thinking there is that almost all of the later changes are for smaller
> > ranges than the linear map (~10s of MB vs GBs in your test data), so I'd expect
> > the overhead of those to be dominated by the cost of mappin the linear map.
> > 
> > The only big exception is arch_add_memory(), but memory hotplug is incredibly
> > rare, and we're not making it massively slower than it already was...
> 
> What about something like coco guest mem (or whatever its called). Isn't that
> scrubbed out of the linear map? So if a coco VM is started with GBs of memory,
> could that be a real case we want to optimize?

I think that's already handled -- the functions we have to carve portions out
of the linear map use apply_to_page_range(), which doesn't use the fixmap. See
set_memory_*() and set_direct_map_*() in arch/arm64/mm/pageattr.c.

Note that apply_to_page_range() does what its name implies and *only* handles
mappings at page granularity. Hence not using that for
mark_linear_text_alias_ro() and mark_rodata_ro() which need to be able to
handle blocks.

Mark.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	David Hildenbrand <david@redhat.com>,
	Donald Dutile <ddutile@redhat.com>,
	Eric Chanudet <echanude@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Itaru Kitayama <itaru.kitayama@fujitsu.com>
Subject: Re: [PATCH v2 3/4] arm64: mm: Don't remap pgtables for allocate vs populate
Date: Thu, 11 Apr 2024 16:25:37 +0100	[thread overview]
Message-ID: <ZhgA8WDkZDbYIDHg@FVFF77S0Q05N> (raw)
In-Reply-To: <d9582c0e-af24-46a1-9c3e-b9dc68af20d8@arm.com>

On Thu, Apr 11, 2024 at 03:57:04PM +0100, Ryan Roberts wrote:
> On 11/04/2024 15:48, Mark Rutland wrote:
> > On Thu, Apr 11, 2024 at 02:37:49PM +0100, Ryan Roberts wrote:
> >> On 11/04/2024 14:02, Mark Rutland wrote:
> >>> but the logic remains fairly simple, and I suspect the overhead for late
> >>> allocations might not matter since the bulk of late changes are non-allocating.
> >>
> >> Its just the fixmap overhead that remains...
> > 
> > True; my thinking there is that almost all of the later changes are for smaller
> > ranges than the linear map (~10s of MB vs GBs in your test data), so I'd expect
> > the overhead of those to be dominated by the cost of mappin the linear map.
> > 
> > The only big exception is arch_add_memory(), but memory hotplug is incredibly
> > rare, and we're not making it massively slower than it already was...
> 
> What about something like coco guest mem (or whatever its called). Isn't that
> scrubbed out of the linear map? So if a coco VM is started with GBs of memory,
> could that be a real case we want to optimize?

I think that's already handled -- the functions we have to carve portions out
of the linear map use apply_to_page_range(), which doesn't use the fixmap. See
set_memory_*() and set_direct_map_*() in arch/arm64/mm/pageattr.c.

Note that apply_to_page_range() does what its name implies and *only* handles
mappings at page granularity. Hence not using that for
mark_linear_text_alias_ro() and mark_rodata_ro() which need to be able to
handle blocks.

Mark.

  reply	other threads:[~2024-04-11 15:25 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-04 14:33 [PATCH v2 0/4] Speed up boot with faster linear map creation Ryan Roberts
2024-04-04 14:33 ` Ryan Roberts
2024-04-04 14:33 ` [PATCH v2 1/4] arm64: mm: Don't remap pgtables per-cont(pte|pmd) block Ryan Roberts
2024-04-04 14:33   ` Ryan Roberts
2024-04-10  9:46   ` Mark Rutland
2024-04-10  9:46     ` Mark Rutland
2024-04-10 10:27     ` Ryan Roberts
2024-04-10 10:27       ` Ryan Roberts
2024-04-04 14:33 ` [PATCH v2 2/4] arm64: mm: Batch dsb and isb when populating pgtables Ryan Roberts
2024-04-04 14:33   ` Ryan Roberts
2024-04-10 10:06   ` Mark Rutland
2024-04-10 10:06     ` Mark Rutland
2024-04-10 10:25     ` Ryan Roberts
2024-04-10 10:25       ` Ryan Roberts
2024-04-10 11:06       ` Mark Rutland
2024-04-10 11:06         ` Mark Rutland
2024-04-04 14:33 ` [PATCH v2 3/4] arm64: mm: Don't remap pgtables for allocate vs populate Ryan Roberts
2024-04-04 14:33   ` Ryan Roberts
2024-04-11 13:02   ` Mark Rutland
2024-04-11 13:02     ` Mark Rutland
2024-04-11 13:37     ` Ryan Roberts
2024-04-11 13:37       ` Ryan Roberts
2024-04-11 14:48       ` Mark Rutland
2024-04-11 14:48         ` Mark Rutland
2024-04-11 14:57         ` Ryan Roberts
2024-04-11 14:57           ` Ryan Roberts
2024-04-11 15:25           ` Mark Rutland [this message]
2024-04-11 15:25             ` Mark Rutland
2024-04-11 15:37             ` Ryan Roberts
2024-04-11 15:37               ` Ryan Roberts
2024-04-12  7:53     ` Ryan Roberts
2024-04-12  7:53       ` Ryan Roberts
2024-04-12  9:25       ` Mark Rutland
2024-04-12  9:25         ` Mark Rutland
2024-04-04 14:33 ` [PATCH v2 4/4] arm64: mm: Lazily clear pte table mappings from fixmap Ryan Roberts
2024-04-04 14:33   ` Ryan Roberts
2024-04-11 13:24   ` Mark Rutland
2024-04-11 13:24     ` Mark Rutland
2024-04-11 13:39     ` Ryan Roberts
2024-04-11 13:39       ` Ryan Roberts
2024-04-05  7:39 ` [PATCH v2 0/4] Speed up boot with faster linear map creation Itaru Kitayama
2024-04-05  7:39   ` Itaru Kitayama
2024-04-06  8:32   ` Ryan Roberts
2024-04-06  8:32     ` Ryan Roberts
2024-04-06 10:31     ` Itaru Kitayama
2024-04-06 10:31       ` Itaru Kitayama
2024-04-08  7:30       ` Ryan Roberts
2024-04-08  7:30         ` Ryan Roberts
2024-04-09  0:10         ` Itaru Kitayama
2024-04-09  0:10           ` Itaru Kitayama
2024-04-09 10:04           ` Ryan Roberts
2024-04-09 10:04             ` Ryan Roberts
2024-04-09 10:13             ` Itaru Kitayama
2024-04-09 10:13               ` Itaru Kitayama
2024-04-09 11:22               ` David Hildenbrand
2024-04-09 11:22                 ` David Hildenbrand
2024-04-09 11:29                 ` David Hildenbrand
2024-04-09 11:29                   ` David Hildenbrand
2024-04-09 11:51                   ` David Hildenbrand
2024-04-09 11:51                     ` David Hildenbrand
2024-04-09 14:13                     ` Ryan Roberts
2024-04-09 14:13                       ` Ryan Roberts
2024-04-09 14:29                       ` David Hildenbrand
2024-04-09 14:29                         ` David Hildenbrand
2024-04-09 14:39                         ` Ryan Roberts
2024-04-09 14:39                           ` Ryan Roberts
2024-04-09 14:45                           ` David Hildenbrand
2024-04-09 14:45                             ` David Hildenbrand
2024-04-09 23:30                             ` Itaru Kitayama
2024-04-09 23:30                               ` Itaru Kitayama
2024-04-10  6:47                               ` Itaru Kitayama
2024-04-10  6:47                                 ` Itaru Kitayama
2024-04-10  7:10                                 ` David Hildenbrand
2024-04-10  7:10                                   ` David Hildenbrand
2024-04-10  7:37                                   ` Itaru Kitayama
2024-04-10  7:37                                     ` Itaru Kitayama
2024-04-10  7:45                                     ` David Hildenbrand
2024-04-10  7:45                                       ` David Hildenbrand

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=ZhgA8WDkZDbYIDHg@FVFF77S0Q05N \
    --to=mark.rutland@arm.com \
    --cc=ardb@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=david@redhat.com \
    --cc=ddutile@redhat.com \
    --cc=echanude@redhat.com \
    --cc=itaru.kitayama@fujitsu.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=will@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.