mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 09:02:00 +00:00
[S390] convert cpu related printks to pr_xxx macros.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
74eacdb9c2
commit
395d31d40c
@ -17,8 +17,8 @@ CFLAGS_smp.o := -Wno-nonnull
|
|||||||
#
|
#
|
||||||
CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
|
CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
|
||||||
|
|
||||||
obj-y := bitmap.o traps.o time.o process.o base.o early.o \
|
obj-y := bitmap.o traps.o time.o process.o base.o early.o setup.o \
|
||||||
setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
|
processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
|
||||||
s390_ext.o debug.o irq.o ipl.o dis.o diag.o mem_detect.o \
|
s390_ext.o debug.o irq.o ipl.o dis.o diag.o mem_detect.o \
|
||||||
vdso.o vtime.o
|
vdso.o vtime.o
|
||||||
|
|
||||||
|
98
arch/s390/kernel/processor.c
Normal file
98
arch/s390/kernel/processor.c
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* arch/s390/kernel/processor.c
|
||||||
|
*
|
||||||
|
* Copyright IBM Corp. 2008
|
||||||
|
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define KMSG_COMPONENT "cpu"
|
||||||
|
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/smp.h>
|
||||||
|
#include <linux/seq_file.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
#include <asm/elf.h>
|
||||||
|
#include <asm/lowcore.h>
|
||||||
|
#include <asm/param.h>
|
||||||
|
|
||||||
|
void __cpuinit print_cpu_info(struct cpuinfo_S390 *cpuinfo)
|
||||||
|
{
|
||||||
|
pr_info("Processor %d started, address %d, identification %06X\n",
|
||||||
|
cpuinfo->cpu_nr, cpuinfo->cpu_addr, cpuinfo->cpu_id.ident);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* show_cpuinfo - Get information on one CPU for use by procfs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
|
{
|
||||||
|
static const char *hwcap_str[8] = {
|
||||||
|
"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp",
|
||||||
|
"edat"
|
||||||
|
};
|
||||||
|
struct cpuinfo_S390 *cpuinfo;
|
||||||
|
unsigned long n = (unsigned long) v - 1;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
s390_adjust_jiffies();
|
||||||
|
preempt_disable();
|
||||||
|
if (!n) {
|
||||||
|
seq_printf(m, "vendor_id : IBM/S390\n"
|
||||||
|
"# processors : %i\n"
|
||||||
|
"bogomips per cpu: %lu.%02lu\n",
|
||||||
|
num_online_cpus(), loops_per_jiffy/(500000/HZ),
|
||||||
|
(loops_per_jiffy/(5000/HZ))%100);
|
||||||
|
seq_puts(m, "features\t: ");
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
if (hwcap_str[i] && (elf_hwcap & (1UL << i)))
|
||||||
|
seq_printf(m, "%s ", hwcap_str[i]);
|
||||||
|
seq_puts(m, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cpu_online(n)) {
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
if (smp_processor_id() == n)
|
||||||
|
cpuinfo = &S390_lowcore.cpu_data;
|
||||||
|
else
|
||||||
|
cpuinfo = &lowcore_ptr[n]->cpu_data;
|
||||||
|
#else
|
||||||
|
cpuinfo = &S390_lowcore.cpu_data;
|
||||||
|
#endif
|
||||||
|
seq_printf(m, "processor %li: "
|
||||||
|
"version = %02X, "
|
||||||
|
"identification = %06X, "
|
||||||
|
"machine = %04X\n",
|
||||||
|
n, cpuinfo->cpu_id.version,
|
||||||
|
cpuinfo->cpu_id.ident,
|
||||||
|
cpuinfo->cpu_id.machine);
|
||||||
|
}
|
||||||
|
preempt_enable();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *c_start(struct seq_file *m, loff_t *pos)
|
||||||
|
{
|
||||||
|
return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *c_next(struct seq_file *m, void *v, loff_t *pos)
|
||||||
|
{
|
||||||
|
++*pos;
|
||||||
|
return c_start(m, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void c_stop(struct seq_file *m, void *v)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct seq_operations cpuinfo_op = {
|
||||||
|
.start = c_start,
|
||||||
|
.next = c_next,
|
||||||
|
.stop = c_stop,
|
||||||
|
.show = show_cpuinfo,
|
||||||
|
};
|
||||||
|
|
@ -35,7 +35,6 @@
|
|||||||
#include <linux/bootmem.h>
|
#include <linux/bootmem.h>
|
||||||
#include <linux/root_dev.h>
|
#include <linux/root_dev.h>
|
||||||
#include <linux/console.h>
|
#include <linux/console.h>
|
||||||
#include <linux/seq_file.h>
|
|
||||||
#include <linux/kernel_stat.h>
|
#include <linux/kernel_stat.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/notifier.h>
|
#include <linux/notifier.h>
|
||||||
@ -829,90 +828,3 @@ setup_arch(char **cmdline_p)
|
|||||||
/* Setup zfcpdump support */
|
/* Setup zfcpdump support */
|
||||||
setup_zfcpdump(console_devno);
|
setup_zfcpdump(console_devno);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __cpuinit print_cpu_info(struct cpuinfo_S390 *cpuinfo)
|
|
||||||
{
|
|
||||||
printk(KERN_INFO "cpu %d "
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
"phys_idx=%d "
|
|
||||||
#endif
|
|
||||||
"vers=%02X ident=%06X machine=%04X unused=%04X\n",
|
|
||||||
cpuinfo->cpu_nr,
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
cpuinfo->cpu_addr,
|
|
||||||
#endif
|
|
||||||
cpuinfo->cpu_id.version,
|
|
||||||
cpuinfo->cpu_id.ident,
|
|
||||||
cpuinfo->cpu_id.machine,
|
|
||||||
cpuinfo->cpu_id.unused);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* show_cpuinfo - Get information on one CPU for use by procfs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int show_cpuinfo(struct seq_file *m, void *v)
|
|
||||||
{
|
|
||||||
static const char *hwcap_str[8] = {
|
|
||||||
"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp",
|
|
||||||
"edat"
|
|
||||||
};
|
|
||||||
struct cpuinfo_S390 *cpuinfo;
|
|
||||||
unsigned long n = (unsigned long) v - 1;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
s390_adjust_jiffies();
|
|
||||||
preempt_disable();
|
|
||||||
if (!n) {
|
|
||||||
seq_printf(m, "vendor_id : IBM/S390\n"
|
|
||||||
"# processors : %i\n"
|
|
||||||
"bogomips per cpu: %lu.%02lu\n",
|
|
||||||
num_online_cpus(), loops_per_jiffy/(500000/HZ),
|
|
||||||
(loops_per_jiffy/(5000/HZ))%100);
|
|
||||||
seq_puts(m, "features\t: ");
|
|
||||||
for (i = 0; i < 8; i++)
|
|
||||||
if (hwcap_str[i] && (elf_hwcap & (1UL << i)))
|
|
||||||
seq_printf(m, "%s ", hwcap_str[i]);
|
|
||||||
seq_puts(m, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpu_online(n)) {
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
if (smp_processor_id() == n)
|
|
||||||
cpuinfo = &S390_lowcore.cpu_data;
|
|
||||||
else
|
|
||||||
cpuinfo = &lowcore_ptr[n]->cpu_data;
|
|
||||||
#else
|
|
||||||
cpuinfo = &S390_lowcore.cpu_data;
|
|
||||||
#endif
|
|
||||||
seq_printf(m, "processor %li: "
|
|
||||||
"version = %02X, "
|
|
||||||
"identification = %06X, "
|
|
||||||
"machine = %04X\n",
|
|
||||||
n, cpuinfo->cpu_id.version,
|
|
||||||
cpuinfo->cpu_id.ident,
|
|
||||||
cpuinfo->cpu_id.machine);
|
|
||||||
}
|
|
||||||
preempt_enable();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *c_start(struct seq_file *m, loff_t *pos)
|
|
||||||
{
|
|
||||||
return *pos < NR_CPUS ? (void *)((unsigned long) *pos + 1) : NULL;
|
|
||||||
}
|
|
||||||
static void *c_next(struct seq_file *m, void *v, loff_t *pos)
|
|
||||||
{
|
|
||||||
++*pos;
|
|
||||||
return c_start(m, pos);
|
|
||||||
}
|
|
||||||
static void c_stop(struct seq_file *m, void *v)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
const struct seq_operations cpuinfo_op = {
|
|
||||||
.start = c_start,
|
|
||||||
.next = c_next,
|
|
||||||
.stop = c_stop,
|
|
||||||
.show = show_cpuinfo,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
* cpu_number_map in other architectures.
|
* cpu_number_map in other architectures.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define KMSG_COMPONENT "cpu"
|
||||||
|
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
@ -251,8 +254,8 @@ static void __init smp_get_save_area(unsigned int cpu, unsigned int phy_cpu)
|
|||||||
if (ipl_info.type != IPL_TYPE_FCP_DUMP)
|
if (ipl_info.type != IPL_TYPE_FCP_DUMP)
|
||||||
return;
|
return;
|
||||||
if (cpu >= NR_CPUS) {
|
if (cpu >= NR_CPUS) {
|
||||||
printk(KERN_WARNING "Registers for cpu %i not saved since dump "
|
pr_warning("CPU %i exceeds the maximum %i and is excluded from "
|
||||||
"kernel was compiled with NR_CPUS=%i\n", cpu, NR_CPUS);
|
"the dump\n", cpu, NR_CPUS - 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
zfcpdump_save_areas[cpu] = kmalloc(sizeof(union save_area), GFP_KERNEL);
|
zfcpdump_save_areas[cpu] = kmalloc(sizeof(union save_area), GFP_KERNEL);
|
||||||
@ -425,7 +428,7 @@ static void __init smp_detect_cpus(void)
|
|||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
kfree(info);
|
kfree(info);
|
||||||
printk(KERN_INFO "CPUs: %d configured, %d standby\n", c_cpus, s_cpus);
|
pr_info("%d configured CPUs, %d standby CPUs\n", c_cpus, s_cpus);
|
||||||
get_online_cpus();
|
get_online_cpus();
|
||||||
__smp_rescan_cpus();
|
__smp_rescan_cpus();
|
||||||
put_online_cpus();
|
put_online_cpus();
|
||||||
@ -548,12 +551,8 @@ int __cpuinit __cpu_up(unsigned int cpu)
|
|||||||
|
|
||||||
ccode = signal_processor_p((__u32)(unsigned long)(lowcore_ptr[cpu]),
|
ccode = signal_processor_p((__u32)(unsigned long)(lowcore_ptr[cpu]),
|
||||||
cpu, sigp_set_prefix);
|
cpu, sigp_set_prefix);
|
||||||
if (ccode) {
|
if (ccode)
|
||||||
printk("sigp_set_prefix failed for cpu %d "
|
|
||||||
"with condition code %d\n",
|
|
||||||
(int) cpu, (int) ccode);
|
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
|
||||||
|
|
||||||
idle = current_set[cpu];
|
idle = current_set[cpu];
|
||||||
cpu_lowcore = lowcore_ptr[cpu];
|
cpu_lowcore = lowcore_ptr[cpu];
|
||||||
@ -636,7 +635,7 @@ void __cpu_die(unsigned int cpu)
|
|||||||
while (!smp_cpu_not_running(cpu))
|
while (!smp_cpu_not_running(cpu))
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
smp_free_lowcore(cpu);
|
smp_free_lowcore(cpu);
|
||||||
printk(KERN_INFO "Processor %d spun down\n", cpu);
|
pr_info("Processor %d stopped\n", cpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cpu_die(void)
|
void cpu_die(void)
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
|
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define KMSG_COMPONENT "cpu"
|
||||||
|
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
@ -306,7 +309,7 @@ void __init s390_init_cpu_topology(void)
|
|||||||
for (i = 0; i < info->mnest - 2; i++)
|
for (i = 0; i < info->mnest - 2; i++)
|
||||||
nr_cores *= info->mag[NR_MAG - 3 - i];
|
nr_cores *= info->mag[NR_MAG - 3 - i];
|
||||||
|
|
||||||
printk(KERN_INFO "CPU topology:");
|
pr_info("The CPU configuration topology of the machine is:");
|
||||||
for (i = 0; i < NR_MAG; i++)
|
for (i = 0; i < NR_MAG; i++)
|
||||||
printk(" %d", info->mag[i]);
|
printk(" %d", info->mag[i]);
|
||||||
printk(" / %d\n", info->mnest);
|
printk(" / %d\n", info->mnest);
|
||||||
|
Loading…
Reference in New Issue
Block a user