[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [Xen-changelog] [xen-unstable] xen: Split domain_flags into discrete first-class fields in the
On Fri, 2007-03-30 at 16:10 -0700, Xen patchbot-unstable wrote: > # HG changeset patch > # User kfraser@xxxxxxxxxxxxxxxxxxxxx > # Date 1175177666 -3600 > # Node ID 4b13fc910acf0019c27cbae35181433b381e88d1 > # Parent 31f20aaac8188bc1366b80e55e47b328db425180 > xen: Split domain_flags into discrete first-class fields in the > domain structure. This makes them quicker to access, and simplifies > domain pause and checking of runnable status. > diff -r 31f20aaac818 -r 4b13fc910acf xen/common/domain.c > --- a/xen/common/domain.c Thu Mar 29 13:29:24 2007 +0100 > +++ b/xen/common/domain.c Thu Mar 29 15:14:26 2007 +0100 > @@ -262,8 +264,12 @@ void domain_kill(struct domain *d) > { > domain_pause(d); > > - if ( test_and_set_bit(_DOMF_dying, &d->domain_flags) ) > + /* Already dying? Then bail. */ > + if ( xchg(&d->is_dying, 1) ) > return; > + > + /* Tear down state /after/ setting the dying flag. */ > + smp_wmb(); > > gnttab_release_mappings(d); > domain_relinquish_resources(d); You're now doing xchg() on a 1-byte variable, which does not work on PowerPC. This is an interface problem: using the interface in a way that works on x86 fails on other architectures. PLEASE let's redefine the interface to prevent this from happening. In this case, that means replacing the xchg() macro with static inline xchg(atomic_t *ptr, atomic_t val) and changing the type of 'is_dying'. -- Hollis Blanchard IBM Linux Technology Center _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |