From owner-svn-src-all@FreeBSD.ORG Wed Jun 25 13:44:38 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A3DC8C72; Wed, 25 Jun 2014 13:44:38 +0000 (UTC) Received: from mail-wg0-x22c.google.com (mail-wg0-x22c.google.com [IPv6:2a00:1450:400c:c00::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 98E622997; Wed, 25 Jun 2014 13:44:37 +0000 (UTC) Received: by mail-wg0-f44.google.com with SMTP id x13so2078629wgg.27 for ; Wed, 25 Jun 2014 06:44:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=6gtxr1+gzdZPIw642th4Oa1C50rDDUWRY8a+45XwXZU=; b=u7ojd/C9cgqmbJY/6yIYQgs8ne+aTh1EuAuTgywpLMoEJXn+W6UDxmruZhHA/nLhyK EVkoYVo6fBbyrQISVQBYrLaBNWeBjZxqeS2ioabzLjz2ic8+uiOaeluuOUPJDQ3716Tr NezW9glSJB7j/PCDR/G6Y88WDAHd6ACVMzi+FRT0N19Lku9vF4zu38LDzyItq34bpcFV Zx7MaGTUQVkaD+xDfMW4aXwQ8wA52dW45cQ5JOKm+fnI3XcCe7qmxqU8buhaRcxbsKT+ IECbwW+OmWfiwQVj0kCquiWLvEEYajY/EDZ4qMJkPLX2f+LMfDLzhKoisbVVcoQ8BhZn 55pw== MIME-Version: 1.0 X-Received: by 10.194.120.103 with SMTP id lb7mr9688428wjb.40.1403703875102; Wed, 25 Jun 2014 06:44:35 -0700 (PDT) Reply-To: attilio@FreeBSD.org Sender: asmrookie@gmail.com Received: by 10.217.46.129 with HTTP; Wed, 25 Jun 2014 06:44:35 -0700 (PDT) In-Reply-To: <53AACEAB.3090702@FreeBSD.org> References: <201406250951.s5P9p8YR017159@svn.freebsd.org> <53AACEAB.3090702@FreeBSD.org> Date: Wed, 25 Jun 2014 15:44:35 +0200 X-Google-Sender-Auth: VGLOkrKL4E6uXMqMhDifQTAlCJk Message-ID: Subject: Re: svn commit: r267858 - in head/sys/dev: virtio/balloon xen/balloon From: Attilio Rao To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Alan Cox , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2014 13:44:38 -0000 On Wed, Jun 25, 2014 at 3:29 PM, Roger Pau Monn=C3=A9 = wrote: > On 25/06/14 13:58, Attilio Rao wrote: >> On Wed, Jun 25, 2014 at 11:51 AM, Roger Pau Monn=C3=A9 wrote: >>> Author: royger >>> Date: Wed Jun 25 09:51:08 2014 >>> New Revision: 267858 >>> URL: http://svnweb.freebsd.org/changeset/base/267858 >>> >>> Log: >>> xen/virtio: fix balloon drivers to not mark pages as WIRED >>> >>> Prevent the Xen and VirtIO balloon drivers from marking pages as >>> wired. This prevents them from increasing the system wired page count= , >>> which can lead to mlock failing because of hitting the limit in >>> vm.max_wired. >> >> This change is conceptually wrong. >> The pages balloon is allocating are unmanaged and they should be wired >> by definition. Alan and I are considering enforcing this (mandatory >> wired pages for unmanaged pages allocation) directly in the KPI. >> This in practice just seem an artifact to deal with scarce wired >> memory limit. I suggest that for the XEN case this limit gets bumped >> rather relying on similar type of hacks. > > IMHO, marking them as wired seems wrong too, those pages are not wired, > they are simply not there any more. This was discussed in: I'm not entirely sure what do you mean with "not there anymore", so I'm just guessing and I assume that you mean "pages are not collected in any vm object and then they are not referenced in any pagequeue". By extension this also matches what "unmanaged page" means. If the page is unmanaged it means that the pagedaemon won't see it, so they won't be swapped out anyway. Wiring them it will enforce more sanity checking on the page. The max_wired concern may be real, however, please see below. > http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-June/00264= 3.html > > If there's consensus I will revert the change, but I would say that > increasing vm.max_wired for VMs is also a gross hack. Why? If VM needs more wired memory I assume that we can tune up the default value of max_wired? I think that however your case makes an interesting point: if we want to make unmanaged pages as inherently wired, we likely need a little bit higher max_wired value. When I completed a patch for this, pho@ couldn't reproduce any similar issue even with stress-testing (and also, the places to allocate unmanaged pages and not requesting VM_ALLOC_WIRED were very little, almost 0, with the exception of vm_page_alloc_contig() calls) but I think it is a valid proposition. However I would still like to have more control on kernel-specific wired memory for processes. I'm for example thinking to ARC vs. buffer cache, where I expect the wired memory consumption to be much bigger for the former case. Attilio --=20 Peace can only be achieved by understanding - A. Einstein