Carsten Otte wrote: > Avi Kivity wrote: > >> Carsten Otte wrote: >> >>> Avi Kivity wrote: >>> >>>> Why aren't memory slots common too? Only their number is different, >>>> while the implementation is the same. >>>> >>> Your approach makes the meaning of memory slot somewhat useless on >>> s390, if that one may be sparse and may be result of different >>> allocations: On x86, there has to be one memory slot per allocation, >>> versus on s390 there has to be exactly one memory slot with multiple >>> allocations behind. >>> >> No, a memory slot can span multiple backing stores. But it must be >> contiguous in both the host userspace and guest physical address spaces. >> > I was not preceise enough: I meant to state that x86 demands one > memory slot per contiguous allocation. But with your "s390 has only > one memory slot" idea, this introduces a severe restriction for us: > our "single memory slot" does not need to be contiguous, neither in > guest physical nor in host userspace. All we need, is a certain > 1:1+offset relationship between guest physical and host user. Page > size, backing, sparse are all variable. >
Well, a slot may be sparse (though I don't think that's supported now). To me, a slot is exactly a guest offset, size, and host offset. How the memory is populated (or not) is up to the user. > Izik's idea, at least how I understood him, makes the best of both > worlds: we keep above addressing relationship intact, and have > multiple memory slots for all architectures. > Can you explain the idea again. Izik's not here so I can't ask him. > >>> For userspace that means, with your approach it has to do total >>> different memory setup for different archs _if_ it wants to use >>> multiple allocations and/or sparse: >>> - on x86 it does allocations to random userspace address, and >>> registers each of them as memory slot >>> - on s390 it does allocations to a specific address layout similar to >>> the guest, and registers only one memory slot for the whole thing >>> >>> With Izik's approach however, this is transparent to userspace: it has >>> multiple memory slots, one per allocation. Regardless of the CPU >>> architecture. >>> >> You can do this with the current memory slots as well. Although I'm >> feeling that I misunderstood Izik's idea. I'll go talk to him. >> > No we can't: because current memory slots don't have a permanent > relationship between user and guest physical addresses that we do need > on s390. We cannot guarantee that over multiple slots, and we cannot > keep the guest from addressing memory around the memory slots unless > we refuse to use more than only one slot which has to start at guest > physical zero. > Well, you could allow multiple slots and return -EINVAL if they don't fit the "host = guest + offset formula". I'm not sure how that's different from one big, possibly sparse, slot. But again, I don't think I understood Izik's idea, so I'm not sure what's the alternative. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel