All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hugh Dickins <hughd@google.com>
To: Vlastimil Babka <vbabka@suse.cz>
Cc: Hugh Dickins <hughd@google.com>,
	David Laight <David.Laight@aculab.com>,
	 Joel Fernandes <joel@joelfernandes.org>,
	 Hyeonggon Yoo <42.hyeyoo@gmail.com>,
	Matthew Wilcox <willy@infradead.org>,
	 Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,  linux-mm@kvack.org
Subject: Re: amusing SLUB compaction bug when CC_OPTIMIZE_FOR_SIZE
Date: Thu, 29 Sep 2022 14:54:45 -0700 (PDT)	[thread overview]
Message-ID: <bcecece-f7ce-221d-1674-da3d5ab3fef@google.com> (raw)
In-Reply-To: <de71b83a-c82c-4785-ef5a-3db4f17bbc8d@suse.cz>

On Thu, 29 Sep 2022, Vlastimil Babka wrote:
> On 9/28/22 19:50, Hugh Dickins wrote:
> > On Wed, 28 Sep 2022, Vlastimil Babka wrote:
> >> On 9/28/22 15:48, Joel Fernandes wrote:
> >> > On Wed, Sep 28, 2022 at 02:49:02PM +0900, Hyeonggon Yoo wrote:
> >> >> On Tue, Sep 27, 2022 at 10:16:35PM -0700, Hugh Dickins wrote:
> >> >>> It's a bug in linux-next, but taking me too long to identify which
> >> >>> commit is "to blame", so let me throw it over to you without more
> >> >>> delay: I think __PageMovable() now needs to check !PageSlab().
> >> 
> >> When I tried that, the result wasn't really nice:
> >> 
> >> https://lore.kernel.org/all/aec59f53-0e53-1736-5932-25407125d4d4@suse.cz/
> >> 
> >> And what if there's another conflicting page "type" later. Or the debugging
> >> variant of rcu_head in struct page itself. The __PageMovable() is just too
> >> fragile.
> > 
> > I don't disagree (and don't really know all the things you're thinking
> > of in there).  But if it's important to rescue this feature for 6.1, a
> > different approach may be the very simple patch below (I met a similar
> > issue with OPTIMIZE_FOR_SIZE in i915 a year ago, and just remembered).
> > 
> > But you be the judge of it: (a) I do not know whether rcu_free_slab
> > is the only risky address ever stuffed into that field; and (b) I'm
> > clueless when it comes to those architectures (powerpc etc) where the
> > the address of a function is something different from the address of
> > the function (have I conveyed my cluelessness adequately?).
> 
> Thanks a lot Hugh! That's a sufficiently small fix (compared to the other
> options) that I'm probably give it one last try.

I suddenly worried that you might be waiting on me for a Signed-off-by,
which I couldn't give until I researched my reservations (a) and (b):
but I'm pleased to see from your kernel.org tree that you've gone ahead
and folded it in - thanks.

Regarding (a): great, you've found it too, mm/slab.c's kmem_rcu_free()
looks like it needs the same __aligned(4) as mm/slub.c's rcu_free_slabi().

Regarding (b): I booted the PowerMac G5 to take a look, and dredged up
the relevant phrase "function descriptor" from depths of my memory: I
was right to consider that case, but it's not a worry - the first field
of a function descriptor structure (on all the architectures I found it)
is the function address, so the function descriptor address would be
aligned 4 or 8 anyway.

Regarding "conflicting" alignment requests: yes, I agree with you,
it would have to be a toolchain bug if when asked to align 2 and to
align 4, it chose not to align 4.

So, no worries at my end now.
Hugh


  reply	other threads:[~2022-09-29 21:54 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28  5:16 amusing SLUB compaction bug when CC_OPTIMIZE_FOR_SIZE Hugh Dickins
2022-09-28  5:49 ` Hyeonggon Yoo
2022-09-28 13:48   ` Joel Fernandes
2022-09-28 15:09     ` Hyeonggon Yoo
2022-09-28 16:20     ` Vlastimil Babka
2022-09-28 17:50       ` Hugh Dickins
2022-09-29  9:58         ` Vlastimil Babka
2022-09-29 21:54           ` Hugh Dickins [this message]
2022-09-30  7:39             ` Vlastimil Babka
2022-09-30 10:45               ` Hugh Dickins
2022-09-30 11:02                 ` David Laight
2022-09-30 16:21                   ` Hugh Dickins
2022-09-30 21:34                     ` David Laight
2022-10-02  5:48             ` Hyeonggon Yoo
2022-10-03 17:00               ` Matthew Wilcox
2022-10-04 14:26                 ` Hyeonggon Yoo
2022-10-04 14:40                   ` Matthew Wilcox
2022-10-05 11:07                     ` Hyeonggon Yoo
2022-10-24 14:35                 ` Vlastimil Babka
2022-10-24 15:06                   ` Matthew Wilcox
2022-10-24 15:24                     ` Vlastimil Babka
2022-10-24 16:49                   ` Vlastimil Babka
2022-10-25  4:19                   ` Hugh Dickins
2022-10-25  9:17                     ` Vlastimil Babka
2022-10-25 15:45                       ` Hugh Dickins
2022-10-25 13:47                   ` Hyeonggon Yoo
2022-10-25 14:08                     ` Vlastimil Babka
2022-10-26 10:52                       ` Vlastimil Babka
2022-10-26 12:29                         ` Hyeonggon Yoo
2022-11-04 15:57                   ` Vlastimil Babka
2022-09-29 11:53         ` David Laight
2022-09-29 13:01           ` Vlastimil Babka
2022-09-29 14:04             ` David Laight
2022-09-28 17:56       ` Hyeonggon Yoo
2022-09-28 19:53         ` Joel Fernandes

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=bcecece-f7ce-221d-1674-da3d5ab3fef@google.com \
    --to=hughd@google.com \
    --cc=42.hyeyoo@gmail.com \
    --cc=David.Laight@aculab.com \
    --cc=akpm@linux-foundation.org \
    --cc=joel@joelfernandes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=vbabka@suse.cz \
    --cc=willy@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.