Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753295AbZG3Ljy (ORCPT ); Thu, 30 Jul 2009 07:39:54 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751642AbZG3Ljy (ORCPT ); Thu, 30 Jul 2009 07:39:54 -0400 Received: from relay1.sgi.com ([192.48.179.29]:44742 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751385AbZG3Ljx (ORCPT ); Thu, 30 Jul 2009 07:39:53 -0400 Date: Thu, 30 Jul 2009 06:39:51 -0500 From: Robin Holt To: Hugh Dickins Cc: Laurent Pinchart , linux-kernel@vger.kernel.org, v4l2_linux Subject: Re: Is get_user_pages() enough to prevent pages from being swapped out ? Message-ID: <20090730113951.GA2763@sgi.com> References: <200907291123.12811.laurent.pinchart@skynet.be> <200907291741.52783.laurent.pinchart@skynet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 996 Lines: 21 > > On Wednesday 29 July 2009 17:26:11 Hugh Dickins wrote: ... > > > On the other hand, despite the raised reference count, under memory > > > pressure that page might get unmapped from the user pagetable, and > > > might even be written out to swap in its half-dirty state (though One thing you did not mention in the above description is that the page is marked clean by the write-out to swap. I am not sure I recall the method of mapping involved here, but it is necessary to ensure the page is marked dirty again before the driver releases it. If the page is not marked dirty as part of your method of releasing it, the changes you have made between when the page was first written out and when you are freeing it will get lost. Thanks, Robin -- 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/