[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [rfc] [patch] grant_entry.flags accessors

On Tue, 2006-06-27 at 16:24 +0100, Keir Fraser wrote:
> On 27 Jun 2006, at 16:06, Hollis Blanchard wrote:
> > In the couple cases so far, we know that even though the field is only
> > one or two bytes, it's actually safe to do a four-byte load/store to it
> > because the containing structure is large enough.
> >
> > I'm not really comfortable with making that a blanket assumption. I'd
> > really like to know exactly what we're overwriting when performing 
> > these
> > hacks^Woperations.
> You won't be overwriting anything else since you'll be performing an 
> atomic read-modify-write that does not change any of the bits outside 
> the subword of interest. More precisely, you may overwrite those bits 
> outside the subword, but it's guaranteed to be with the current 
> contents so there'll be no externally visible change and you won't 
> clobber anything.

Right, I'm not worried about clobbering data. I am a little worried
about false conflicts in the reservations. Atomics on PPC, and many
other processors, are implemented as "load with reservation; conditional
store", where conditional store fails if another processor conflicted
with the reservation. I think typically a processor only has a single
reservation. Practically speaking this probably isn't likely to hit us,
but the whole thing is really making me uncomfortable.

> Since you'll do an aligned longword operation you 
> can't end up straddling a page boundary or anything nasty like that.

OK, that's a good point.

In general I'm skeptical of blindly performing these operations on
unknown data. I think it's pretty clear that is not a good interface,
and what you're suggesting is codifying this behavior in the interface.

More practically speaking, I would be shocked if the Linux maintainers
would accept that sort of change to their atomic interfaces.

Hollis Blanchard
IBM Linux Technology Center

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.