cregit-Linux how code gets into the kernel

Release 4.11 arch/powerpc/kernel/dbell.c

/*
 * Author: Kumar Gala <galak@kernel.crashing.org>
 *
 * Copyright 2009 Freescale Semiconductor Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

#include <linux/stddef.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/threads.h>
#include <linux/hardirq.h>

#include <asm/dbell.h>
#include <asm/irq_regs.h>
#include <asm/kvm_ppc.h>

#ifdef CONFIG_SMP

void doorbell_setup_this_cpu(void) { unsigned long tag = mfspr(SPRN_DOORBELL_CPUTAG) & PPC_DBELL_TAG_MASK; smp_muxed_ipi_set_data(smp_processor_id(), tag); }

Contributors

PersonTokensPropCommitsCommitProp
Benjamin Herrenschmidt1350.00%133.33%
Milton D. Miller II1142.31%133.33%
Ian Munsie27.69%133.33%
Total26100.00%3100.00%


void doorbell_cause_ipi(int cpu, unsigned long data) { /* Order previous accesses vs. msgsnd, which is treated as a store */ mb(); ppc_msgsnd(PPC_DBELL_MSGTYPE, 0, data); }

Contributors

PersonTokensPropCommitsCommitProp
Kumar Gala1456.00%120.00%
Milton D. Miller II624.00%240.00%
Paul Mackerras416.00%120.00%
Ian Munsie14.00%120.00%
Total25100.00%5100.00%


void doorbell_exception(struct pt_regs *regs) { struct pt_regs *old_regs = set_irq_regs(regs); irq_enter(); may_hard_irq_enable(); kvmppc_set_host_ipi(smp_processor_id(), 0); __this_cpu_inc(irq_stat.doorbell_irqs); smp_ipi_demux(); irq_exit(); set_irq_regs(old_regs); }

Contributors

PersonTokensPropCommitsCommitProp
Benjamin Herrenschmidt1630.77%337.50%
David Gibson1426.92%112.50%
Paul Mackerras815.38%112.50%
Milton D. Miller II713.46%112.50%
Ian Munsie59.62%112.50%
Christoph Lameter23.85%112.50%
Total52100.00%8100.00%

#else /* CONFIG_SMP */
void doorbell_exception(struct pt_regs *regs) { printk(KERN_WARNING "Received doorbell on non-smp system\n"); }

Contributors

PersonTokensPropCommitsCommitProp
Benjamin Herrenschmidt16100.00%1100.00%
Total16100.00%1100.00%

#endif /* CONFIG_SMP */

Overall Contributors

PersonTokensPropCommitsCommitProp
Benjamin Herrenschmidt5133.33%325.00%
Kumar Gala3522.88%18.33%
Milton D. Miller II2516.34%216.67%
David Gibson1711.11%18.33%
Paul Mackerras159.80%216.67%
Ian Munsie85.23%216.67%
Christoph Lameter21.31%18.33%
Total153100.00%12100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.