Re: [PATCH 1/2] kvm tools: Add memory gap for larger RAM sizes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Avi Kivity <avi@xxxxxxxxxx> wrote:

> On 05/11/2011 08:37 AM, Pekka Enberg wrote:
> >On Wed, May 11, 2011 at 12:05 AM, Sasha Levin<levinsasha928@xxxxxxxxx>  wrote:
> >>  +       if (kvm->ram_size<  0xe0000000) {
> >
> >Please use the ULL postfix for constants to ensure the types are sane.
> >Also, please come up with a sane name for these.
> >
> >>  @@ -60,7 +60,14 @@ static inline u32 segment_to_flat(u16 selector, u16 offset)
> >>
> >>    static inline void *guest_flat_to_host(struct kvm *self, unsigned long offset)
> >>    {
> >>  -       return self->ram_start + offset;
> >>  +       /*
> >>  +        * We have a gap between 0xe0000000 and 0x100000000.
> >>  +        * Consider it when translating an address above 0x100000000.
> >>  +        */
> >>  +       if (offset<  0xe0000000)
> >>  +               return self->ram_start + offset;
> >>  +       else
> >>  +               return self->ram_start + 0xe0000000 + (offset - 0x100000000);
> >>    }
> >
> >Would it not be simpler to mmap() a "ram_size + gap_size" contiguous
> >region and mprotect(PROT_NONE) the gap? We'd still tell KVM and E820
> >maps about two separate regions but guest_flat_to_host() would
> >work-as-is.
> 
> It doesn't work in general - if you have a PCI device with a BAR
> (like a video card framebuffer), then you need allocations for main
> memory (0+) and pci (0xe000000+).  You can't have a contiguous
> mapping on i386 containing both.

I think in tools/kvm/ we can ignore i386 hosts that would like to map more RAM 
than they have virtual address space for ...

Guests up to 1-2 gigs of RAM will still work fine.

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux