Linux Container Development
 help / color / mirror / Atom feed
From: Pavel Emelyanov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
To: Cedric Le Goater <clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
Cc: Linux Containers <containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: Kernel text size with the pid namespaces fixes
Date: Tue, 25 Sep 2007 18:32:44 +0400	[thread overview]
Message-ID: <46F91C0C.2060303@openvz.org> (raw)
In-Reply-To: <46F90381.4040304-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>

Cedric Le Goater wrote:
> Hello Pavel !
> 
> Pavel Emelyanov wrote:
>> Hi, Suka
>>
>> I have posted tree patches with un-inlining of some macros
>> and static inline calls that are expanded into another call.
>>
>> At my i386 notebook this saved about half-a-kilo from the
>> vmlinux. Could you please check these patches at your
>> boxes/configs to see how much progress we have here.
>>
>> Here's the combined patch for 2.6.24-rc8-mm1
> 
> on my qemu configuration, scripts/bloat-o-meter gave the following 
> results.
> 
> it would be interesting to run some micro benchmark. Did you have
> time to do that ?
> 
> Thanks,
> 
> C. 
> 
> add/remove: 9/0 grow/shrink: 3/47 up/down: 194/-683 (-489)
> function                                     old     new   delta
> find_task_by_vpid                              -      29     +29
> find_vpid                                      -      25     +25
> task_tgid_nr_ns                                -      22     +22
> task_session_nr_ns                             -      22     +22
> task_pgrp_nr_ns                                -      22     +22
> find_task_by_pid                               -      19     +19
> task_pid_nr_ns                                 -      16     +16
> find_task_by_pid_ns                            -      16     +16
> find_pid                                       -      15     +15
> proc_task_readdir                            762     766      +4
> msg_exit_ns                                  117     119      +2
> _request_firmware                            688     690      +2
> nfs_readpage_truncate_uninitialised_page     298     297      -1
> sys_swapoff                                 1898    1896      -2

I see you have an interesting effect as well. Look, if you generate
the .i file for mm/swapfile.c (the one where sys_swapoff is) for
two cases - with and without this patch - you will see that the
.i files differ in one place only - the find_task_xxx calls have
transformed from macros into extern calls and (!) no places in
this sys_swapoff() use them. 

            The question is - WHY its size changed?
        Why gcc produces different code on the same input?

BTW, you're lucky - your sys_swapoff shrank, but mine grew up just
like yours msg_exit_ns() which has nothing to do with the functions
changed :(

> set_get_cmap                                 332     330      -2
> __iovec_copy_from_user_inatomic               88      86      -2
> proc_pid_readdir                             438     434      -4
> init_pit_clocksource                          82      78      -4
> do_notify_parent_cldstop                     297     293      -4
> do_notify_parent                             394     390      -4
> kill_proc                                     39      34      -5
> sys_timer_create                             720     713      -7
> do_setlink                                   796     789      -7
> debug_rt_mutex_print_deadlock                406     399      -7
> check_clock                                  122     115      -7
> rest_init                                     78      69      -9
> posix_cpu_clock_get                          221     212      -9
> __set_special_pids                           154     144     -10
> vma_adjust                                   855     844     -11
> tty_ioctl                                   3274    3263     -11
> kthreadd                                     248     237     -11
> sys_kill                                     313     301     -12
> sys_capget                                   285     273     -12
> sys_getsid                                   128     114     -14
> sys_getpgid                                  128     114     -14
> posix_cpu_timer_create                       240     226     -14
> kill_proc_info                                45      31     -14
> find_get_pid                                  31      16     -15
> sys_sched_getscheduler                        92      76     -16
> sys_sched_getparam                           143     127     -16
> sys_get_robust_list                          149     133     -16
> sched_setaffinity                            259     243     -16
> sched_getaffinity                            114      98     -16
> ptrace_get_task_struct                        90      74     -16
> futex_lock_pi                               2435    2419     -16
> f_setown                                      68      52     -16
> do_tkill                                     280     264     -16
> do_sched_setscheduler                        113      97     -16
> sys_sched_rr_get_interval                    161     141     -20
> sys_capset                                   702     681     -21
> eligible_child                               215     191     -24
> do_task_stat                                2135    2107     -28
> sys_setpriority                              446     416     -30
> sys_setpgid                                  419     389     -30
> sys_ioprio_set                               471     441     -30
> sys_ioprio_get                               388     358     -30
> sys_getpriority                              439     409     -30
> proc_pid_status                             1216    1186     -30
> do_wait                                     2677    2639     -38
> 

      parent reply	other threads:[~2007-09-25 14:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-25 11:00 Kernel text size with the pid namespaces fixes Pavel Emelyanov
     [not found] ` <46F8EA61.9030707-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2007-09-25 12:48   ` Cedric Le Goater
     [not found]     ` <46F90381.4040304-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2007-09-25 14:28       ` Pavel Emelyanov
2007-09-25 14:32       ` Pavel Emelyanov [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46F91C0C.2060303@openvz.org \
    --to=xemul-gefaqzzx7r8dnm+yrofe0a@public.gmane.org \
    --cc=clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox