All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dou Liyang <douly.fnst@cn.fujitsu.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Baoquan He <bhe@redhat.com>, <linux-kernel@vger.kernel.org>,
	<mingo@kernel.org>, <tglx@linutronix.de>, <x86@kernel.org>,
	<joro@8bytes.org>, <uobergfe@redhat.com>, <prarit@redhat.com>
Subject: Re: [PATCH v3 0/5] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump
Date: Mon, 12 Feb 2018 16:58:33 +0800	[thread overview]
Message-ID: <3bff2f47-ae3e-58e0-420a-378ff3f55b65@cn.fujitsu.com> (raw)
In-Reply-To: <87wozi7pwy.fsf@xmission.com>

Hi Eric,

At 02/12/2018 01:11 PM, Eric W. Biederman wrote:
> Dou Liyang <douly.fnst@cn.fujitsu.com> writes:
> 
>> Hi all,
>>
>> One thing confused me.
>>
>> The disconnect_bsp_APIC() may restore the interrupt delivery mode into
>> virtual wire mode. it uses the vector F as the spurious interrput, But,
>> IMO, using the vector 0xFF(SPURIOUS_APIC_VECTOR) may more suitable and
>> will give us more detail. Why the disconnect_bsp_APIC() use vector F
>> here?
> 
> I would say this needs a documentation search before changing this.
> 
> This code originates in:
> 208fb93162d5 ("[PATCH] kexec: x86_64: restore apic virtual wire mode on shutdown")
> 
> The example in the Multi-Processor Specification v1.4 shows setting
> up the SPIV to vector 0x0f.
> 
Thanks for your detailed explanation, I found the example A-1 in this
spec.

> I don't know what is canonical and what will interact best with DOS,
> and that erra of setup.  The vector 0x0f seems an odd choice as
> it is below 0x20 putting it in the range of vectors that are
> reserved for processor exceptions.
> 
> The constant SPURIOUS_APIC_VECTOR is definitely not something we want
> to be using at this point as that is a linux specific setting and used
> when Linux is up and running.  So it is completely inapplicable.
> 
> This is all about restoring how the apics were configured at boot time
> so it may be appropriate to copy and store this value, if it was not
> architectural.
> 
> At a practical level at this point I suspect we are ok as the setting
> of the SPIV this way has not caused any known problems in the last
> decade.   If someone wants to dig through the archtectural documents
> and the real world practice and find a better value and explain the
> change I would not oppose it.

Indeed, I understand.


Thanks,
	dou

> 
> All I know for certain is using the constant SPURIOUS_APIC_VECTOR
> is completely inappropriate (as that constant is about how linux uses
> vectors) and thus the patch below is wrong.
> 
>> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
>> index 25ddf02598d2..550deaad6a9a 100644
>> --- a/arch/x86/kernel/apic/apic.c
>> +++ b/arch/x86/kernel/apic/apic.c
>> @@ -2130,7 +2130,7 @@ void disconnect_bsp_APIC(int virt_wire_setup)
>>          value = apic_read(APIC_SPIV);
>>          value &= ~APIC_VECTOR_MASK;
>>          value |= APIC_SPIV_APIC_ENABLED;
>> -       value |= 0xf;
>> +       value |= SPURIOUS_APIC_VECTOR;
>>          apic_write(APIC_SPIV, value);
>>
>>          if (!virt_wire_setup) {
>>
> 
> Eric
> 
> 
> 

  reply	other threads:[~2018-02-12  8:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-09 12:10 [PATCH v3 0/5] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Baoquan He
2018-02-09 12:10 ` [PATCH v3 1/5] x86/apic: Split out restore_boot_irq_mode from disable_IO_APIC Baoquan He
2018-02-09 12:10 ` [PATCH v3 2/5] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Baoquan He
2018-02-12  3:08   ` Eric W. Biederman
2018-02-12 10:03     ` Baoquan He
2018-02-13  2:43     ` Dou Liyang
2018-02-13  3:24       ` Baoquan He
2018-02-13 17:40       ` Eric W. Biederman
2018-02-14  3:22         ` Dou Liyang
2018-02-13  7:43     ` Baoquan He
2018-02-13 17:44       ` Eric W. Biederman
2018-02-14  2:44         ` Baoquan He
2018-02-09 12:10 ` [PATCH v3 3/5] x86/apic: Remove useless disable_IO_APIC Baoquan He
2018-02-09 12:10 ` [PATCH v3 4/5] x86/apic: Rename variable/function related to x86_io_apic_ops Baoquan He
2018-02-09 12:10 ` [PATCH v3 5/5] x86/apic: Set up through-local-APIC on boot CPU if 'noapic' specified Baoquan He
2018-02-12  4:06 ` [PATCH v3 0/5] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Dou Liyang
2018-02-12  5:11   ` Eric W. Biederman
2018-02-12  8:58     ` Dou Liyang [this message]
2018-02-12  9:59     ` Baoquan He

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=3bff2f47-ae3e-58e0-420a-378ff3f55b65@cn.fujitsu.com \
    --to=douly.fnst@cn.fujitsu.com \
    --cc=bhe@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=prarit@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=uobergfe@redhat.com \
    --cc=x86@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.