Messages in this thread | | | Date | Tue, 11 Sep 2007 10:06:53 +0200 | From | Laurent Vivier <> | Subject | Re: [RESEND][PATCH 0/4] Virtual Machine Time Accounting |
| |
Alistair John Strachan wrote: > On Monday 10 September 2007 14:08:45 Laurent Vivier wrote: >> Avi Kivity wrote: >>> Ingo Molnar wrote: >>>> * Laurent Vivier <Laurent.Vivier@bull.net> wrote: >>>>> Ingo, please, could you have a look to these patches ? >>>>> >>>>> The aim of these four patches is to introduce Virtual Machine time >>>>> accounting. >>>>> >>>>> [PATCH 1/4] as recent CPUs introduce a third running state, after >>>>> "user" and "system", we need a new field, "guest", in cpustat to >>>>> store the time used by the CPU to run virtual CPU. Modify /proc/stat >>>>> to display this new field. >>>> the concept certainly looks sane to me. >>>> >>>> The heavy-handed use of #ifdefs uglifies the code to a large degree, >>>> but this is not a fundamental problem: since basically all distros >>>> have KVM enabled (and lguest benefits from this too), could you just >>>> make all this new code unconditional? >>> I imagine the embedded people will complain... perhaps move all the code >>> to a #ifdef section above with a full implementation and a stub >>> implementation. >> I'm going to repost patches without #ifdefs for readability. >> Then we could discuss if we should introduce #ifdefs and how. > > If you could provide a summary of the size increase from your latest post > (i.e., size of the kernel before and after) that might lay rest to some > theoretical complaints.
These patches add:
* at data structures level:
- one cputime64_t (8 bytes) per cpu - two cputime_t (2 * 4 bytes) per signal_struct and one cputime_t per task_struct
* at processing level:
- display and convert one more value in show_stat() (fs/proc/proc_misc.c) - display and convert two more values in do_task_stat() (fs/proc/array.c) - manage (copy and add) one more value in __exit_signal() (kernel/exit.c) - initialize three more fields in copy_signal (kernel/fork.c) - add a bit test in account_system_time() and if the bit is set call a new function (46 bytes on x86_64).
Size of stripped kernel before (on x86_64): vmlinux 7305064 bytes (not stripped 52643888 bytes) Size of stripped kernel after: vmlinux 7305064 bytes (not stripped 52677180 bytes)
means 0 bytes added ????
Laurent -- ------------- Laurent.Vivier@bull.net -------------- "Software is hard" - Donald Knuth
[unhandled content-type:application/pgp-signature] | |