From owner-freebsd-bugs@freebsd.org Fri Oct 20 02:52:59 2017 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 814EAE4DD27 for ; Fri, 20 Oct 2017 02:52:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (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 6FAA9647CE for ; Fri, 20 Oct 2017 02:52:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v9K2qxrL077672 for ; Fri, 20 Oct 2017 02:52:59 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 223059] [patch] consider skipped 2 pages in sw_nblks and add size check before blist_alloc Date: Fri, 20 Oct 2017 02:52:59 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-STABLE X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: ota@j.email.ne.jp X-Bugzilla-Status: Open X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Oct 2017 02:52:59 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D223059 --- Comment #2 from ota@j.email.ne.jp --- (In reply to Alan Cox from comment #1) I've seen 2 conditions when blist_alloc() failed massively. One case is when sizes of swap devices are imbalanced especially when one of them are significantly small or large, one or some of others gets filled. The other case is when more devices are added to avoid swap space exhaustio= n.=20 As soon as all existing devices are fulled, new ones will pick up all I/Os. In any cases, if a machine is busy swapping out pages, I also agree that failures of blist_alloc() are minor in performance as well. Also, blist_alloc needs to find a contentious region. Even if remaining blo= cks is more than requested, blist_alloc can fail due to fragmentation. --=20 You are receiving this mail because: You are the assignee for the bug.=