From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LUoi8-0007bQ-CE for qemu-devel@nongnu.org; Wed, 04 Feb 2009 15:51:04 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LUoi6-0007ap-1W for qemu-devel@nongnu.org; Wed, 04 Feb 2009 15:51:04 -0500 Received: from [199.232.76.173] (port=48874 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LUoi5-0007am-P2 for qemu-devel@nongnu.org; Wed, 04 Feb 2009 15:51:01 -0500 Received: from e38.co.us.ibm.com ([32.97.110.159]:47791) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LUoi5-0007aS-CM for qemu-devel@nongnu.org; Wed, 04 Feb 2009 15:51:01 -0500 Received: from d03relay05.boulder.ibm.com (d03relay05.boulder.ibm.com [9.17.195.107]) by e38.co.us.ibm.com (8.13.1/8.13.1) with ESMTP id n14KnIdn004493 for ; Wed, 4 Feb 2009 13:49:18 -0700 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay05.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id n14Koreu160480 for ; Wed, 4 Feb 2009 13:50:53 -0700 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n14KorWS008112 for ; Wed, 4 Feb 2009 13:50:53 -0700 Message-ID: <4989FF9B.4010809@us.ibm.com> Date: Wed, 04 Feb 2009 14:50:35 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1233750314-23301-1-git-send-email-avi@redhat.com> <1233750314-23301-2-git-send-email-avi@redhat.com> <4989EC29.9050705@us.ibm.com> <4989FACD.6090309@redhat.com> <4989FC3B.7010407@us.ibm.com> <4989FE92.5020400@redhat.com> In-Reply-To: <4989FE92.5020400@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 1/4] Add a scatter-gather list type and accessors Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org Avi Kivity wrote: > Anthony Liguori wrote: >>> >>> Is it possible to have a blanket license for files which don't have >>> explicit terms? I don't much like boilerplate. >> >> I'd greatly prefer not to. You can refer to a COPYING and we can >> have a default COPYING file but a copyright is really needed as far >> as I understand it. >> > > Okay. I'll add an explicit license and leave the generic license to > our esteemed maintainers. > >>>> Would be nice to check for malloc failures and fail gracefully at >>>> least. >>> >>> Do you mean an exit(1)? If so we could just put it in qemu_malloc(). >> >> In theory, some users may be able to cope with malloc failure. In >> practice, I don't think anyone can. I'm open to suggestion. > > malloc() will never fail on Linux with overcommit enabled; since Linux > is fairly useless without overcommit, it means you'll never see a > failure. Sure it will. You just have to run out of VA space. > Other ways of allocating memory (stack growth, first access to > anonymous memory) are not covered. They can fail (most ungracefully) > without strict overcommit control. > > So I suggest to have qemu_malloc() and its friends abort on failure. As I said, I'm not at all opposed to this. glib does this and it makes life a lot easier. >>> I expect this to trigger rarely since the allocation hint should >>> suffice nearly 100% of the time. But in case we miss, it's better >>> to reallocate as little as possible. >>> >>> (what I really want is std::vector<>) >> >> Which I'm pretty sure has a linear growth strategy :-) > > Not in any of the implementations I'm familiar with. I believe > std::vector<> is required to have amortized O(1) append operations. Linear growth doesn't imply element-by-element growth. You can have a coefficient > 1. Regards, Anthony Liguori