[manual reply, no access to original content] Hi, rather NACKish here (from my minor side, that is, since there are no useful explanations, and in the case of a lack of explanations no backing numbers either which would have been helpful to resolve this ;). "x86: add optimized inlining" (http://kerneltrap.org/mailarchive/git-commits-head/2008/4/26/1612644) does not really say anything relevant to your patch, AFAICS. That one simply says that previously every inline was force-inlined (ugh), which now gcc is allowed to properly decide by itself now. This, however, does _NOT_ imply that it's now somehow fully sufficient for a perfect outcome to simply remove all open-coded "inline"s. This part here:is especially "nice" since it's now a non-inlined multi-call, with 2 parameters each and 6 callsites within sched.c. Using this admittedly worst-caseish part as a simple compile testcase, I get 67013 vs. previously 66920 bytes for sched.o on x86 (gcc 4.2.3, 2.6.26-rc1). Removing all "inline"s, we end up at 67891 even. Size indicates that it's an increase in complexity, but size is not even the problem here, the problem is that these calls are used in inner scheduling / migration code, AFAICS, where a simple pointer comparison now turns into a 2-parametric multi-call. Examining this thing more closely (objdump, nm), I see that it did inline task_running and chose to not inline task_current (which it was before, and that seems like a wrong compiler decision). OK, I know that it's not "chic" to argue about inlining stuff, especially since it's such a b**ch to manage (do we inline this or don't we, and what if the function silently grows to become an inlining penalty?). But in this case you seem to have brushed all criticism aside with an argument (pointing to the other patch) that to me doesn't seem to hold in the first place. Also, sched.c isn't architecture-specific, IOW it will be used by architectures with all kinds of ranges of "implementation dumbness". Some of those may have lots of issues due to weak instruction caches or badly-performing function invocation. So, again, - non-"inline"d functions sometimes (sufficiently frequently?) do not seem to get inlined no matter how small - sched.c is very central, non-architecture-specific code - looking at a "nice" size reduction really does _not_ matter (relatively) for such a centrally, frequently used code, what matters is performance - the consequences of this change to me seem just a wee bit too gross to swallow As long as compiler intelligence in the realms of inlining seems spotty, I'd refrain from cleaning up centrally used, critical code. Removing inlines in driver code which is rarely used (with the objective of gaining size reductions, of course) is an entirely different discussion with easily more positive outcome, I'd say. If even x86 gcc (4.2.3) seems to do the wrong thing here, then I really don't want to know what much less prominently compiler-optimized architectures would end up with. Just my thoughts (keep it or burn it), Andreas Mohr --
| David Miller | Re: [patch 7/8] fdmap v2 - implement sys_socket2 |
| Sean | Re: [AppArmor 39/45] AppArmor: Profile loading and manipulation,pathname matching |
| Andi Kleen | Re: missing madvise functionality |
| Alan Cox | [PATCH 03/57] ali: watchdog locking and style |
git: | |
| Guido Ostkamp | [PATCH] Fix Solaris Workshop Compiler issues |
| David Lang | Re: mingw, windows, crlf/lf, and git |
| Johannes Schindelin | Re: [kernel.org users] [RFD] On deprecating "git-foo" for builtins |
| Johannes Schindelin | Re: [PATCH] Fix off by one error in prep_exclude. |
| Marco Peereboom | Re: Real men don't attack straw men |
| patrick keshishian | SMTP flood + spamdb |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| Nick Holland | Re: The Atheros story in much fewer words |
| Hans de Goede | Re: cat /proc/net/tcp takes 0.5 seconds on x86_64 |
| Stephen Hemminger | [RFC] TCP illinois max rtt aging |
| Tilman Schmidt | Re: 2.6.25-rc8: FTP transfer errors |
| Evgeniy Polyakov | Re: Network/block layer race. |
| high memory | 15 hours ago | Linux kernel |
| semaphore access speed | 18 hours ago | Applications and Utilities |
| the kernel how to power off the machine | 19 hours ago | Linux kernel |
| Easter Eggs in windows XP | 22 hours ago | Windows |
| Shared swap partition | 23 hours ago | Linux general |
| Root password | 23 hours ago | Linux general |
| Where/when DNOTIFY is used? | 1 day ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 1 day ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 1 day ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 1 day ago | Linux general |
