On 9 August 2010 13:39, Olaf Hering <olaf@xxxxxxxxx> wrote:
> On Mon, Aug 09, Patrick Colp wrote:
>> > after playing a bit more with xenpaging, its not working for me.
>> > Whats your environment?
>> > I have a plain SLES11 SP1 x86_64 installation on a Xeon X5550 box.
>> > The client is also a plain SLES11 SP1 x86_64.
>> > Once I boot the client and start xenpaging with 256mb, the client gets
>> > lots of SIGBUS or SIGSEGV.
>> > Xen prints 'Iomem mapping not permitted ffffffffff (domain 1)' in
>> > grant_table.c:__gnttab_map_grant_ref()
>> Hi Olaf,
>> Thanks for the info. This sounds like an issue with PV drivers.
>> Unfortunately I haven't been able to properly vet the PV driver stuff
>> yet, but I'll try to get on it as soon as I can.
> in xenpaging.c:main() there is that loop which evicts pages before it
> enters the while(1) loop. Since that loop will take some time before it
> proceeds and receives events from xen, what will happen with page-in
> requests during the initial evict loop? Are they queued up, or could
> they cause all the errors during client bootup?
There is a shared ring for xenpaging between the tool and Xen. Paging
requests are placed in this ring and if it's full, the guest is
paused. However, the VCPU that accesses a paged out page is pause as
well until the request is satisfied. Therefore, there should be no
issue with the evict loop being first. If the guest accesses a paged
out page while the eviction process is taking place, it is paused
until all the pages are evicted and the tool handles the request and
pages it back in.
> I tried to move the initial evict_victim() calls into the while(1) loop.
> If there is no event from xc_wait_for_event_or_timeout(), fill &victims
> one by one.
> My attempt looks basically like shown below.
> Unfortunately, it crashes xen itself in odd ways. I will look at this
> route further tomorrow.
It's not immediately clear to me why your change wouldn't work.
> Also, what is the best time to run xenpaging. If its called very early,
> right after xm start <domainname>, it will cause a crash in the client
> when the kernel is still initializing itself. Should there be some kind
> of event from the guest when its ready? Early boot skripts could create
> such an event.
It should be possible to run xenpaging pretty well right from starting
up a guest. I believe there is no realmode support, so if the guest
starts in realmode then xenpaging couldn't be initiated until after
Xen-devel mailing list