Re: WARNING and PANIC in irq_matrix_free
From: Song Liu
Date: Mon May 28 2018 - 14:37:13 EST
> On May 28, 2018, at 7:27 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> On Mon, 28 May 2018, Tariq Toukan wrote:
>> On 28/05/2018 1:53 PM, Thomas Gleixner wrote:
>>> On Fri, 25 May 2018, Song Liu wrote:
>>>> On Wed, May 23, 2018 at 1:49 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>>> wrote:
>>>>> On Wed, 23 May 2018, Tariq Toukan wrote:
>>>>>> I have your patch merged into my internal branch, it prints the
>>>>>> following:
>>>>>>
>>>>>> [ 4898.226258] Trying to clear prev_vector: 0
>>>>>> [ 4898.226439] Trying to clear prev_vector: 0
>>>>>>
>>>>>> i.e. vector(0) is lower than FIRST_EXTERNAL_VECTOR.
>>>>>
>>>>> Could you please enable the vector and irq matrix trace points and
>>>>> capture
>>>>> the trace when this happens?
>>>
>>> Does the patch below fix it?
>>>
>>> Thanks,
>>>
>>> tglx
>>>
>>> 8<-------------------
>>> diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
>>> index bb6f7a2148d7..54af3d4884b1 100644
>>> --- a/arch/x86/kernel/apic/vector.c
>>> +++ b/arch/x86/kernel/apic/vector.c
>>> @@ -148,6 +148,7 @@ static void apic_update_vector(struct irq_data *irqd,
>>> unsigned int newvec,
>>> * prev_vector for this and the offlined target case.
>>> */
>>> apicd->prev_vector = 0;
>>> + apicd->move_in_progress = false;
>>> if (!apicd->vector || apicd->vector == MANAGED_IRQ_SHUTDOWN_VECTOR)
>>> goto setnew;
>>> /*
>>>
>>
>> I took it into my internal branch. Will let you know.
>
> Note, I'd still like to see a trace w/o the patch which shows which order
> of events leads to this. Even if the patch cures it, it might just paper
> over it and not fixing the root cause.
>
> Thanks,
>
> tglx
I just checked trace without the patch. It looks the same as the one with
the patch.
Thanks,
Song