From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LirD6-0005sx-PC for qemu-devel@nongnu.org; Sun, 15 Mar 2009 10:21:04 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LirD1-0005s1-99 for qemu-devel@nongnu.org; Sun, 15 Mar 2009 10:21:03 -0400 Received: from [199.232.76.173] (port=46634 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LirD1-0005rw-6P for qemu-devel@nongnu.org; Sun, 15 Mar 2009 10:20:59 -0400 Received: from mail-fx0-f161.google.com ([209.85.220.161]:57545) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LirD0-0005h5-Qj for qemu-devel@nongnu.org; Sun, 15 Mar 2009 10:20:58 -0400 Received: by fxm5 with SMTP id 5so761498fxm.34 for ; Sun, 15 Mar 2009 07:20:57 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <68bb87b70903140917m7395453fwabda4ff1a5ed3b5a@mail.gmail.com> References: <68bb87b70903140917m7395453fwabda4ff1a5ed3b5a@mail.gmail.com> Date: Sun, 15 Mar 2009 16:20:56 +0200 Message-ID: Subject: Re: [Qemu-devel] Help on effort estimation From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On 3/14/09, Patrizio Boschi wrote: > Hi, I'm doing some academical research about the development of device > emulators. So far I managed to create an emulator of a simple PCI > device (Intel i6300ESB watchdog timer) just to get an idea of the > development process in QEMU, and studied some of the other emulators > in qemu/hw. I was also looking for some basic metrics (e.g. sloc, > emulator sloc/driver sloc, function points) and models (e.g. cocomo > II) to do some effort estimation (e.g. how many person-month to > emulate a particular device model?). > > At this point, a little help from you would really benefit my studies > and research. So... the questions are very simple :) > - does someone have old or future development schedules for some of > the qemu modules to share? You could look at the SVN log of some x86 devices and make the assumption that they are fully implemented now. > - could someone (roughly) estimate the work-days needed to develop the > emulator of a very simplce device (e.g. an hardware timer), an hard > one (e.g. a VMEbus bridge with poor documentation), a mid one (e.g. an > ethernet card), given an experienced programmer? I think the time needed depends more on whether similar devices exist or if you have to create a completely new class of device from scratch. It's possible to develop a working device in a day or two. Finding out all obscure corner cases may take much longer time, but usually when a bug or deviation is discovered, fixing it is easy. > - could someone (roughly) estimate which are the prerequisites to > successfully develop a particular device emulator? (e.g. datasheet, > real hardware, driver source code, vendor help, luck, girls, ...) A good, accurate datasheet (or if there is an electrical datasheet and a user's manual, the latter) is number one. It's possible to develop an emulator using driver source code, but that may not handle all cases (those that drivers in another OS may use). The driver may describe workarounds for device errata which may have been unknown when the datasheet was published.