[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary
From: |
igor Mammedov |
Subject: |
Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary |
Date: |
Fri, 25 Oct 2013 11:57:18 +0200 |
On Fri, 25 Oct 2013 02:58:05 -0200
Marcelo Tosatti <address@hidden> wrote:
> On Fri, Oct 25, 2013 at 12:55:36AM +0100, Paolo Bonzini wrote:
> > > + if (hpagesize == (1<<30)) {
> > > + unsigned long holesize = 0x100000000ULL -
> > > below_4g_mem_size; +
> > > + memory_region_init_alias(ram_above_4g, NULL,
> > > "ram-above-4g", ram,
> > > + 0x100000000ULL,
> > > + above_4g_mem_size -
> > > holesize);
> > > + memory_region_add_subregion(system_memory,
> > > 0x100000000ULL,
> > > + ram_above_4g);
> > > +
> > > + ram_above_4g_piecetwo =
> > > g_malloc(sizeof(*ram_above_4g_piecetwo));
> > > + memory_region_init_alias(ram_above_4g_piecetwo, NULL,
> > > + "ram-above-4g-piecetwo",
> > > ram,
> > > + 0x100000000ULL - holesize,
> > > holesize);
> > > + memory_region_add_subregion(system_memory,
> > > + 0x100000000ULL +
> > > + above_4g_mem_size -
> > > holesize,
> > > + ram_above_4g_piecetwo);
> >
> > Why break it in two? You can just allocate extra holesize bytes in
> > the "ram" MemoryRegion, and not map the part that corresponds to
> > [0x100000000ULL - holesize, 0x100000000ULL).
>
> - If the "ram" MemoryRegion is backed with 1GB hugepages, you might
> not want to allocate extra holesize bytes (which might require an
> entire 1GB page).
From POV of moddeling current "ram" as dimm devices, aliasing
wouldn't work nice. But breaking one block in two or more is fine since
then blocks could be represented as several dimm devices.
+3Gb backend ram it could be split in blocks like this:
[ 3Gb (1Gb pages backed) ]
[tail1 (below_4gb - 3Gb) (2mb pages backed) ]
[above_4gb whole X Gb pages (1Gb pages backed)]
[tail2 (2mb pages backed)]
> - 1GB backed RAM can be mapped with 2MB pages.
>
> > Also, as Peter said this cannot depend on host considerations.
> > Just do it unconditionally, but only for new machine types (pc-1.8
> > and q35-1.8, since unfortunately we're too close to hard freeze).
>
> Why the description of memory subregions and aliases are part of
> machine types?
>
>
- [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, (continued)
- [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/24
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Peter Maydell, 2013/10/24
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Paolo Bonzini, 2013/10/24
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/25
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Paolo Bonzini, 2013/10/25
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/25
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Paolo Bonzini, 2013/10/25
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Gerd Hoffmann, 2013/10/30
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Paolo Bonzini, 2013/10/30
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary,
igor Mammedov <=
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/25
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, igor Mammedov, 2013/10/27
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/28
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/28
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Igor Mammedov, 2013/10/29
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/29
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Gleb Natapov, 2013/10/30
- Re: [Qemu-devel] [patch 2/2] i386: pc: align gpa<->hpa on 1GB boundary, Marcelo Tosatti, 2013/10/30
- [Qemu-devel] [RFC PATCH] pc: align gpa<->hpa on 1GB boundary by splitting RAM on several regions, Igor Mammedov, 2013/10/29
- Re: [Qemu-devel] [RFC PATCH] pc: align gpa<->hpa on 1GB boundary by splitting RAM on several regions, Marcelo Tosatti, 2013/10/29