From owner-freebsd-hackers@FreeBSD.ORG Wed Apr 16 21:25:10 2014 Return-Path: Delivered-To: freebsd-hackers@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 B831C6C4 for ; Wed, 16 Apr 2014 21:25:10 +0000 (UTC) Received: from mail-pa0-f52.google.com (mail-pa0-f52.google.com [209.85.220.52]) (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 8BF4B12F8 for ; Wed, 16 Apr 2014 21:25:10 +0000 (UTC) Received: by mail-pa0-f52.google.com with SMTP id rd3so11358270pab.25 for ; Wed, 16 Apr 2014 14:25:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version:content-type; bh=dugg85qMO/Copr9U3zWahccNs+4iBqvGW3vtxhOfIFg=; b=GwnpMxgiWCwNIrfe9XOzASKib8oKF8Y5+8/FDXq5l40QCbgiDPE/QINpNpXrHeU/ig cEVC/dC4X3myLX+feZ1iWItaQcMTlOc6I6qyNZApGmEp1n8QxYFDL1rCzhchDUKJtXEX 38epGUKli/Yn9k3hTQJzTOrybdDWjTVWkDtW7+9rw8Ums91H1w9vqcK+tSd6EHL58Xgr QWEGWS7hYIkDFsU8PxtkjGD/0sR+n0GbDfHG0q1//PjDXJrOuOQdouLGcwbl83OchgBW Zxj2uBuvpgdYbHPEWnL6ke/kNOIetR0eBjTMLoARKT/g6iBKbSvzS3swH5E66NRNBopr 0elA== X-Gm-Message-State: ALoCoQkhNZOszTB+IvnvEWft71qKkylnLh5YgmaJ51ST5jwnT+g7t2m39CWqXuudeIoX4z+kYFz2 X-Received: by 10.68.239.70 with SMTP id vq6mr10960888pbc.152.1397683510027; Wed, 16 Apr 2014 14:25:10 -0700 (PDT) Received: from rrcs-66-91-135-210.west.biz.rr.com (rrcs-66-91-135-210.west.biz.rr.com. [66.91.135.210]) by mx.google.com with ESMTPSA id pb7sm116241875pac.10.2014.04.16.14.25.08 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 16 Apr 2014 14:25:09 -0700 (PDT) Date: Wed, 16 Apr 2014 11:21:04 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Navdeep Parhar Subject: Re: vmem(9) with M_FIRSTFIT In-Reply-To: <534EF4DD.4000200@FreeBSD.org> Message-ID: References: <534EF4DD.4000200@FreeBSD.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Mailman-Approved-At: Wed, 16 Apr 2014 21:46:39 +0000 Cc: freebsd-hackers@freebsd.org, Jeff Roberson X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Apr 2014 21:25:10 -0000 On Wed, 16 Apr 2014, Navdeep Parhar wrote: > I'm trying to use vmem with M_FIRSTFIT strategy but it causes an > assertion failure in vmem_xalloc. The problem is that qc_import sets > M_BESTFIT in the flags passed to it before passing them on to > vmem_xalloc. vmem_xalloc then complains because both FIRSTFIT and > BESTFIT are set. > > Does anyone know why qc_import insists on M_BESTFIT? Is it safe to > change it as shown here? Likely just an oversight on my part. > > if ((flags & VMEM_FITMASK) == 0) > flags |= M_BESTFIT; This seems fine. Jeff > > Regards, > Navdeep > > > (kgdb) p panicstr > $4 = 0xffffffff814ed960 "Assertion strat == M_BESTFIT || strat == > M_FIRSTFIT failed at /usr/src/sys/kern/subr_vmem.c:1113" > (kgdb) bt > ... > #10 0xffffffff808e2a38 in kassert_panic (fmt=) at > /usr/src/sys/kern/kern_shutdown.c:644 > #11 0xffffffff80931ac4 in vmem_xalloc (vm=0xfffff800cc1dd000, > size0=, align=0, phase=0, > nocross=0, minaddr=0, maxaddr=, flags= optimized out>, addrp=0x12) > at /usr/src/sys/kern/subr_vmem.c:1113 > #12 0xffffffff80933bcc in qc_import (arg=0xfffff800cc1dd488, > store=0xfffff800475a6418, cnt=125, > flags=) at /usr/src/sys/kern/subr_vmem.c:507 > #13 0xffffffff80b5ee00 in uma_zalloc_arg (zone=0xfffff8001345d480, > udata=0x0, flags=4097) > at /usr/src/sys/vm/uma_core.c:2535 > #14 0xffffffff809319e9 in vmem_alloc (vm=0xfffff800cc1dd000, size= optimized out>, flags=4097, > addrp=0xfffffe0238422868) at uma.h:336 > #15 0xffffffff809a955c in do_setopt_tx_throttle (so=0xfffff80047b95000, > sopt=) > at /usr/src/sys/net/flow_throttle.c:379 > ... >