|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Kernel bug from 3.0 (was phy disks and vifs timing out i
On Thu, 2011-09-01 at 16:38 +0100, Konrad Rzeszutek Wilk wrote:
> > > > The flaw in the reasoning here is that you cannot take a kernel fault
> > > > while processing a hypercall, so hypercall arguments must have been
> > > > faulted in beforehand and that is what the sync_all was for.
> > > >
> > > > It's probably fair to say that the Xen specific caller should take care
> > > > of that Xen-specific requirement rather than pushing it into common
> > > > code. On the other hand Xen is the only user and creating a Xen specific
> > > > helper/wrapper seems a bit pointless.
> > >
> > > Perhaps then doing the vmalloc_sync_all() (or are more precise one:
> > > vmalloc_sync_one) should be employed in the netback code then?
> >
> > Not just netback but everywhere which uses this interface.
>
> Which is for right now netback :-). But yes - wherever we use that
> we should do follow with some sort of vmalloc.
blkback, xenbus_client and the grant table stuff all use it as well and
AFAICT have the same requirement for syncing.
$ git grep alloc_vm_area
arch/x86/include/asm/xen/grant_table.h:#define xen_alloc_vm_area(size)
alloc_vm_area(size)
-- this macro is unused...
arch/x86/xen/grant-table.c: xen_alloc_vm_area(PAGE_SIZE *
max_nr_gframes);
drivers/block/xen-blkback/xenbus.c: blkif->blk_ring_area =
alloc_vm_area(PAGE_SIZE);
drivers/net/xen-netback/netback.c: vif->tx_comms_area =
alloc_vm_area(PAGE_SIZE);
drivers/net/xen-netback/netback.c: vif->rx_comms_area =
alloc_vm_area(PAGE_SIZE);
drivers/xen/xenbus/xenbus_client.c: area = xen_alloc_vm_area(PAGE_SIZE);
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|