atom feed7 messages in org.oasis-open.lists.virtio-devRe: [virtio-dev] [PATCH] give explic...
FromSent OnAttachments
James BottomleyApr 12, 2015 9:06 am 
Michael S. TsirkinApr 12, 2015 9:22 am 
James BottomleyApr 12, 2015 9:34 am 
Michael S. TsirkinApr 12, 2015 10:20 am 
James BottomleyApr 12, 2015 11:14 am 
Michael S. TsirkinApr 12, 2015 12:12 pm 
James BottomleyApr 12, 2015 12:51 pm 
Subject:Re: [virtio-dev] [PATCH] give explicit guidance on the use of 64 bit fields
From:Michael S. Tsirkin (ms@redhat.com)
Date:Apr 12, 2015 10:20:00 am
List:org.oasis-open.lists.virtio-dev

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 <JBot@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".

It's non normative because it doesn't apply to any existing devices. It's a guideline for future devices. 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.