[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN] Do not print grant-table warning if a page cannot be pinned
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Node ID 5e0fb830a53c471c2a1cee369ec2a8b5a4087654 # Parent 9f9f569b0a1db07697426d5ebeb175b07ef034ed [XEN] Do not print grant-table warning if a page cannot be pinned because the (previous) owner is dying. This quietens down domain destruction quite a bit. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- xen/common/grant_table.c | 24 ++++++++++++++++++------ 1 files changed, 18 insertions(+), 6 deletions(-) diff -r 9f9f569b0a1d -r 5e0fb830a53c xen/common/grant_table.c --- a/xen/common/grant_table.c Wed Nov 08 16:43:50 2006 +0000 +++ b/xen/common/grant_table.c Wed Nov 08 17:31:25 2006 +0000 @@ -253,8 +253,12 @@ __gnttab_map_grant_ref( get_page(mfn_to_page(frame), rd) : get_page_and_type(mfn_to_page(frame), rd, PGT_writable_page))) ) - PIN_FAIL(undo_out, GNTST_general_error, - "Could not pin the granted frame (%lx)!\n", frame); + { + if ( !test_bit(_DOMF_dying, &rd->domain_flags) ) + gdprintk(XENLOG_WARNING, "Could not pin grant frame %lx\n", frame); + rc = GNTST_general_error; + goto undo_out; + } if ( op->flags & GNTMAP_host_map ) { @@ -893,8 +897,12 @@ __gnttab_copy( PIN_FAIL(error_out, GNTST_general_error, "source frame %lx invalid.\n", s_frame); if ( !get_page(mfn_to_page(s_frame), sd) ) - PIN_FAIL(error_out, GNTST_general_error, - "could not get source frame %lx.\n", s_frame); + { + if ( !test_bit(_DOMF_dying, &sd->domain_flags) ) + gdprintk(XENLOG_WARNING, "Could not get src frame %lx\n", s_frame); + rc = GNTST_general_error; + goto error_out; + } have_s_ref = 1; if ( dest_is_gref ) @@ -912,8 +920,12 @@ __gnttab_copy( PIN_FAIL(error_out, GNTST_general_error, "destination frame %lx invalid.\n", d_frame); if ( !get_page_and_type(mfn_to_page(d_frame), dd, PGT_writable_page) ) - PIN_FAIL(error_out, GNTST_general_error, - "could not get destination frame %lx.\n", d_frame); + { + if ( !test_bit(_DOMF_dying, &dd->domain_flags) ) + gdprintk(XENLOG_WARNING, "Could not get dst frame %lx\n", d_frame); + rc = GNTST_general_error; + goto error_out; + } sp = map_domain_page(s_frame); dp = map_domain_page(d_frame); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |