From: Jack Steiner <steiner@sgi.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Brent Casavant <bcasavan@sgi.com>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
jes@sgi.com, tony.luck@intel.com
Subject: Re: [PATCH] SN2 user-MMIO CPU migration
Date: Fri, 20 Jan 2006 13:26:50 +0000 [thread overview]
Message-ID: <20060120132650.GA4272@sgi.com> (raw)
In-Reply-To: <200601191818.43157.jbarnes@virtuousgeek.org>
On Thu, Jan 19, 2006 at 06:18:43PM -0800, Jesse Barnes wrote:
> On Thursday, January 19, 2006 4:06 pm, Brent Casavant wrote:
> > #ifndef __ARCH_WANT_UNLOCKED_CTXSW
> > static inline int task_running(runqueue_t *rq, task_t *p)
> > @@ -936,6 +939,7 @@ static int migrate_task(task_t *p, int d
> > * it is sufficient to simply update the task's cpu field.
> > */
> > if (!p->array && !task_running(rq, p)) {
> > + arch_task_migrate(p);
> > set_task_cpu(p, dest_cpu);
> > return 0;
> > }
> > @@ -1353,6 +1357,7 @@ static int try_to_wake_up(task_t *p, uns
> > out_set_cpu:
> > new_cpu = wake_idle(new_cpu, p);
> > if (new_cpu != cpu) {
> > + arch_task_migrate(p);
> > set_task_cpu(p, new_cpu);
> > task_rq_unlock(rq, &flags);
> > /* might preempt at this point */
> > @@ -1876,6 +1881,7 @@ void pull_task(runqueue_t *src_rq, prio_
> > {
> > dequeue_task(p, src_array);
> > dec_nr_running(p, src_rq);
> > + arch_task_migrate(p);
> > set_task_cpu(p, this_cpu);
> > inc_nr_running(p, this_rq);
> > enqueue_task(p, this_array);
> > @@ -4547,6 +4553,7 @@ static void __migrate_task(struct task_s
> > if (!cpu_isset(dest_cpu, p->cpus_allowed))
> > goto out;
> >
> > + arch_task_migrate(p);
> > set_task_cpu(p, dest_cpu);
> > if (p->array) {
> > /*
>
> Maybe you could just turn the above into mmiowb() calls instead? That
> would cover altix, origin, and ppc as well I think. On other platforms
> it would be a complete no-op.
>
> Jesse
I don't think calling mmiob() directly would work. In order to make
CONFIG_IA64_GENERIC work, the call to mmiob() needs to be underneath a
platform vector. Using ia64_platform_is() would also work but I think
a platform vector is cleaner.
A second reason for an arch_task_migrate() instead of a specific mmiob() is
to provide a hook for a future platform that require additional work
to be done when a task migrates.
--
Thanks
Jack Steiner (steiner@sgi.com) 651-683-5302
WARNING: multiple messages have this Message-ID (diff)
From: Jack Steiner <steiner@sgi.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Brent Casavant <bcasavan@sgi.com>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
jes@sgi.com, tony.luck@intel.com
Subject: Re: [PATCH] SN2 user-MMIO CPU migration
Date: Fri, 20 Jan 2006 07:26:50 -0600 [thread overview]
Message-ID: <20060120132650.GA4272@sgi.com> (raw)
In-Reply-To: <200601191818.43157.jbarnes@virtuousgeek.org>
On Thu, Jan 19, 2006 at 06:18:43PM -0800, Jesse Barnes wrote:
> On Thursday, January 19, 2006 4:06 pm, Brent Casavant wrote:
> > #ifndef __ARCH_WANT_UNLOCKED_CTXSW
> > static inline int task_running(runqueue_t *rq, task_t *p)
> > @@ -936,6 +939,7 @@ static int migrate_task(task_t *p, int d
> > * it is sufficient to simply update the task's cpu field.
> > */
> > if (!p->array && !task_running(rq, p)) {
> > + arch_task_migrate(p);
> > set_task_cpu(p, dest_cpu);
> > return 0;
> > }
> > @@ -1353,6 +1357,7 @@ static int try_to_wake_up(task_t *p, uns
> > out_set_cpu:
> > new_cpu = wake_idle(new_cpu, p);
> > if (new_cpu != cpu) {
> > + arch_task_migrate(p);
> > set_task_cpu(p, new_cpu);
> > task_rq_unlock(rq, &flags);
> > /* might preempt at this point */
> > @@ -1876,6 +1881,7 @@ void pull_task(runqueue_t *src_rq, prio_
> > {
> > dequeue_task(p, src_array);
> > dec_nr_running(p, src_rq);
> > + arch_task_migrate(p);
> > set_task_cpu(p, this_cpu);
> > inc_nr_running(p, this_rq);
> > enqueue_task(p, this_array);
> > @@ -4547,6 +4553,7 @@ static void __migrate_task(struct task_s
> > if (!cpu_isset(dest_cpu, p->cpus_allowed))
> > goto out;
> >
> > + arch_task_migrate(p);
> > set_task_cpu(p, dest_cpu);
> > if (p->array) {
> > /*
>
> Maybe you could just turn the above into mmiowb() calls instead? That
> would cover altix, origin, and ppc as well I think. On other platforms
> it would be a complete no-op.
>
> Jesse
I don't think calling mmiob() directly would work. In order to make
CONFIG_IA64_GENERIC work, the call to mmiob() needs to be underneath a
platform vector. Using ia64_platform_is() would also work but I think
a platform vector is cleaner.
A second reason for an arch_task_migrate() instead of a specific mmiob() is
to provide a hook for a future platform that require additional work
to be done when a task migrates.
--
Thanks
Jack Steiner (steiner@sgi.com) 651-683-5302
next prev parent reply other threads:[~2006-01-20 13:26 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-20 0:06 [PATCH] SN2 user-MMIO CPU migration Brent Casavant
2006-01-20 0:06 ` Brent Casavant
2006-01-20 2:18 ` Jesse Barnes
2006-01-20 2:18 ` Jesse Barnes
2006-01-20 6:47 ` Brent Casavant
2006-01-20 6:47 ` Brent Casavant
2006-01-20 17:36 ` Jesse Barnes
2006-01-20 17:36 ` Jesse Barnes
2006-01-20 20:01 ` Brent Casavant
2006-01-20 20:01 ` Brent Casavant
2006-01-20 13:26 ` Jack Steiner [this message]
2006-01-20 13:26 ` Jack Steiner
2006-01-20 17:31 ` Jesse Barnes
2006-01-20 17:31 ` Jesse Barnes
2006-01-20 19:00 ` Jack Steiner
2006-01-20 19:00 ` Jack Steiner
2006-01-20 8:36 ` Ingo Molnar
2006-01-20 8:36 ` Ingo Molnar
2006-01-20 16:14 ` Brent Casavant
2006-01-20 16:14 ` Brent Casavant
2006-01-24 0:33 ` Brent Casavant
2006-01-24 0:48 ` Luck, Tony
2006-01-24 1:23 ` Brent Casavant
2006-01-24 1:42 ` Keith Owens
2006-01-24 3:41 ` Grant Grundler
2006-01-24 6:30 ` Brent Casavant
2006-01-24 6:41 ` Brent Casavant
2006-01-24 7:04 ` Grant Grundler
2006-01-24 9:02 ` Ingo Molnar
2006-01-24 9:14 ` Jes Sorensen
2006-01-24 12:10 ` Robin Holt
2006-01-24 16:40 ` Grant Grundler
2006-01-24 16:52 ` Brent Casavant
2006-01-24 16:57 ` Brent Casavant
2006-01-24 17:00 ` Robin Holt
2006-01-24 17:33 ` Luck, Tony
2006-01-24 18:42 ` Grant Grundler
2006-01-24 21:12 ` Brent Casavant
2006-01-24 21:41 ` Ingo Molnar
2006-01-24 21:43 ` Chen, Kenneth W
2006-01-24 21:51 ` Luck, Tony
2006-01-24 22:04 ` Brent Casavant
2006-01-24 22:07 ` Chen, Kenneth W
2006-01-24 22:12 ` Brent Casavant
2006-01-24 22:19 ` Chen, Kenneth W
2006-01-24 22:31 ` Chen, Kenneth W
2006-01-24 22:41 ` Brent Casavant
2006-01-24 23:25 ` Chen, Kenneth W
2006-01-24 23:28 ` Brent Casavant
2006-01-24 23:36 ` Chen, Kenneth W
2006-01-24 23:54 ` Brent Casavant
2006-01-25 0:10 ` Brent Casavant
2006-01-25 0:29 ` Chen, Kenneth W
2006-01-25 6:27 ` Keith Owens
2006-01-25 9:04 ` Chen, Kenneth W
2006-01-25 9:24 ` Chen, Kenneth W
2006-01-25 17:04 ` Brent Casavant
2006-01-25 17:45 ` Brent Casavant
2006-01-25 17:48 ` Brent Casavant
2006-01-25 19:01 ` Chen, Kenneth W
2006-01-25 19:15 ` Brent Casavant
2006-01-25 19:43 ` Jack Steiner
2006-01-25 22:49 ` Brent Casavant
2006-01-25 23:09 ` Brent Casavant
2006-01-25 23:49 ` Brent Casavant
2006-01-25 23:56 ` Chen, Kenneth W
2006-01-26 1:06 ` Luck, Tony
2006-01-26 1:31 ` Prarit Bhargava
2006-01-26 2:43 ` Keith Owens
2006-01-26 4:40 ` Brent Casavant
2006-01-26 16:29 ` Brent Casavant
2006-01-26 16:41 ` Prarit Bhargava
2006-01-26 19:29 ` Brent Casavant
2006-01-26 19:54 ` Luck, Tony
2006-01-26 20:28 ` Brent Casavant
2006-01-26 21:05 ` Luck, Tony
2006-01-26 21:34 ` Prarit Bhargava
2006-01-26 22:11 ` Luck, Tony
2006-01-26 23:08 ` Luck, Tony
2006-01-26 23:21 ` Prarit Bhargava
2006-01-26 23:44 ` Prarit Bhargava
2006-01-27 0:07 ` Chen, Kenneth W
2006-01-27 14:01 ` Prarit Bhargava
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=20060120132650.GA4272@sgi.com \
--to=steiner@sgi.com \
--cc=bcasavan@sgi.com \
--cc=jbarnes@virtuousgeek.org \
--cc=jes@sgi.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tony.luck@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.