(2014/03/04 14:35), Miao Xie wrote:
> Onthu, 27 Feb 2014 21:44:23 +0900, Yasuaki Ishimatsu wrote:
>> When doing aio ring page migration, we migrated the page, and update
>> ctx->ring_pages[]. Like the following:
>>
>> aio_migratepage()
>> |-> migrate_page_copy(new, old)
>> | ..
>> + /*
>> + * Ensure that the page's data was copied from old one by
>> + * aio_migratepage().
>> + */
>> + smp_rmb();
>> +
>
> smp_read_barrier_depends() is better.
>
> "One could place an A smp_rmb() primitive between the pointer
+ /*
+ * Ensure that the page's data was copied from old one by
+ * aio_migratepage().
+ */
+ smp_rmb();
+
smp_read_barrier_depends() is better.
One could place an A smp_rmb() primitive between the pointer fetch and
(2014/03/04 14:35), Miao Xie wrote:
Onthu, 27 Feb 2014 21:44:23 +0900, Yasuaki Ishimatsu wrote:
When doing aio ring page migration, we migrated the page, and update
ctx-ring_pages[]. Like the following:
aio_migratepage()
|- migrate_page_copy(new, old)
| ..
On thu, 27 Feb 2014 21:44:23 +0900, Yasuaki Ishimatsu wrote:
> When doing aio ring page migration, we migrated the page, and update
> ctx->ring_pages[]. Like the following:
>
> aio_migratepage()
> |-> migrate_page_copy(new, old)
> | .. /* Need barrier here
On thu, 27 Feb 2014 21:44:23 +0900, Yasuaki Ishimatsu wrote:
When doing aio ring page migration, we migrated the page, and update
ctx-ring_pages[]. Like the following:
aio_migratepage()
|- migrate_page_copy(new, old)
| .. /* Need barrier here */
|-
When doing aio ring page migration, we migrated the page, and update
ctx->ring_pages[]. Like the following:
aio_migratepage()
|-> migrate_page_copy(new, old)
| .. /* Need barrier here */
|-> ctx->ring_pages[idx] = new
Actually, we need a memory barrier
When doing aio ring page migration, we migrated the page, and update
ctx-ring_pages[]. Like the following:
aio_migratepage()
|- migrate_page_copy(new, old)
| .. /* Need barrier here */
|- ctx-ring_pages[idx] = new
Actually, we need a memory barrier between
8 matches
Mail list logo