From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "kirill.shutemov@linux.intel.com" <kirill.shutemov@linux.intel.com>
Cc: "debug@rivosinc.com" <debug@rivosinc.com>,
"luto@kernel.org" <luto@kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
"Liam.Howlett@oracle.com" <Liam.Howlett@oracle.com>,
"broonie@kernel.org" <broonie@kernel.org>,
"keescook@chromium.org" <keescook@chromium.org>,
"bp@alien8.de" <bp@alien8.de>,
"mingo@redhat.com" <mingo@redhat.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"peterz@infradead.org" <peterz@infradead.org>,
"hpa@zytor.com" <hpa@zytor.com>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH 5/8] mm: Take placement mappings gap into account
Date: Tue, 20 Feb 2024 16:48:52 +0000 [thread overview]
Message-ID: <b4ecace8453fbff4f6af5799896d75db84afaea4.camel@intel.com> (raw)
In-Reply-To: <e951a0e08c2ba9ead0b35714aafa00ebbc75a780.camel@intel.com>
On Fri, 2024-02-16 at 17:11 -0800, Rick Edgecombe wrote:
> > Do we care to check if alignment itself would satisfy start_gap
> > requirement?
>
> Ugh, I think actually the alignment stuff clobbers the guard gap in
> the
> search up scenario. I'm also seeing some weird results as I throw
> test
> values into the existing logic, but very likely I just need to look
> at
> this not late on a Friday. Thanks for pointing it out.
Ok, playing around with the address adjustment math in a separate test
program, I think it is all ok functionally. But there are two gotchas:
1. The existing math for search up assumes that the requested length is
bigger than the alignment mask. If the length is smaller, non-
cannonical addresses can result (more than ->high_limit). I don't think
any callers can call with this combination so it's fine functionally.
2. The newly added code can only hit the scenario you highlight if the
start gap is more than the alignment size. If alignment mask is more
than the start gap, the alignment will only shift the address more than
the adjustment made for the start gap.
So if it skips the start gap adjustment in the case of alignment adding
the necessary gap it won't change the result and just add a branch.
Similarly, if the start gap fulfills the alignment, there is no
adjustment during the alignment step.
I think maybe I'll add a comment covering both gotchas and leave the
logic as is, unless there are any objections. Or maybe a VM_WARN_ON,
hmm.
next prev parent reply other threads:[~2024-02-20 16:49 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-15 23:13 [RFC PATCH 0/8] Cover a guard gap corner case Rick Edgecombe
2024-02-15 23:13 ` [RFC PATCH 1/8] mm: Switch mm->get_unmapped_area() to a flag Rick Edgecombe
2024-02-16 0:30 ` Dave Hansen
2024-02-16 2:15 ` Liam R. Howlett
2024-02-16 12:30 ` Kirill A. Shutemov
2024-02-16 21:42 ` Edgecombe, Rick P
2024-02-21 7:10 ` Mike Rapoport
2024-02-21 16:59 ` Edgecombe, Rick P
2024-02-15 23:13 ` [RFC PATCH 2/8] mm: Introduce arch_get_unmapped_area_vmflags() Rick Edgecombe
2024-02-15 23:13 ` [RFC PATCH 3/8] mm: Use get_unmapped_area_vmflags() Rick Edgecombe
2024-02-16 12:56 ` Kirill A. Shutemov
2024-02-16 22:15 ` Edgecombe, Rick P
2024-02-17 12:35 ` kirill.shutemov
2024-02-15 23:13 ` [RFC PATCH 4/8] thp: Add thp_get_unmapped_area_vmflags() Rick Edgecombe
2024-02-16 12:59 ` Kirill A. Shutemov
2024-02-16 22:21 ` Edgecombe, Rick P
2024-02-17 12:57 ` kirill.shutemov
2024-02-15 23:13 ` [RFC PATCH 5/8] mm: Take placement mappings gap into account Rick Edgecombe
2024-02-16 13:12 ` Kirill A. Shutemov
2024-02-17 1:11 ` Edgecombe, Rick P
2024-02-20 16:48 ` Edgecombe, Rick P [this message]
2024-02-15 23:13 ` [RFC PATCH 6/8] x86/mm: Implement HAVE_ARCH_UNMAPPED_AREA_VMFLAGS Rick Edgecombe
2024-02-15 23:13 ` [RFC PATCH 7/8] x86/mm: Care about shadow stack guard gap during placement Rick Edgecombe
2024-02-15 23:13 ` [RFC PATCH 8/8] selftests/x86: Add placement guard gap test for shstk Rick Edgecombe
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=b4ecace8453fbff4f6af5799896d75db84afaea4.camel@intel.com \
--to=rick.p.edgecombe@intel.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=broonie@kernel.org \
--cc=dave.hansen@linux.intel.com \
--cc=debug@rivosinc.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox