Messages in this thread | | | From | Jeff Moyer <> | Subject | Re: [PATCH] Describe race of direct read and fork for unaligned buffers | Date | Tue, 01 May 2012 11:11:26 -0400 |
| |
KOSAKI Motohiro <kosaki.motohiro@gmail.com> writes:
>> Hello, >> >> Thank you revisit this. But as far as my remember is correct, this issue is NOT >> unaligned access issue. It's just get_user_pages(_fast) vs fork race issue. i.e. >> DIRECT_IO w/ multi thread process should not use fork(). > > The problem is, fork (and its COW logic) assume new access makes cow break, > But page table protection can't detect a DMA write. Therefore DIO may override > shared page data.
Hm, I've only seen this with misaligned or multiple sub-page-sized reads in the same page. AFAIR, aligned, page-sized I/O does not get split. But, I could be wrong...
Cheers, Jeff
| |