Displaying 20 results from an estimated 74 matches for "hypervisor_grant_table_op".
2011 Dec 01
11
[PATCH 0 of 2] Paging support updates for XCP dom0
This is a cherry pick of two patches that add support for guest paged out
frames in the XCP 2.6.32 dom0 patch queue.
First patch propagates the ENOENT returned by the hypervisor in the case
of a paged out page, all the way up the call chain to the MMAPBATCH_V2
ioctl. The ioctl is mainly used to harvest those return values and retry.
The second patch adds retry loops to all backend grant
2010 Sep 15
15
xenpaging fixes for kernel and hypervisor
Patrick,
there following patches fix xenpaging for me.
Granttable handling is incomplete. If a page is gone, a GNTST_eagain
should be returned to the caller to inidcate the hypercall has to be
retried after a while, until the page is available again.
Please review.
Olaf
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
2005 Nov 06
2
Bug in use of grant tables in blkback.c error path?
In dispatch_rw_block_io after a call to HYPERVISOR_grant_table_op, there
is the following code which calls fast_flush_area and breaks out of the
loop early if one of the handles returned from HYPERVISOR_grant_table_op
is negative:
for (i = 0; i < nseg; i++) {
if (unlikely(map[i].handle < 0)) {
DPRINTK("invalid buffer -- could not remap it\n"...
2011 Apr 04
0
[PATCH] linux-2.6.18/backends: use xenbus_be.ko interfaces instead of open-coding them
...d!\n", (int)op.status);
- ret = -EINVAL;
- }
-
- return ret;
-}
-
-static void unmap_frontend_page(blkif_t *blkif)
-{
- struct gnttab_unmap_grant_ref op;
-
- gnttab_set_unmap_op(&op, (unsigned long)blkif->blk_ring_area->addr,
- GNTMAP_host_map, blkif->shmem_handle);
-
- if (HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref, &op, 1))
- BUG();
-}
-
-int blkif_map(blkif_t *blkif, unsigned long shared_page, unsigned int evtchn)
+int blkif_map(blkif_t *blkif, grant_ref_t ring_ref, evtchn_port_t evtchn)
{
+ struct vm_struct *area;
int err;
/* Already connected through? */
if (blkif-&g...
2008 Mar 28
4
grant tables and HVM+PV
This changeset:
changeset: 15606:17820aa1b2c0
user: Keir Fraser <keir.fraser@citrix.com>
date: Fri Dec 14 11:58:37 2007 +0000
summary: hvm: Remove duplicate assignment of __HYPERVISOR_grant_table_op in
Has broken our HVM PV drivers. Previously we were using:
520 if ((HYPERVISOR_grant_table_op(GNTTABOP_setup_table, pset, 1) != 0) ||
521 (pset->status != 0)) {
even on HVM. Now, this isn''t actually necessary (stuff works fine with
the call nop''d out, p...
2006 Jun 09
1
grant table issue
Hi,
I am trying to export a memory page of dom0 to a domU in readonly mode.
In dom0, I grant access permission to that domU. In domU, I did
HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, map, res->nr_pages);
All these functions returned successfully. But when I tried to access
data in the mapped memory page, all data I got is 0.
Is there any restriction that preventing dom0 pages from being export to
other domains? If so, is there any way to relax th...
2007 Jun 07
4
blkif_map error starting fourth guest domain
I''m having problems starting more than three domains. It sometimes
works fine, but more often than not the 4th domain''s root block device
times out and so the domU kernel panics as there''s no /dev/root:
XENBUS: Timeout connecting to device: device/vbd/2057 (state 6)
XENBUS: Timeout connecting to device: device/vif/0 (state 6)
XENBUS: Timeout connecting to device:
2012 Mar 05
11
[PATCH 0001/001] xen: multi page ring support for block devices
...for (i = 0; i < nr_grefs; i++) {
+ op[i].flags = GNTMAP_host_map | GNTMAP_contains_pte,
+ op[i].ref = gnt_ref[i],
+ op[i].dom = dev->otherend_id,
+ op[i].host_addr = arbitrary_virt_to_machine(pte[i]).maddr;
+ };
if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &op, 1))
BUG();
- if (op.status != GNTST_okay) {
- free_vm_area(area);
- kfree(node);
- xenbus_dev_fatal(dev, op.status,
- "mapping in shared page %d from domain %d"...
2012 Mar 05
11
[PATCH 0001/001] xen: multi page ring support for block devices
...for (i = 0; i < nr_grefs; i++) {
+ op[i].flags = GNTMAP_host_map | GNTMAP_contains_pte,
+ op[i].ref = gnt_ref[i],
+ op[i].dom = dev->otherend_id,
+ op[i].host_addr = arbitrary_virt_to_machine(pte[i]).maddr;
+ };
if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &op, 1))
BUG();
- if (op.status != GNTST_okay) {
- free_vm_area(area);
- kfree(node);
- xenbus_dev_fatal(dev, op.status,
- "mapping in shared page %d from domain %d"...
2012 Mar 05
11
[PATCH 0001/001] xen: multi page ring support for block devices
...for (i = 0; i < nr_grefs; i++) {
+ op[i].flags = GNTMAP_host_map | GNTMAP_contains_pte,
+ op[i].ref = gnt_ref[i],
+ op[i].dom = dev->otherend_id,
+ op[i].host_addr = arbitrary_virt_to_machine(pte[i]).maddr;
+ };
if (HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &op, 1))
BUG();
- if (op.status != GNTST_okay) {
- free_vm_area(area);
- kfree(node);
- xenbus_dev_fatal(dev, op.status,
- "mapping in shared page %d from domain %d"...
2013 Jul 22
11
[PATCH] xen: arm: document which hypercalls (and subops) are supported on ARM
...RVISOR_sysctl
+ * All generic sub-operations, with the exception of:
+ * * XEN_SYSCTL_page_offline_op
+ * * XEN_SYSCTL_get_pmstat
+ * * XEN_SYSCTL_pm_op
+ *
+ * HYPERVISOR_hvm_op
+ * Exactly these sub-operations are supported:
+ * * HVMOP_set_param
+ * * HVMOP_get_param
+ *
+ * HYPERVISOR_grant_table_op
+ * All generic sub-operations
+ *
+ * HYPERVISOR_vcpu_op
+ * Exactly these sub-operations are supported:
+ * * VCPUOP_register_vcpu_info
+ * * VCPUOP_register_runstate_memory_area
+ */
+
#define XEN_HYPERCALL_TAG 0XEA1
#define uint64_aligned_t uint64_t __attribute__((aligned(8)))...
2012 Apr 10
7
[PATCH v3 1/2] xen: enter/exit lazy_mmu_mode around m2p_override calls
This patch is a significant performance improvement for the
m2p_override: about 6% using the gntdev device.
Each m2p_add/remove_override call issues a MULTI_grant_table_op and a
__flush_tlb_single if kmap_op != NULL. Batching all the calls together
is a great performance benefit because it means issuing one hypercall
total rather than two hypercall per page.
If paravirt_lazy_mode is set
2014 Feb 27
3
[PATCH] xen/grant-table: Refactor gnttab_[un]map_refs to avoid m2p_override
...ex b84e3ab..6d325bd 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -933,9 +933,6 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
struct page **pages, unsigned int count)
{
int i, ret;
- bool lazy = false;
- pte_t *pte;
- unsigned long mfn;
ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, map_ops, count);
if (ret)
@@ -947,45 +944,7 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
gnttab_retry_eagain_gop(GNTTABOP_map_grant_ref, map_ops + i,
&map_ops[i].status, __func__);
- /* this is basically a nop on x86 */
- if (xen_feature(XE...
2014 Feb 27
3
[PATCH] xen/grant-table: Refactor gnttab_[un]map_refs to avoid m2p_override
...ex b84e3ab..6d325bd 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -933,9 +933,6 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
struct page **pages, unsigned int count)
{
int i, ret;
- bool lazy = false;
- pte_t *pte;
- unsigned long mfn;
ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, map_ops, count);
if (ret)
@@ -947,45 +944,7 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
gnttab_retry_eagain_gop(GNTTABOP_map_grant_ref, map_ops + i,
&map_ops[i].status, __func__);
- /* this is basically a nop on x86 */
- if (xen_feature(XE...
2008 Jul 11
1
Question about Using Grant Table
...void * shared_page;
extern grant_entry_t * grant_table;
void offer_page()
{
uint16_t flags;
/* create the grant table*/
gnttab_setup_table_t setup_op;
setup_op.dom =DOMID_SELF;
setup_op.nr_frames = 1;
setup_op.frame_list = grant_table;
HYPERVISOR_grant_table_op(GNTTABOP_setup_table, &setup_op, 1);
/*offer the grant */
grant_table[0].domid=DOMID_FRIEND;
grant_table[0].frame = shared_page >>12;
flgas = GTF_permit_access & GTF_reading & GTF_writing;
grant_table[0].flags= flags;
}
and it also assume that t...
2013 Jul 25
0
How to get the PFN of a vmalloc'ed address in a domU ?
..._first_gref;
for (i = 0; i < buffer_num_pages; i++) {
printk(KERN_INFO "Mounting GREF %d\n", *grefp);
memset(&op, 0, sizeof(op));
op.host_addr = x->buffer_addr + i * PAGE_SIZE;
op.flags = GNTMAP_host_map;
op.ref = *grefp;
op.dom = x->otherend_id;
rc = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, &op, 1);
if (rc == -ENOSYS) {
goto err_unmap;
}
if (op.status) {
DPRINTK("error: grant table mapping failed\n");
goto err_unmap;
}
x->buffer_handles[i] = op.handle;
grefp = (int *)(x->buffer_addr + i * PAG...
2008 Aug 20
3
Grant Table Hyper Calls For Sharing Memory
I was following an email chain in the xen mailing list on HVM hypercalls on grant tables and the email chain link is below
http://lists.xensource.com/archives/html/xen-devel/2007-03/msg00688.html
This link says that we need not required hypercalls to share memory b/w HVM''s.
But as far as my understanding of sharing memory is concerned, I think the memory is shared using grant table
2006 May 25
3
netfront.c: gnttab_query_foreign_access returns non zero in network_tx_buf_gc
I''ve been working form the netfront.c in the testing tree and using SLES
10 RC1 for i386 on a SMP box. When I stress the network using iperf in
a domU, domU acting as client on a gigabit network, I occasionally get a
panic at the dev_kfree_skb_irq(skb); line. This is the same panic as
reported in
http://lists.xensource.com/archives/html/xen-devel/2006-05/msg00919.html
The trace
2008 May 30
5
[PATCH 1/4] pvSCSI driver
pvSCSI backend driver
Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com>
Signed-off-by: Jun Kamada <kama@jp.fujitsu.com>
-----
Jun Kamada
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
2012 Nov 12
10
Hypervisor to dom0 communication
...out writing a custom channel from scratch, and I''d
like to know what the best way to proceed is. I''ll likely need to add a
new VIRQ like the TRACE VIRQ and use that for notifications. However,
allocating and sharing a new page is trickier. I''ve read about grant
tables and HYPERVISOR_grant_table_op, but trace.c simply calls
share_xen_page_with_privileged_guests(). I''ve read about ring buffers
and DEFINE_RING_TYPES, but trace.{h,c} has nothing to do with that
macro. Is the "The Definitive Guide to the Xen Hypervisor" book still
relevant?
What would you recommend for my case...