Re: latest -git: WARNING: at arch/x86/kernel/ipi.c:123 send_IPI_mask_bitmask+0xc3/0xe0()

Dave Jones
2008-08-22T00:40:09Z

On Wed, Aug 20, 2008 at 08:26:19AM +0200, Vegard Nossum wrote:
> On Wed, Aug 20, 2008 at 3:39 AM, Andi Kleen <andi@firstfloor.org> wrote:
> > On Tue, Aug 19, 2008 at 09:51:44PM +0200, Vegard Nossum wrote:
> >> Hi,
> >>
> >> With latest -git (1fca25427482387689fa27594c992a961d98768f), I got
> >> this on reading from /dev/cpu/*/* while hot-unplugging cpu1.
> >
> > It's generally known the oprofile doesn't support CPU hotplug well.
> > Someone needs to make a project out of fixing it properly. Right now
> > it's just a "don't do that when it hurts"
>
> Hm. What you say is true, but this one in particular has nothing to do
> with oprofile! It has something to do with reading /dev/cpu/*/msr
> while hot-unplugging cpu1:
>
> [<c011733e>] msr_read+0x6e/0xa0
> [<c01a87b4>] vfs_read+0x94/0x130
>
> I wasn't using oprofile when this happened. So I think it should also
> be considered a separate issue. Though yes -- CPU hotplug in general
> tends to break a lot of things.

>From my reading of the msr code, we check that the cpu is online in ->open,
but we never check it again, and also, we make no guarantees that it
won't go away before we ->read or even ->close it.

Would adding a get_cpu/put_cpu across the open/close solve this?
Peter?

Dave

--