Cannot map more than 512 grant references with Mini-OS

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Cannot map more than 512 grant references with Mini-OS

Frederic Dang Tran
Hello:

I'm trying to set up a shared memory pool between two minimal Xen domains based on Mini-OS using the grant table API provided by Mini-OS.
The sender domain sets up a grant table and publishes the grant references on xenstore. The receiver domain reads the grant references on xenstore and maps them.
As long as the grant table of the sender domain fits in one frame, i.e. 512 grants at most, everything works OK. But grant references beyond the first 512  cannot be mapped in the receiver domain. 
The GNTTABOP_map_grant_ref hypercall fails with a GNTST_general_error status without any logs (function gntmap_map_grant_refs of the Mini-OS api).

Any help is welcome.
Is it a Mini-OS specific problem ?
Does Xen support more than one single grant table per domain ?
Is there any Xen parameter that needs to be set ?

Xen version 4.8.1
Mini-OS version:  xen-RELEASE-4.8.1

Thanks




_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xen.org/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: Cannot map more than 512 grant references with Mini-OS

Juergen Gross-3
On 14/09/17 18:00, Frederic Dang Tran wrote:
> Hello:
>
> I'm trying to set up a shared memory pool between two minimal Xen
> domains based on Mini-OS using the grant table API provided by Mini-OS.
> The sender domain sets up a grant table and publishes the grant
> references on xenstore. The receiver domain reads the grant references
> on xenstore and maps them.

So how does the Xenstore structure look like? You are aware that you
might experience problems when a node has too many children, as the
output of a directory read is limited to 4096 characters? OTOH depending
on xenstored parameters a single node might be limited in size, so maybe
you can't write all references into a single Xenstore node.

> As long as the grant table of the sender domain fits in one frame, i.e.
> 512 grants at most, everything works OK. But grant references beyond the
> first 512  cannot be mapped in the receiver domain. 
> The GNTTABOP_map_grant_ref hypercall fails with a GNTST_general_error
> status without any logs (function gntmap_map_grant_refs of the Mini-OS api).
>
> Any help is welcome.
> Is it a Mini-OS specific problem ?
> Does Xen support more than one single grant table per domain ?
> Is there any Xen parameter that needs to be set ?

Looking into the sources I don't see the problem. Mini-OS should use
4 grant frames, not just one.

Can you rebuild Mini-OS with MM_DEBUG defined and look at the output
sent to the hypervisor console (you'll need to set "guest_loglvl=all"
hypervisor boot parameter to see it)? "xl dmesg" in dom0 prints the
console output.


Juergen

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xen.org/xen-users