Ejemplo n.º 1
0
/*
 * 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[] = {
		"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp",
		"edat", "etf3eh", "highgprs", "te", "vx"
	};
	unsigned long n = (unsigned long) v - 1;
	int i;

	if (!n) {
		s390_adjust_jiffies();
		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 < ARRAY_SIZE(hwcap_str); i++)
			if (hwcap_str[i] && (elf_hwcap & (1UL << i)))
				seq_printf(m, "%s ", hwcap_str[i]);
		seq_puts(m, "\n");
		show_cacheinfo(m);
	}
	get_online_cpus();
	if (cpu_online(n)) {
		struct cpuid *id = &per_cpu(cpu_id, n);
		seq_printf(m, "processor %li: "
			   "version = %02X,  "
			   "identification = %06X,  "
			   "machine = %04X\n",
			   n, id->version, id->ident, id->machine);
	}
	put_online_cpus();
	return 0;
}
Ejemplo n.º 2
0
static int show_cpuinfo(struct seq_file *m, void *v)
{
        struct cpuinfo_S390 *cpuinfo;
	unsigned long n = (unsigned long) v - 1;

	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);
	}
	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;
}
Ejemplo n.º 3
0
Archivo: setup.c Proyecto: 274914765/C
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;
}
Ejemplo n.º 4
0
void s390_update_cpu_mhz(void)
{
	s390_adjust_jiffies();
	if (machine_has_cpu_mhz)
		on_each_cpu(update_cpu_mhz, NULL, 0);
}