// SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 1991,1992,1995 Linus Torvalds * Copyright (c) 1994 Alan Modra * Copyright (c) 1995 Markus Kuhn * Copyright (c) 1996 Ingo Molnar * Copyright (c) 1998 Andrea Arcangeli * Copyright (c) 2002,2006 Vojtech Pavlik * Copyright (c) 2003 Andi Kleen * */ #include <linux/clockchips.h> #include <linux/interrupt.h> #include <linux/i8253.h> #include <linux/time.h> #include <linux/export.h> #include <asm/vsyscall.h> #include <asm/x86_init.h> #include <asm/i8259.h> #include <asm/timer.h> #include <asm/hpet.h> #include <asm/time.h> #ifdef CONFIG_X86_64 __visible volatile unsigned long jiffies __cacheline_aligned = INITIAL_JIFFIES; #endif
unsigned long profile_pc(struct pt_regs *regs) { unsigned long pc = instruction_pointer(regs); if (!user_mode(regs) && in_lock_functions(pc)) { #ifdef CONFIG_FRAME_POINTER return *(unsigned long *)(regs->bp + sizeof(long)); #else unsigned long *sp = (unsigned long *)kernel_stack_pointer(regs); /* * Return address is either directly at stack pointer * or above a saved flags. Eflags has bits 22-31 zero, * kernel addresses don't. */ if (sp[0] >> 22) return sp[0]; if (sp[1] >> 22) return sp[1]; #endif } return pc; }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Andi Kleen | 48 | 44.04% | 3 | 33.33% |
Zwane Mwaikambo | 28 | 25.69% | 1 | 11.11% |
Glauber de Oliveira Costa | 25 | 22.94% | 1 | 11.11% |
Anton Blanchard | 3 | 2.75% | 1 | 11.11% |
H. Peter Anvin | 3 | 2.75% | 1 | 11.11% |
Andrew Lutomirski | 1 | 0.92% | 1 | 11.11% |
Thomas Gleixner | 1 | 0.92% | 1 | 11.11% |
Total | 109 | 100.00% | 9 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 21 | 91.30% | 1 | 33.33% |
Glauber de Oliveira Costa | 1 | 4.35% | 1 | 33.33% |
Jaswinder Singh Rajput | 1 | 4.35% | 1 | 33.33% |
Total | 23 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 16 | 66.67% | 1 | 33.33% |
Andy Shevchenko | 7 | 29.17% | 1 | 33.33% |
Dou Liyang | 1 | 4.17% | 1 | 33.33% |
Total | 24 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
John Stultz | 7 | 35.00% | 2 | 33.33% |
Andi Kleen | 6 | 30.00% | 1 | 16.67% |
Thomas Gleixner | 5 | 25.00% | 2 | 33.33% |
Glauber de Oliveira Costa | 2 | 10.00% | 1 | 16.67% |
Total | 20 | 100.00% | 6 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 19 | 70.37% | 3 | 75.00% |
Dou Liyang | 8 | 29.63% | 1 | 25.00% |
Total | 27 | 100.00% | 4 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Glauber de Oliveira Costa | 10 | 83.33% | 1 | 33.33% |
Thomas Gleixner | 1 | 8.33% | 1 | 33.33% |
Andi Kleen | 1 | 8.33% | 1 | 33.33% |
Total | 12 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 82 | 27.52% | 9 | 23.68% |
Andi Kleen | 76 | 25.50% | 9 | 23.68% |
Glauber de Oliveira Costa | 42 | 14.09% | 3 | 7.89% |
Zwane Mwaikambo | 33 | 11.07% | 1 | 2.63% |
John Stultz | 18 | 6.04% | 2 | 5.26% |
Bernhard Walle | 9 | 3.02% | 1 | 2.63% |
Dou Liyang | 9 | 3.02% | 2 | 5.26% |
Andy Shevchenko | 7 | 2.35% | 1 | 2.63% |
Ralf Bächle | 5 | 1.68% | 1 | 2.63% |
H. Peter Anvin | 3 | 1.01% | 1 | 2.63% |
Paul Gortmaker | 3 | 1.01% | 1 | 2.63% |
Andrew Lutomirski | 3 | 1.01% | 2 | 5.26% |
Anton Blanchard | 3 | 1.01% | 1 | 2.63% |
Linus Torvalds | 2 | 0.67% | 1 | 2.63% |
Jaswinder Singh Rajput | 1 | 0.34% | 1 | 2.63% |
Venkatesh Pallipadi | 1 | 0.34% | 1 | 2.63% |
Greg Kroah-Hartman | 1 | 0.34% | 1 | 2.63% |
Total | 298 | 100.00% | 38 | 100.00% |