[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Virtio on Xen with Rust
On 23-06-22, 15:47, Oleksandr Tyshchenko wrote: > Below is my understanding, which might be wrong. > > I am not sure about x86, there are some moments with its modes, for example > PV guests should always use grants for virtio, but on Arm (which guest type > is HVM): > 1. If you run backend(s) in dom0 which is trusted by default, you don't > necessarily need to use grants for the virtio so you will be able to map > what you need in advance using foreign mappings. > 2. If you run backend(s) in another domain *which you trust* and you don't > want to use grants for the virtio, I think, you also will be able to map in > advance using foreign mappings, but for that you will need a security > policy to allow your backend's domain to map arbitrary guest pages. > 3. If you run backend(s) in non-trusted domain, you will have to use grants > for the virtio, so there is no way to map in advance, only to map at the > runtime what was previously granted by the guest and umap right after using > it. > > These is another method how to restrict backend without modifying guest > which is CONFIG_DMA_RESTRICTED_POOL in Linux, but this includes memcpy in > the guest and requires some support in toolstack to make it work, but I > wouldn't > suggest it as the usage of grants for the virtio is better (and already in > upsteam). Yeah, above looks okay. > Regarding your previous attempt to map 512MB by using grants, what I > understand from the error message is that Xen complains that the passed > grant ref is bigger than the current number of grant table entries. > Now I am wondering where do these 0x40000 - 0x5ffff grant refs (which > backend tries to map in a single call) come from, are they really were > previously granted by the guest and passed to the backend in a > single request? I just tried to map everything in one go, just like map in advance. Yeah, the whole idea is faulty :) The guest never agreed to it. > If the answer is yes, then what does gnttab_usage_print_all() say (key 'g' > in Xen console)? I expect there should be a lot of Xen messages like > "common/grant_table.c:1882:d2v3 Expanding d2 grant table from 28 to 29 > frames. Do you see them? I am not sure if there were other messages, but anyway this doesn't bother me now as the whole thing was wrong to begin with. :) -- viresh
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |