All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Patrick Plenefisch <simonpatp@gmail.com>,
	xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Subject: Re: E820 memory allocation issue on Threadripper platforms
Date: Wed, 17 Jan 2024 13:54:48 +0100	[thread overview]
Message-ID: <ZafOGEwms01OFaVJ@macbook> (raw)
In-Reply-To: <15dcef46-aaa8-4f71-bd5c-355001dd9188@suse.com>

On Wed, Jan 17, 2024 at 11:40:20AM +0100, Jan Beulich wrote:
> On 17.01.2024 11:13, Roger Pau Monné wrote:
> > On Wed, Jan 17, 2024 at 09:46:27AM +0100, Jan Beulich wrote:
> >> Whereas I assume the native kernel can deal with that as long as
> >> it's built with CONFIG_RELOCATABLE=y. I don't think we want to
> >> get into the business of interpreting the kernel's internal
> >> representation of the relocations needed, so it's not really
> >> clear to me what we might do in such a case. Perhaps the only way
> >> is to signal to the kernel that it needs to apply relocations
> >> itself (which in turn would require the kernel to signal to us
> >> that it's capable of doing so). Cc-ing Roger in case he has any
> >> neat idea.
> > 
> > Hm, no, not really.
> > 
> > We could do like multiboot2: the kernel provides us with some
> > placement data (min/max addresses, alignment), and Xen let's the
> > kernel deal with relocations itself.
> 
> Requiring the kernel's entry point to take a sufficiently different
> flow then compared to how it's today, I expect.

Indeed, I would expect that.

> > Additionally we could support the kernel providing a section with the
> > relocations and apply them from Xen, but that's likely hm, complicated
> > at best, as I don't even know which kinds of relocations we would have
> > to support.
> 
> If the kernel was properly linked to a PIE, there'd generally be only
> one kind of relocation (per arch) that ought to need dealing with -
> for x86-64 that's R_X86_64_RELATIVE iirc. Hence why (I suppose) they
> don't use ELF relocation structures (for being wastefully large), but
> rather a more compact custom representation. Even without building PIE
> (presumably in part not possible because of how per-CPU data needs
> dealing with), they get away with handling just very few relocs (and
> from looking at the reloc processing code I'm getting the impression
> they mistreat R_X86_64_32 as being the same as R_X86_64_32S, when it
> isn't; needing to get such quirks right is one more aspect of why I
> think we should leave relocation handling to the kernel).

Would have to look into more detail, but I think leaving any relocs
for the OS to perform would be my initial approach.

> > I'm not sure how Linux deals with this in the bare metal case, are
> > relocations done after decompressing and before jumping into the entry
> > point?
> 
> That's how it was last time I looked, yes.

I've created a gitlab ticket for it:

https://gitlab.com/xen-project/xen/-/issues/180

So that we don't forget, as I don't have time to work into this right
now, but I think it's important enough that we don't forget.

For PV it's a bit more unclear how we want to deal with it, as it's
IMO a specific Linux behavior that makes it fail to boot.

Roger.


  reply	other threads:[~2024-01-17 12:55 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-11  2:29 E820 memory allocation issue on Threadripper platforms Patrick Plenefisch
2024-01-11  8:37 ` Jan Beulich
2024-01-11  9:19   ` Xenia Ragiadakou
2024-01-11 10:13   ` Juergen Gross
2024-01-16  0:22     ` Patrick Plenefisch
2024-01-16  9:33       ` Jan Beulich
2024-01-17  6:12         ` Patrick Plenefisch
2024-01-17  8:46           ` Jan Beulich
2024-01-17 10:13             ` Roger Pau Monné
2024-01-17 10:40               ` Jan Beulich
2024-01-17 12:54                 ` Roger Pau Monné [this message]
2024-06-24 12:40                   ` Branden Sherrell
2024-06-24 12:54                     ` Jan Beulich
2024-06-24 13:07                       ` Branden Sherrell
2024-06-24 13:40                         ` Jan Beulich
2024-06-24 16:17                           ` Branden Sherrell
2024-01-18  6:23             ` Patrick Plenefisch
2024-01-18  8:27               ` Roger Pau Monné
2024-01-18  8:34                 ` Patrick Plenefisch
2024-01-18  9:46                   ` Roger Pau Monné
2024-01-18 12:41                     ` ACPI VFCT table too short on PVH dom0 (was: Re: E820 memory allocation issue on Threadripper platforms) Roger Pau Monné
2024-01-19  7:44                       ` Patrick Plenefisch
2024-01-19  9:54                         ` Huang Rui
2024-01-19 15:32                           ` Deucher, Alexander
2024-01-21  1:27                           ` Patrick Plenefisch
2024-01-19 11:06                         ` Roger Pau Monné
2024-01-21  1:33                           ` Patrick Plenefisch
2024-01-24  1:27                             ` Patrick Plenefisch
2024-01-24  8:23                               ` Roger Pau Monné
2024-01-25  0:20                                 ` Patrick Plenefisch
2024-01-18 16:03                     ` E820 memory allocation issue on Threadripper platforms Patrick Plenefisch
2024-01-18  9:01               ` Jan Beulich
2024-01-19 13:40               ` Marek Marczykowski-Górecki
2024-01-19 13:50                 ` Jan Beulich
2024-01-19 14:31                   ` Marek Marczykowski-Górecki
2024-03-10 14:06                 ` Marek Marczykowski-Górecki
2024-03-12 21:07                   ` Jason Andryuk
2024-03-12 22:00                     ` Marek Marczykowski-Górecki
2024-01-17  8:46           ` Roger Pau Monné
2024-01-17 12:06         ` Marek Marczykowski-Górecki
2024-01-17 12:59           ` Roger Pau Monné
2024-01-17 13:40             ` Jan Beulich

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=ZafOGEwms01OFaVJ@macbook \
    --to=roger.pau@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=simonpatp@gmail.com \
    --cc=xen-devel@lists.xenproject.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.