From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751132AbdEBJrG (ORCPT ); Tue, 2 May 2017 05:47:06 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:56784 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750884AbdEBJrF (ORCPT ); Tue, 2 May 2017 05:47:05 -0400 Date: Tue, 2 May 2017 12:46:55 +0300 From: Mike Rapoport To: "Michael Kerrisk (man-pages)" Cc: Andrea Arcangeli , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-man@vger.kernel.org Subject: Re: [PATCH man-pages 4/5] userfaultfd.2: add note about asynchronios events delivery References: <1493617399-20897-1-git-send-email-rppt@linux.vnet.ibm.com> <1493617399-20897-5-git-send-email-rppt@linux.vnet.ibm.com> <5fb9e169-5d92-2fe8-cc59-5c68cfb6be72@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5fb9e169-5d92-2fe8-cc59-5c68cfb6be72@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17050209-0040-0000-0000-0000039A8FBE X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17050209-0041-0000-0000-00001FF0935D Message-Id: <20170502094654.GC5910@rapoport-lnx> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-05-02_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705020057 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 01, 2017 at 08:33:45PM +0200, Michael Kerrisk (man-pages) wrote: > Hi Mike, > > On 05/01/2017 07:43 AM, Mike Rapoport wrote: > > Signed-off-by: Mike Rapoport > > Thanks. Applied. One question below. > > > --- > > man2/userfaultfd.2 | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2 > > index 8b89162..f177bba 100644 > > --- a/man2/userfaultfd.2 > > +++ b/man2/userfaultfd.2 > > @@ -112,6 +112,18 @@ created for the child process, > > which allows userfaultfd monitor to perform user-space paging > > for the child process. > > > > +Unlike page faults which have to be synchronous and require > > +explicit or implicit wakeup, > > +all other events are delivered asynchronously and > > +the non-cooperative process resumes execution as > > +soon as manager executes > > +.BR read(2). > > +The userfaultfd manager should carefully synchronize calls > > +to UFFDIO_COPY with the events processing. > > + > > +The current asynchronous model of the event delivery is optimal for > > +single threaded non-cooperative userfaultfd manager implementations. > > The preceding paragraph feels incomplete. It seems like you want to make > a point with that last sentence, but the point is not explicit. What's > missing? I've copied both from Documentation/vm/userfaulftfd.txt, and there we also talk about possibility of addition of synchronous events delivery and that makes the paragraph above to seem crippled :) The major point here is that current events delivery model could be problematic for multi-threaded monitor. I even suspect that it would be impossible to ensure synchronization between page faults and non-page fault events in multi-threaded monitor. > > + > > .\" FIXME elaborate about non-cooperating mode, describe its limitations > > .\" for kernels before 4.11, features added in 4.11 > > .\" and limitations remaining in 4.11 > > > > Cheers, > > Michael > > > > -- > Michael Kerrisk > Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ > Linux/UNIX System Programming Training: http://man7.org/training/ >