[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Error ignored in xc_map_foreign_pages
On Wed, 2014-02-12 at 18:53 -0800, Mukesh Rathor wrote: > It appears that xc_map_foreign_pages() handles return incorrectly : libxc is a complete mess in this regard (error handling) generally. IIRC there is some subtlety on the Linux privcmd side wrt partial failure of batches, particularly once paging/sharing gets involved and you want to retry the missing subset, which might have something to do with this. David and Andres might know if that is relevant here. > res = xc_map_foreign_bulk(xch, dom, prot, arr, err, num); > if (res) { > for (i = 0; i < num; i++) { > if (err[i]) { > errno = -err[i]; > munmap(res, num * PAGE_SIZE); > res = NULL; > break; > } > } > } > > The add to_physmap batch'd interface actually will store errors > in the err array, and return 0 unless EFAULT or something like that. > See xenmem_add_to_physmap_batch(). The case I'm looking at, xentrace > calls here to map page which fails, but the return is 0 as the error is > succesfully copied by xen. But the error is missed above since res is 0. > xentrace does something again, and that causes xen crash. > > It appears the fix could be just removing the check for res above... > > res = xc_map_foreign_bulk(xch, dom, prot, arr, err, num); > for (i = 0; i < num; i++) { > if (err[i]) { > ..... > > What do you guys think? > > thanks, > Mukesh _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |