From owner-svn-src-projects@FreeBSD.ORG Mon Apr 7 13:03:58 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EC2F3973; Mon, 7 Apr 2014 13:03:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D9899BBD; Mon, 7 Apr 2014 13:03:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s37D3wUH044454; Mon, 7 Apr 2014 13:03:58 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s37D3w34044453; Mon, 7 Apr 2014 13:03:58 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201404071303.s37D3w34044453@svn.freebsd.org> From: Gleb Smirnoff Date: Mon, 7 Apr 2014 13:03:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r264228 - projects/sendfile/sys/kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Apr 2014 13:03:59 -0000 Author: glebius Date: Mon Apr 7 13:03:58 2014 New Revision: 264228 URL: http://svnweb.freebsd.org/changeset/base/264228 Log: Do not assert that pages grabbed for readahead, are still there. A race is possible when at this point read has already completed, and since we do not hold wiring on the page, VM is able to remove it from object. Sponsored by: Nginx, Inc. Sponsored by: Netflix Modified: projects/sendfile/sys/kern/uipc_syscalls.c Modified: projects/sendfile/sys/kern/uipc_syscalls.c ============================================================================== --- projects/sendfile/sys/kern/uipc_syscalls.c Mon Apr 7 13:02:05 2014 (r264227) +++ projects/sendfile/sys/kern/uipc_syscalls.c Mon Apr 7 13:03:58 2014 (r264228) @@ -2796,7 +2796,7 @@ sendfile_swapin(vm_object_t obj, struct SFSTAT_INC(sf_iocnt); nios++; - for (j = i; j < i + count; j++) + for (j = i; j < i + count && j < npages; j++) KASSERT(pa[j] == vm_page_lookup(obj, OFF_TO_IDX(vmoff(j, off))), ("pa[j] %p lookup %p\n", pa[j],