// 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 | 47 | 43.12% | 3 | 33.33% |
Zwane Mwaikambo | 29 | 26.61% | 1 | 11.11% |
Glauber de Oliveira Costa | 25 | 22.94% | 1 | 11.11% |
H. Peter Anvin | 3 | 2.75% | 1 | 11.11% |
Anton Blanchard | 3 | 2.75% | 1 | 11.11% |
Thomas Gleixner | 1 | 0.92% | 1 | 11.11% |
Andrew Lutomirski | 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% |
Jaswinder Singh Rajput | 1 | 4.35% | 1 | 33.33% |
Glauber de Oliveira Costa | 1 | 4.35% | 1 | 33.33% |
Total | 23 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 16 | 64.00% | 1 | 25.00% |
Peter Zijlstra | 6 | 24.00% | 1 | 25.00% |
Andy Shevchenko | 2 | 8.00% | 1 | 25.00% |
Dou Liyang | 1 | 4.00% | 1 | 25.00% |
Total | 25 | 100.00% | 4 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Andi Kleen | 7 | 35.00% | 1 | 16.67% |
John Stultz | 6 | 30.00% | 2 | 33.33% |
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% |
Andi Kleen | 1 | 8.33% | 1 | 33.33% |
Thomas Gleixner | 1 | 8.33% | 1 | 33.33% |
Total | 12 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Thomas Gleixner | 82 | 27.42% | 9 | 23.08% |
Andi Kleen | 76 | 25.42% | 9 | 23.08% |
Glauber de Oliveira Costa | 42 | 14.05% | 3 | 7.69% |
Zwane Mwaikambo | 34 | 11.37% | 1 | 2.56% |
John Stultz | 17 | 5.69% | 2 | 5.13% |
Dou Liyang | 9 | 3.01% | 2 | 5.13% |
Bernhard Walle | 9 | 3.01% | 1 | 2.56% |
Peter Zijlstra | 6 | 2.01% | 1 | 2.56% |
Ralf Bächle | 5 | 1.67% | 1 | 2.56% |
Anton Blanchard | 3 | 1.00% | 1 | 2.56% |
Andrew Lutomirski | 3 | 1.00% | 2 | 5.13% |
H. Peter Anvin | 3 | 1.00% | 1 | 2.56% |
Paul Gortmaker | 3 | 1.00% | 1 | 2.56% |
Andy Shevchenko | 2 | 0.67% | 1 | 2.56% |
Linus Torvalds | 2 | 0.67% | 1 | 2.56% |
Jaswinder Singh Rajput | 1 | 0.33% | 1 | 2.56% |
Greg Kroah-Hartman | 1 | 0.33% | 1 | 2.56% |
Venkatesh Pallipadi | 1 | 0.33% | 1 | 2.56% |
Total | 299 | 100.00% | 39 | 100.00% |