svn commit: r223464 - head/sys/vm

Jayachandran C. c.jayachandran at gmail.com
Fri Jun 24 03:31:40 UTC 2011


On Fri, Jun 24, 2011 at 1:33 AM, Alan Cox <alc at rice.edu> wrote:
> On 6/23/2011 1:30 PM, Warner Losh wrote:
>>
>> On Jun 23, 2011, at 2:17 AM, Bjoern A. Zeeb wrote:
>>
>>> On Jun 23, 2011, at 5:24 AM, Alan Cox wrote:
>>>
>>>> Author: alc
>>>> Date: Thu Jun 23 05:23:59 2011
>>>> New Revision: 223464
>>>> URL: http://svn.freebsd.org/changeset/base/223464
>>>>
>>>> Log:
>>>> Revert to using the page queues lock in vm_page_clear_dirty_mask() on
>>>> MIPS.  (At present, although atomic_clear_char() is defined by atomic.h
>>>> on MIPS, it is not actually implemented by support.S.)
>>>
>>> Thanks,
>>> and good catch on the atomics even if not planned, just in time for 9.0:)
>>
>> Yea, there's some work there to fix them...  Not sure we can even fix some
>> of them atomically...
>>
>
> I'm not sure that I understand what you mean by the second statement.  Can
> you elaborate?  The 8- and 16-bit operations should be no less "atomic" than
> the 32- and 64-bit operations.  In general, regardless of the size of the
> operation, the "sc" instruction may fail and the whole operation has to be
> restarted if another processor (or I/O device) performs a concurrent, cache
> coherent store to the same location (or even cache line) as the "ll" and
> "sc" instructions are operating on.  On the other hand, if the "sc"
> instruction succeeds, whether you used it to change all of the 32 bits or
> just 8 of the 32 bits, it should appear as an atomic change to any other
> processor.

I will try out an implementation and see if this works on XLR, if so
this is something we can add to support.S

JC.


More information about the svn-src-head mailing list