Messages in this thread | | | Date | Sat, 3 Jan 2009 14:00:06 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: [git pull] cpus4096 tree, part 3 |
| |
On Sat, 3 Jan 2009, Ingo Molnar wrote: > > This one looks a bit high: > > 1) 5264 496 __change_page_attr_set_clr+0xa7/0xa15 > > (Venki, Suresh and Arjan Cc:-ed) > > This one isnt too nice either: > > 27) 1984 800 do_page_fault+0x86d/0xcec > > not sure why it happens - will investigate tomorrow, it's getting late > here.
The most common case tends to be insane gcc inlining (vmalloc_fault and spurious_fault), and then gcc not re-using stack slots even if they have no overlap in usage. Some people continue to claim that gcc reuses them, but it's definitely not the case in any complex situation, so I suspect the re-use is probably purely for some simple spilling case, not for variables allocated on the stack.
do_page_fault() in particular has a lot of gunk in it for the special cases.
What happened to Nick's cleanup patch to do_page_fault (a month or two ago? I complained about some of the issues in his first version and asked for some further cleanups, but I think that whole discussion ended with him saying "I am going to add those changes that you suggested (in fact, I already have)".
And then I didn't see anything further. Maybe I just missed the end result. Or maybe we have it in some -mm branch or something?
Linus
| |