Re: SCSI QLA not working on latest *-mm SN2

Matthew Wilcox
2004-09-21T21:11:09Z

On Tue, Sep 21, 2004 at 02:03:42PM -0700, Jeremy Higdon wrote:
> On Altix, we do have the sn_mmiob() option. I don't think that
> we want to Linux API to require that
>
> CPUA: writel(value_X, common_register)
> spin_unlock(common_lock)
>
> CPUB: spin_lock(common_lock)
> writel(value_Y, common_register)
>
> be strongly ordered, because it places a performance penalty
> on all writes.

I disagree with you. If this were memory, then you would expect
common_register to be set to value_Y after this sequence. Why should
IO be different?

> On Altix, we have the "sn_mmiob()" function to do
> that. I.e.
>
> CPUA: writel(value_X, common_register)
> sn_mmiob()
> spin_unlock(common_lock)
>
> CPUB: spin_lock(common_lock)
> writel(value_Y, common_register)
>
> would strongly order the writes.

I think your _raw_spin_unlock() should include an sn_mmiob().

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain