[lkml]   [2007]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [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 <> 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 ????

    ------------- --------------
    "Software is hard" - Donald Knuth

    [unhandled content-type:application/pgp-signature]
     \ /
      Last update: 2007-09-11 10:09    [W:0.026 / U:10.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site