OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-dev] [PATCH] give explicit guidance on the use of 64 bit fields


On Sun, 2015-04-12 at 19:20 +0200, Michael S. Tsirkin wrote:
> On Sun, Apr 12, 2015 at 04:34:05PM +0000, James Bottomley wrote:
> > On Sun, 2015-04-12 at 18:22 +0200, Michael S. Tsirkin wrote:
> > > On Sun, Apr 12, 2015 at 04:06:28PM +0000, James Bottomley wrote:
> > > > Just saying 64 bit fields may not be atomic is true, but less helpful
> > > > than it might be.  Add explicit guidance about what the consequences of
> > > > non-atomicity are
> > > > 
> > > > Signed-off-by: James Bottomley <JBottomley@Odin.com>
> > > > 
> > > > ---
> > > > diff --git a/newdevice.tex b/newdevice.tex
> > > > index c7e6221..12123b9 100644
> > > > --- a/newdevice.tex
> > > > +++ b/newdevice.tex
> > > > @@ -24,6 +24,8 @@ large).
> > > >  
> > > >  Remember that configuration fields over 32 bits wide might not be
> > > >  atomically writable by the driver.
> > > > +Therefore, no writeable field which triggers an action should be wider than 32
> > > > +bits.
> > > >  
> > > >  \section{What Device Number?}\label{sec:Creating New Device Types / What Device Number?}
> > > >  
> > > > 
> > > > 
> > > 
> > > 
> > > It's best to avoid the word "should" outside normative statements.
> > > Can you rephrase this?
> > 
> > I've got to say that's a bit daft: should is the standard verbal
> > modifier for conditional or subjunctive ... it's quite a big chunk of
> > the english language.
> > 
> > However, to be honest, I think the statement needs to be normative.
> > It's not advisory: if someone creates a 64 bit action field the spec
> > becomes invalid on 32 bit architectures.
> > 
> > The only valid reason to ignore the statement is if your action field
> > has a specifically defined trigger (like only 32 bit writes to the lower
> > field triggers the action, so you write upper first then lower).  That's
> > why I think it's "should" rather than "may not".
> > 
> > James
> > 
> > 
> > James
> > 
> 
> It's non normative because it doesn't apply to any existing devices.
> It's a guideline for future devices.

But it does apply to current devices: no current device has an action
field wider than 32 bits, so they all currently obey it.

> How about:
> 
> Therefore, it is preferable not to make writeable fields wider than 32
> bits. In any case, do not make writes into fields wider than 32 
> bits trigger device actions.

It's a bit verbose.  Clarity is usually in simplicity.  The simplest way
to express should in English without actually saying "should" is "ought
to", so

        Therefore, no writeable field which triggers an action ought to
        be wider than 32 bits

James



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]