----- Mail original ----- > De: "Paolo Bonzini" <pbonz...@redhat.com> > À: "Sebastian Tanase" <sebastian.tan...@openwide.fr>, qemu-devel@nongnu.org > Cc: aligu...@amazon.com, afaer...@suse.de, r...@twiddle.net, "peter maydell" > <peter.mayd...@linaro.org>, > mich...@walle.cc, a...@alex.org.uk, stefa...@redhat.com, > lcapitul...@redhat.com, crobi...@redhat.com, > arm...@redhat.com, wenchaoq...@gmail.com, quint...@redhat.com, > kw...@redhat.com, m...@tls.msk.ru, m...@redhat.com > Envoyé: Lundi 30 Juin 2014 19:16:48 > Objet: Re: [RFC PATCH V3 0/6] icount: Implement delay algorithm between guest > and host clocks > > Il 30/06/2014 15:59, Sebastian Tanase ha scritto: > > The icount option already implemented in QEMU allows the guest to > > run at a theoretical > > frequency of 1/(2^N) GHz (N is the icount parameter). The goal of > > this patch is to have a > > real guest frequency close to the one imposed by using the icount > > option. > > > > The main idea behind the algorithm is that we compare the virtual > > monotonic clock and the > > host monotonic clock. For big icounts (on our test machine, an i5 > > CPU @ 3.10GHz, icounts > > starting at 6) the guest clock will be ahead of the host clock. In > > this case, we try to > > sleep QEMU for the difference between the 2 clocks. Therefore, the > > guest would have > > executed for a period almost equally to the one imposed by icount. > > We should point out > > that the algorithm works only for those icounts that allow the > > guest clock to be in front > > of the host clock. > > > > The first patch adds support for QemuOpts for the 'icount' > > parameter. It also adds a > > suboption called 'shift' that will hold the value for 'icount'. > > Therefore we now have > > -icount shift=N|auto or -icount N|auto. > > > > The second patch adds the 'align' suboption for icount. > > > > The third patch exports 'icount_time_shift' so that it can be used > > in places other than > > cpus.c; we need it in cpu-exec.c for calculating for how long we > > want QEMU to sleep. > > > > The forth patch implements the algorithm used for calculating the > > delay we want to sleep. > > It uses the number of instructions executed by the virtual cpu and > > also the icount_time_shift. > > > > The fifth patch prints to the console whenever the guest clock runs > > behind the host > > clock. The fastest printing speed is every 2 seconds, and we only > > print if the align option > > is enabled. We also have a limit to 100 printed messages. > > > > The sixth patch adds information about the difference between the > > host and guest clocks > > (taking into account the offset) in the 'info jit' command. We also > > print the maximum > > delay and advance of the guest clock compared to the host clock. > > I think the changes I made are too big to get this in 2.1, but we can > certainly get this very early in 2.2 instead. I'll shortly push my > changes to an "icount" branch at github.com/bonzini/qemu.git. Can > you > look at it and rebase patches 5 and 6 on top (plus the small change I > asked for in my review of patch 2)? > > Thanks, > > Paolo > >
Sure, I'll prepare a V4 with all the changes, rebased on your "icount" branch. Sebastian