From: johlstei@codeaurora.org (Jeff Ohlstein)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 6/6] msm: add SMP support for msm
Date: Wed, 08 Dec 2010 19:41:47 -0800 [thread overview]
Message-ID: <4D004FFB.80100@codeaurora.org> (raw)
In-Reply-To: <20101208152142.GH9777@n2100.arm.linux.org.uk>
Russell King - ARM Linux wrote:
> On Tue, Dec 07, 2010 at 08:28:21PM -0800, Jeff Ohlstein wrote:
>> +int get_core_count(void)
>> +{
>> +#ifdef CONFIG_NR_CPUS
>> + return CONFIG_NR_CPUS;
>> +#else
>> + return 1;
>> +#endif
>>
>
> When would CONFIG_NR_CPUS not be set when SMP is available?
>
> Note that linux/threads.h defines this to 1 if it's not already defined
> anyway. Does this really need to be a separate function?
>
>
Removed.
>> +int boot_secondary(unsigned int cpu, struct task_struct *idle)
>> +{
>> + static int cold_boot_done;
>> + int cnt = 0;
>> + printk(KERN_DEBUG "Starting secondary CPU %d\n", cpu);
>> +
>> + if (cold_boot_done == false) {
>> + prepare_cold_cpu(cpu);
>> + cold_boot_done = true;
>> + }
>> +
>> + pen_release = cpu;
>> + dmac_flush_range((void *)&pen_release,
>> + (void *)(&pen_release + sizeof(pen_release)));
>>
>
> Abuse of the DMA API. See how other platforms deal with this.
>
>
Fixed to use __cpuc_flush_dcache_area and outer_clean_range.
>> + __asm__("sev");
>> + dsb();
>> +
>> + /* Use smp_cross_call() to send a soft interrupt to wake up
>> + * the other core.
>> + */
>> + smp_cross_call(cpumask_of(cpu));
>> +
>> + while (pen_release != 0xFFFFFFFF) {
>>
>
> Why 0xFFFFFFFF rather than -1 like everyone else does?
>
>
Removed due to below.
>> + smp_rmb();
>> + msleep_interruptible(1);
>> + if (cnt++ >= SECONDARY_CPU_WAIT_MS)
>> + break;
>> + }
>>
>
> And why not use the same loop as everyone else does?
>
> timeout = jiffies + (1 * HZ);
> while (time_before(jiffies, timeout)) {
> smp_rmb();
> if (pen_release == -1)
> break;
>
> udelay(10);
> }
>
> IOW, what's the point of being different when you're trying to do the
> same task?
>
>
Done.
>> +
>> + return 0;
>> +}
>> +
>> +/* Mask for edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */
>> +#define GIC_PPI_EDGE_MASK 0xFFFFD7FF
>> +
>> +/* Initialization routine for secondary CPUs after they are brought out of
>> + * reset.
>> +*/
>> +void platform_secondary_init(unsigned int cpu)
>> +{
>> + printk(KERN_DEBUG "%s: cpu:%d\n", __func__, cpu);
>> +
>> + trace_hardirqs_off();
>>
>
> This has been moved into the generic SMP code.
>
>
I've rebased onto your gic patches and your smp series, and removed this.
>> + if (!machine_is_msm8x60_sim())
>> + writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET);
>>
>
> The gic secondary CPU initialization now takes care of this in my tree.
>
>
Removed.
>> +
>> + /*
>> + * setup GIC (GIC number NOT CPU number and the base address of the
>> + * GIC CPU interface
>> + */
>> + gic_cpu_init(0, MSM_QGIC_CPU_BASE);
>>
>
> This has been renamed to gic_secondary_init() for 2.6.38.
>
>
Done.
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
prev parent reply other threads:[~2010-12-09 3:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-08 4:28 [PATCH v2 0/6] SMP support for msm Jeff Ohlstein
2010-12-08 4:28 ` [PATCH v2 1/6] arm: dma-mapping: move consistent_init to early_initcall Jeff Ohlstein
2010-12-08 4:28 ` [PATCH v2 2/6] msm: Secure Channel Manager (SCM) support Jeff Ohlstein
2010-12-08 16:53 ` Russell King - ARM Linux
2010-12-08 19:59 ` Stephen Boyd
2010-12-08 4:28 ` [PATCH v2 3/6] msm: scm-boot: Support for setting cold/warm boot addresses Jeff Ohlstein
2010-12-08 4:28 ` [PATCH v2 4/6] msm: timer: SMP timer support for msm Jeff Ohlstein
2010-12-08 16:39 ` Russell King - ARM Linux
2010-12-09 4:22 ` Jeff Ohlstein
2010-12-10 2:07 ` Jeff Ohlstein
2010-12-10 2:24 ` Thomas Gleixner
2010-12-08 4:28 ` [PATCH v2 5/6] msm: hotplug: support cpu hotplug on msm Jeff Ohlstein
2010-12-08 15:14 ` Russell King - ARM Linux
2010-12-08 15:23 ` Russell King - ARM Linux
2010-12-08 4:28 ` [PATCH v2 6/6] msm: add SMP support for msm Jeff Ohlstein
2010-12-08 15:21 ` Russell King - ARM Linux
2010-12-09 3:41 ` Jeff Ohlstein [this message]
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=4D004FFB.80100@codeaurora.org \
--to=johlstei@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).