From: Stephane Eranian <eranian@hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH] - Fix get_model_name() for mixed cpu type systems
Date: Wed, 18 Oct 2006 21:44:13 +0000 [thread overview]
Message-ID: <20061018214413.GD20590@frankl.hpl.hp.com> (raw)
In-Reply-To: <20061018212559.GA2965@sgi.com>
Jack,
The perfmon subsystem will not work correctly if you mix
Madison and Montecito in the same box. And there is not an
easy way to make it work with such configuration. Performance
counters are different between the two models.
The only thing we could do, is to detect such condition
and default to the architectured PMU.
On Wed, Oct 18, 2006 at 04:25:59PM -0500, Jack Steiner wrote:
>
> If a system consists of mixed processor types, kmalloc()
> can be called before the per-cpu data page is initialized.
> If the slab contains sufficient memory, then kmalloc() works
> ok. However, if the slabs are empty, slab calls the memory
> allocator. This requires per-cpu data (NODE_DATA()) & the
> cpu dies.
>
> Signed-off-by: Jack Steiner <steiner@sgi.com>
>
>
>
>
> Index: linux/arch/ia64/kernel/setup.c
> =================================> --- linux.orig/arch/ia64/kernel/setup.c 2006-10-18 15:49:49.000000000 -0500
> +++ linux/arch/ia64/kernel/setup.c 2006-10-18 16:19:18.261790796 -0500
> @@ -643,12 +643,14 @@ struct seq_operations cpuinfo_op = {
> .show = show_cpuinfo
> };
>
> -static char brandname[128];
> +#define MAX_BRANDS 4
> +static char brandname[MAX_BRANDS][128];
>
> static char * __cpuinit
> get_model_name(__u8 family, __u8 model)
> {
> char brand[128];
> + int i;
>
> if (ia64_pal_get_brand_info(brand)) {
> if (family = 0x7)
> @@ -660,12 +662,14 @@ get_model_name(__u8 family, __u8 model)
> } else
> memcpy(brand, "Unknown", 8);
> }
> - if (brandname[0] = '\0')
> - return strcpy(brandname, brand);
> - else if (strcmp(brandname, brand) = 0)
> - return brandname;
> - else
> - return kstrdup(brand, GFP_KERNEL);
> + for (i = 0; i < MAX_BRANDS; i++)
> + if (strcmp(brandname[i], brand) = 0)
> + return brandname[i];
> + for (i = 0; i < MAX_BRANDS; i++)
> + if (brandname[i][0] = '\0')
> + return strcpy(brandname[i], brand);
> + BUG();
> + return NULL; /* quiet compiler */
> }
>
> static void __cpuinit
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
-Stephane
next prev parent reply other threads:[~2006-10-18 21:44 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-18 21:25 [PATCH] - Fix get_model_name() for mixed cpu type systems Jack Steiner
2006-10-18 21:44 ` Stephane Eranian [this message]
2006-10-18 21:55 ` Jack Steiner
2006-10-18 22:25 ` Stephane Eranian
2006-10-18 22:38 ` Russ Anderson
2006-10-18 22:57 ` Stephane Eranian
2006-10-19 0:03 ` Luck, Tony
2006-10-19 14:08 ` Jack Steiner
2006-10-19 20:57 ` Russ Anderson
2006-10-19 21:05 ` Stephane Eranian
2006-10-19 21:21 ` Matthew Wilcox
2006-10-19 21:22 ` Luck, Tony
2006-10-19 21:29 ` Jack Steiner
2006-10-19 21:52 ` Stephane Eranian
2006-10-19 22:11 ` Stephane Eranian
2006-10-20 1:54 ` KAMEZAWA Hiroyuki
2006-10-20 2:03 ` Jack Steiner
2007-03-12 13:07 ` FW: " Jack Steiner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061018214413.GD20590@frankl.hpl.hp.com \
--to=eranian@hpl.hp.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox