Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758430Ab2EAR5T (ORCPT ); Tue, 1 May 2012 13:57:19 -0400 Received: from mail-yw0-f46.google.com ([209.85.213.46]:47266 "EHLO mail-yw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758411Ab2EAR5L convert rfc822-to-8bit (ORCPT ); Tue, 1 May 2012 13:57:11 -0400 MIME-Version: 1.0 Reply-To: mtk.manpages@gmail.com In-Reply-To: References: <1335778207-6511-1-git-send-email-jack@suse.cz> From: "Michael Kerrisk (man-pages)" Date: Wed, 2 May 2012 05:56:50 +1200 Message-ID: Subject: Re: [PATCH] Describe race of direct read and fork for unaligned buffers To: KOSAKI Motohiro Cc: Jan Kara , LKML , linux-man@vger.kernel.org, linux-mm@kvack.org, mgorman@suse.de, Jeff Moyer Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1432 Lines: 48 On Wed, May 2, 2012 at 4:15 AM, KOSAKI Motohiro wrote: >> +suffices. However, if the user buffer is not page aligned and direct read > > One more thing. direct write also makes data corruption. Think > following scenario, In the light of all of the comments, can someone revise the man-pages patch that Jan sent? Thanks, Michael > 1) P1-T1 uses DIO write (and starting dma) > 2) P1-T2 call fork() and makes P2 > 3) P1-T3 write to the dio target page. and then, cow break occur and > original dio target > ? ?pages is now owned by P2. > 4) P2 write the dio target page. It now does NOT make cow break. and > now we break > ? ?dio target page data. > 5) DMA transfer write invalid data to disk. > > The detail is described in your refer URLs. > > >> +runs in parallel with a >> +.BR fork (2) >> +of the reader process, it may happen that the read data is split between >> +pages owned by the original process and its child. Thus effectively read >> +data is corrupted. >> ?.LP >> ?The >> ?.B O_DIRECT -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Author of "The Linux Programming Interface"; http://man7.org/tlpi/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/