From: Hollis Blanchard <hollisb@us.ibm.com>
To: Keir Fraser <keir@xensource.com>
Cc: xen-devel <xen-devel@lists.xensource.com>,
xen-ppc-devel <xen-ppc-devel@lists.xensource.com>
Subject: Re: Re: [Xen-changelog] [xen-unstable] xen: Split domain_flags into discrete first-class fields in the
Date: Thu, 05 Apr 2007 12:21:37 -0500 [thread overview]
Message-ID: <1175793697.20895.39.camel@basalt> (raw)
In-Reply-To: <C23AE97A.CE10%keir@xensource.com>
On Thu, 2007-04-05 at 17:59 +0100, Keir Fraser wrote:
> On 5/4/07 16:56, "Keir Fraser" <keir@xensource.com> wrote:
>
> > On 5/4/07 16:44, "Hollis Blanchard" <hollisb@us.ibm.com> wrote:
> >
> >> 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'.
> >
> > Just need to define bool_t appropriately. What do you need: a long?
>
> Does PowerPC support atomic byte loads and stores by the way (i.e.,
> concurrent loads and stores to adjacent bytes by different processors do not
> conflict with each other)?
Yes, there are single byte load and store instructions.
> In which case it might be worth keeping bool_t
> and defining atomic_bool_t or atomic_rmw_bool_t for bools that need to be
> atomically read-modified-written. That would avoid bloating critical
> structures for the few bools that need atomic r-m-w semantics.
If that's your preference.
However, as long as xchg() accepts all pointer types, this problem will
reoccur. We've had the same problem with the set_bit() interface in the
past, and I see x86 still uses a void* as the pointer argument there.
x86 Linux doesn't use void* for bitops and it's for exactly this reason.
These are not difficult changes to make, and solve real long-term
maintenance problems. I'm sure if x86 had this issue, an arch-neutral
API would have been in place from day one.
--
Hollis Blanchard
IBM Linux Technology Center
next prev parent reply other threads:[~2007-04-05 17:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200703302310.l2UNAF7O021926@xenbits2.xensource.com>
2007-04-05 15:44 ` [Xen-changelog] [xen-unstable] xen: Split domain_flags into discrete first-class fields in the Hollis Blanchard
2007-04-05 15:56 ` Keir Fraser
2007-04-05 16:59 ` Keir Fraser
2007-04-05 17:21 ` Hollis Blanchard [this message]
2007-04-05 17:08 ` Hollis Blanchard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1175793697.20895.39.camel@basalt \
--to=hollisb@us.ibm.com \
--cc=keir@xensource.com \
--cc=xen-devel@lists.xensource.com \
--cc=xen-ppc-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.