From: Mike Travis <travis@sgi.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Jack Steiner <steiner@sgi.com>,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
linux-kernel@vger.kernel.org, Chris Wright <chrisw@sous-sol.org>,
virtualization@lists.osdl.org, Ingo Molnar <mingo@redhat.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
xen-devel@lists.xensource.com
Subject: Re: [PATCH 1/5] cpumask: update irq_desc to use cpumask_var_t
Date: Wed, 07 Jan 2009 14:32:50 -0800 [thread overview]
Message-ID: <49652D92.8020105@sgi.com> (raw)
In-Reply-To: <86802c440901071227n2d110757ye1bd12e689502ebc@mail.gmail.com>
Yinghai Lu wrote:
> On Wed, Jan 7, 2009 at 11:58 AM, Mike Travis <travis@sgi.com> wrote:
> | --- linux-2.6-for-ingo.orig/kernel/irq/numa_migrate.c
> | +++ linux-2.6-for-ingo/kernel/irq/numa_migrate.c
> | @@ -46,6 +46,7 @@ static void init_copy_one_irq_desc(int i
> | desc->cpu = cpu;
> | lockdep_set_class(&desc->lock, &irq_desc_lock_class);
> | init_copy_kstat_irqs(old_desc, desc, cpu, nr_cpu_ids);
> |+ init_copy_desc_masks(old_desc, desc);
> | arch_init_copy_chip_data(old_desc, desc, cpu);
> | }
> |
> |@@ -76,11 +77,20 @@ static struct irq_desc *__real_move_irq_
> | node = cpu_to_node(cpu);
> | desc = kzalloc_node(sizeof(*desc), GFP_ATOMIC, node);
> | if (!desc) {
> |- printk(KERN_ERR "irq %d: can not get new irq_desc for migration.\n", irq);
> |+ printk(KERN_ERR "irq %d: can not get new irq_desc "
> |+ "for migration.\n", irq);
> | /* still use old one */
> | desc = old_desc;
> | goto out_unlock;
> | }
> |+ if (!init_alloc_desc_masks(desc, node, false)) {
> |+ printk(KERN_ERR "irq %d: can not get new irq_desc cpumask "
> |+ "for migration.\n", irq);
> |+ /* still use old one */
> |+ kfree(desc);
> |+ desc = old_desc;
> |+ goto out_unlock;
> |+ }
> | init_copy_one_irq_desc(irq, old_desc, desc, cpu);
>
> desc new mask_var (allocated) aka the pointer is overwritten here...
> you may need to calling move init_alloc_desc_masks() into
> init_copy_one_irq_desc()
Wouldn't this in init_copy_one_irq_desc() take care of that?
@@ -46,6 +46,7 @@ static void init_copy_one_irq_desc(int i
desc->cpu = cpu;
lockdep_set_class(&desc->lock, &irq_desc_lock_class);
init_copy_kstat_irqs(old_desc, desc, cpu, nr_cpu_ids);
+ init_copy_desc_masks(old_desc, desc);
arch_init_copy_chip_data(old_desc, desc, cpu);
where:
static inline void init_copy_desc_masks(struct irq_desc *old_desc,
struct irq_desc *new_desc)
{
#ifdef CONFIG_CPUMASKS_OFFSTACK
cpumask_copy(new_desc->affinity, old_desc->affinity);
#ifdef CONFIG_GENERIC_PENDING_IRQ
cpumask_copy(new_desc->pending_mask, old_desc->pending_mask);
#endif
#endif
}
In other words if the masks are not a cpumask[1] but instead a
*cpumask pointer, then the old masks are copied to the new desc/
Or am I missing your point?
Thanks!
Mike
>
> | irq_desc_ptrs[irq] = desc;
>
> YH
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
WARNING: multiple messages have this Message-ID (diff)
From: Mike Travis <travis@sgi.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>, Jack Steiner <steiner@sgi.com>,
linux-kernel@vger.kernel.org, Chris Wright <chrisw@sous-sol.org>,
Jeremy Fitzhardinge <jeremy@xensource.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
virtualization@lists.osdl.org, xen-devel@lists.xensource.com
Subject: Re: [PATCH 1/5] cpumask: update irq_desc to use cpumask_var_t
Date: Wed, 07 Jan 2009 14:32:50 -0800 [thread overview]
Message-ID: <49652D92.8020105@sgi.com> (raw)
In-Reply-To: <86802c440901071227n2d110757ye1bd12e689502ebc@mail.gmail.com>
Yinghai Lu wrote:
> On Wed, Jan 7, 2009 at 11:58 AM, Mike Travis <travis@sgi.com> wrote:
> | --- linux-2.6-for-ingo.orig/kernel/irq/numa_migrate.c
> | +++ linux-2.6-for-ingo/kernel/irq/numa_migrate.c
> | @@ -46,6 +46,7 @@ static void init_copy_one_irq_desc(int i
> | desc->cpu = cpu;
> | lockdep_set_class(&desc->lock, &irq_desc_lock_class);
> | init_copy_kstat_irqs(old_desc, desc, cpu, nr_cpu_ids);
> |+ init_copy_desc_masks(old_desc, desc);
> | arch_init_copy_chip_data(old_desc, desc, cpu);
> | }
> |
> |@@ -76,11 +77,20 @@ static struct irq_desc *__real_move_irq_
> | node = cpu_to_node(cpu);
> | desc = kzalloc_node(sizeof(*desc), GFP_ATOMIC, node);
> | if (!desc) {
> |- printk(KERN_ERR "irq %d: can not get new irq_desc for migration.\n", irq);
> |+ printk(KERN_ERR "irq %d: can not get new irq_desc "
> |+ "for migration.\n", irq);
> | /* still use old one */
> | desc = old_desc;
> | goto out_unlock;
> | }
> |+ if (!init_alloc_desc_masks(desc, node, false)) {
> |+ printk(KERN_ERR "irq %d: can not get new irq_desc cpumask "
> |+ "for migration.\n", irq);
> |+ /* still use old one */
> |+ kfree(desc);
> |+ desc = old_desc;
> |+ goto out_unlock;
> |+ }
> | init_copy_one_irq_desc(irq, old_desc, desc, cpu);
>
> desc new mask_var (allocated) aka the pointer is overwritten here...
> you may need to calling move init_alloc_desc_masks() into
> init_copy_one_irq_desc()
Wouldn't this in init_copy_one_irq_desc() take care of that?
@@ -46,6 +46,7 @@ static void init_copy_one_irq_desc(int i
desc->cpu = cpu;
lockdep_set_class(&desc->lock, &irq_desc_lock_class);
init_copy_kstat_irqs(old_desc, desc, cpu, nr_cpu_ids);
+ init_copy_desc_masks(old_desc, desc);
arch_init_copy_chip_data(old_desc, desc, cpu);
where:
static inline void init_copy_desc_masks(struct irq_desc *old_desc,
struct irq_desc *new_desc)
{
#ifdef CONFIG_CPUMASKS_OFFSTACK
cpumask_copy(new_desc->affinity, old_desc->affinity);
#ifdef CONFIG_GENERIC_PENDING_IRQ
cpumask_copy(new_desc->pending_mask, old_desc->pending_mask);
#endif
#endif
}
In other words if the masks are not a cpumask[1] but instead a
*cpumask pointer, then the old masks are copied to the new desc/
Or am I missing your point?
Thanks!
Mike
>
> | irq_desc_ptrs[irq] = desc;
>
> YH
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2009-01-07 22:32 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-07 19:58 [PATCH 0/5] cpumask: more cpumask updates Mike Travis
2009-01-07 19:58 ` [PATCH 1/5] cpumask: update irq_desc to use cpumask_var_t Mike Travis
2009-01-07 20:27 ` Yinghai Lu
2009-01-07 20:27 ` Yinghai Lu
2009-01-07 22:32 ` Mike Travis [this message]
2009-01-07 22:32 ` Mike Travis
2009-01-08 3:15 ` Yinghai Lu
2009-01-08 3:15 ` Yinghai Lu
2009-01-08 15:45 ` Mike Travis
2009-01-08 19:31 ` Yinghai Lu
2009-01-08 18:40 ` [PATCH 1/5] cpumask: update irq_desc to use cpumask_var_t: fix Mike Travis
2009-01-07 19:58 ` [PATCH 2/5] cpumask: Use topology_core_cpumask()/topology_thread_cpumask() Mike Travis
2009-01-19 17:11 ` Ben Hutchings
2009-01-07 19:58 ` [PATCH 3/5] cpumask: convert misc driver functions Mike Travis
2009-01-10 10:57 ` Rusty Russell
2009-01-16 18:42 ` Tony Luck
2009-01-16 18:55 ` Mike Travis
2009-01-16 22:02 ` Mike Travis
2009-01-22 13:11 ` Robert Richter
2009-01-22 13:14 ` [PATCH] cpumask: modifiy oprofile initialization Robert Richter
2009-01-22 13:37 ` Ingo Molnar
2009-01-22 17:20 ` Mike Travis
2009-01-22 17:40 ` Ingo Molnar
2009-01-22 19:41 ` Mike Travis
2009-01-22 16:56 ` Mike Travis
2009-01-23 14:12 ` Robert Richter
2009-01-07 19:58 ` [PATCH 4/5] cpumask: convert drivers/net/sfc Mike Travis
2009-01-19 17:08 ` Ben Hutchings
[not found] ` <200901201209.34854.rusty@rustcorp.com.au>
2009-01-20 18:26 ` [PATCH 4/5] cpumask: convert drivers/net/sfc [PATCH supplied] Mike Travis
2009-01-26 15:04 ` [PATCH] sfc: modify allocation error message Mike Travis
2009-01-27 12:13 ` Ben Hutchings
2009-01-07 19:58 ` [PATCH 5/5] cpumask: convert other misc kernel functions Mike Travis
2009-01-07 20:52 ` [PATCH 0/5] cpumask: more cpumask updates Ingo Molnar
2009-01-07 21:20 ` Mike Travis
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=49652D92.8020105@sgi.com \
--to=travis@sgi.com \
--cc=chrisw@sous-sol.org \
--cc=hpa@zytor.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=steiner@sgi.com \
--cc=tglx@linutronix.de \
--cc=venkatesh.pallipadi@intel.com \
--cc=virtualization@lists.osdl.org \
--cc=xen-devel@lists.xensource.com \
--cc=yinghai@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 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.