On Fri, Mar 24, 2017 at 01:04:59PM -0400, Boris Ostrovsky wrote: > @@ -1067,7 +1086,11 @@ static void scrub_free_pages(unsigned int node) > break; > > for ( i = 0; i < (1UL << order); i++) > + { > scrub_one_page(&pg[i]); > + if ( softirq_pending(cpu) ) > + goto out; > + } > > pg->count_info &= ~PGC_need_scrub; > > @@ -1078,6 +1101,11 @@ static void scrub_free_pages(unsigned int node) > } > } > } > + > + out: > + spin_unlock(&heap_lock); > + node_clear(node, node_scrubbing); > + return (node_need_scrub[node] != 0);
I think you also need to have "&& !softirq_pending(cpu)" here. Wei. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel