From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from [59.151.112.132] (helo=heian.cn.fujitsu.com) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bPibh-0008Dt-HB for kexec@lists.infradead.org; Wed, 20 Jul 2016 03:55:38 +0000 From: "Wei, Jiangang" Subject: Re: [PATCH 0/3] Enable legacy irq mode before jump to kexec/kdump kernel Date: Wed, 20 Jul 2016 03:54:51 +0000 Message-ID: <1468986741.2020.41.camel@localhost> References: <1468983483-3952-1-git-send-email-bhe@redhat.com> In-Reply-To: <1468983483-3952-1-git-send-email-bhe@redhat.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: "bhe@redhat.com" Cc: "fenghua.yu@intel.com" , "x86@kernel.org" , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "mingo@redhat.com" , "ebiederm@xmission.com" , "hpa@zytor.com" , "tglx@linutronix.de" , "jiang.liu@linux.intel.com" , "vgoyal@redhat.com" SGkgQmFvcXVhbiBIZSwNCg0KV2VsbCwgSW5kZWVkIHRoZXJl4oCYcyBhIHJlbGF0aW9uc2hpcCBi ZXR3ZWVuIHRoZSBkdW1wLWNhcHR1cmUgaGFuZ3MgaW4NCmNhbGlicmF0ZV9kZWxheV9jb252ZXJn ZSgpIGFuZCB0aGUgaW50ZXJydXB0IG1vZGUuDQoNCmJ1dCB0aGVyZeKAmHMgbm8gZXNzZW50aWFs IGRpZmZlcmVuY2UgYmV0d2VlbiB5b3VyIHBhdGNoZXMgYW5kIG1pbmUgdGhhdA0KY2FsbHMgZGlz YWJsZV9JT19BUElDKCkgYWdhaW4uICANCkFjdHVhbGx5LCBkaXNhYmxlX0lPX0FQSUMgd2lsbCBz ZXQgQVBJQyB0byB2aXJ0dWFsIHdpcmUgbW9kZS4NCg0KSW4gZmFjdCwNCkVyaWMgYW5kIEluZ28g c3VnZ2VzdGVkIHRoYXQgIml0IHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgYm9vdHVwIHBhdGggb2YN CnRoZSBkdW1wIGtlcm5lbCwgbm90IHRoZSBjcmFzaCBrZXJuZWwgcmVib290IHBhdGgiLCB3aGlj aCBpcyBjb252aW5jaW5nDQphbmQgcmVhc29uYWJsZS4NCg0KQW5kIGkgZmluZCBhIGJldHRlciBt ZXRob2QgY2FuIGZpeCB0aGUgcHJvYmxlbS4NCkl0J3MgYmV0dGVyIHRvIHNldCB2aXJ0dWFsIHdp cmUgbW9kZSBmb3IgYXBpYyBpbiBpbml0X2JzcF9BUElDKCksIHdoaWNoDQppbiB0aGUgYm9vdHVw IHBhdGggb2YgZHVtcCBrZXJuZWwuDQpCdXQgbm93LCBpbml0X2JzcF9BUElDIGRvZXNuJ3QgaW5p dGlhbGl6ZSB0aGUgYXBpYyB0byB2aXR1YWwgd2lyZSBtb2RlDQp3aGVuIHNtcF9mb3VuZF9jb25m aWcgaXMgbm9uLXplcm8uDQoNCkZZSSwgSSdtIHdvcmtpbmcgb24gdGhpcyBwb2ludC4gbGF0ZXIg aSB3aWxsIHNlbmQgcGF0Y2hlcyB0byBtYWlsIGxpc3QuDQoNCldlaQ0KDQpPbiBXZWQsIDIwMTYt MDctMjAgYXQgMTA6NTggKzA4MDAsIEJhb3F1YW4gSGUgd3JvdGU6DQo+IFdlaSBKaWFuZ2FuZyBy ZXBvcnRlZCBrZHVtcCBrZXJuZWwgYWx3YXlzIGhhbmcgd2hlbiAibm90c2MiIGlzIHNwZWNpZmll ZA0KPiBpbiBib290IHBhcmFtZXRlci4gQWZ0ZXIgZGVidWdnaW5nIEkgZm91bmQgdGhlcmUncyBu byB0aW1lciBpbnRlcnJ1cHQNCj4gaW4gdGhlIGN1cnJlbnQga2V4ZWMva2R1bXAga2VybmVsLiBU aGlzIGlzIGNhdXNlZCBieSBjb21taXQgNTIyZTY2NDY0NDY3DQo+ICgieDg2L2FwaWM6IERpc2Fi bGUgSS9PIEFQSUMgYmVmb3JlIHNodXRkb3duIG9mIHRoZSBsb2NhbCBBUElDIikuIE9yaWdpbmFs bHkNCj4gRXJpYyBwb3N0ZWQgYmVsb3cgcGF0Y2ggdG8gbWFrZSBzeXN0ZW0gYmUgdmlydHVhbCB3 aXJlIG1vZGUgaW4gd2hpY2ggODI1OS0NCj4gZXF1aXZhbGVudCBQSUMgZmllbGRzIGFsbCBpbnRl cnJ1cHRzIGFuZCB0aGUgTEFQSUMgYmVjb21lcyBhIHZpcnR1YWwgd2lyZS4NCj4gTGlrZSB0aGlz IGludGVycnVwdHMgY2FuIGJlIGRlbGl2ZXJlZCBmcm9tIFBJQyB0byBDUFUgdmlhIHRoZSBMQVBJ QydzIGxvY2FsDQo+IGludGVycnVwdCAwIChMSU5USU4wKS4gSW4gdmlydHVhbCB3aXJlIEFQSUMg bW9kZSBpcyBkaXNhYmxlZCB3aGlsZSBMQVBJQw0KPiBpcyBzb2Z0d2FyZSBlbmFibGVkIGFuZCBp dHMgTElOVDAgYW5kIExJTlQxIG5lZWQgYmUgcHJvZ3JhbW1lZCBzcGVjaWZpY2FsbHkuDQo+IA0K PiBodHRwczovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL2FrcG0vcGF0 Y2hlcy8yLjYvMi42LjExLzIuNi4xMS1tbTEvYnJva2VuLW91dC94ODZfNjQtYXBpYy12aXJ0d2ly ZS1vbi1zaHV0ZG93bi5wYXRjaA0KPiANCj4gQnV0IHdpdGggY29tbWl0IDUyMmU2NjQ2NCB5b3Ug Y2FuIHNlZSBhZnRlciBkaXNhYmxlX0lPX0FQSUMgaGFkIHNldHRpbmcNCj4gdmlydHVhbCB3aXJl IG1vZGUsIGxhcGljX3NodXRkb3duIGRpc2FibGVkIExBUElDIGFnYWluLiBOb3cgdmlydHVhbCB3 aXJlDQo+IG1vZGUgZG9lc24ndCB3b3JrLCB0aGVuIGl0IGNhdXNlIG5vIHRpbWVyIGludGVycnVw dCBkdXJpbmcga2R1bXAga2VybmVsDQo+IGluaXRpYWxpemF0aW9uIHN0YWdlIHVudGlsIHN5c3Rl bSBlbnRlciBpbnRvIEFQSUMgbW9kZS4NCj4gDQo+IFNvIHBlb3BsZSBtYXkgYmUgd29uZGVyaW5n IHdoeSBvbmx5IGtkdW1wIGtlcm5lbCBoYW5nLCB0aGUgbm9ybWFsIGtlcm5lbA0KPiB3aXRoICJu b3RzYyIgY2FuIHN0aWxsIHdvcmsuIFRoaXMgaXMgYmVjYXVzZSBCSU9TIGhhcyBhbHJlYWR5IGJ1 aWx0IFBJQyBtb2RlDQo+IG9yIHZpcnR1YWwgd2lyZSBtb2RlIHdoaWxlIGtleGVjL2tkdW1wIGtl cm5lbCBkb2Vzbid0IGdvIHRocm91Z2ggQklPUw0KPiBpbml0aWFsaXphdGlvbi4gVGhhdCBpcyB3 aHkgd2UgaGF2ZSB0byBjaGFuZ2Ugc3lzdGVtIHRvIGJlIFBJQyBtb2RlIG9yDQo+IHZpcnR1YWwg d2lyZSBtb2RlIGJlZm9yZSBqdW1wIHRvIGtleGVjL2tkdW1wIGtlcm5lbC4NCj4gDQo+IFRoZW4g d2h5IGtkdW1wIGtlcm5lbCBkaWRuJ3QgaGFuZyB3aGVuICJub3RzYyIgaXMgbm90IHNwZWNpZmll ZC4gVGhpcyBpcw0KPiBiZWNhdXNlIHRzY19pbml0IHdpbGwgYXNzaWduIHRoZSBhbHJlYWR5IGNh bGlicmF0ZWQgdmFsdWUgdG8gbHBqX2ZpbmUuDQo+IFRoZW4ga2VybmVsIGRvZXNuJ3QgbmVlZCB0 byBjb3VudCBjcHUgbG9vcHMgYmV0d2VlbiBqaWZmaWVzIHdpdGggdGhlIGhlbHANCj4gb2YgdGlt ZXIgaW50ZXJydXB0LiBTbyAibm90c2MiIGlzIG5vdCB2aWN0aW0sIGJ1dCBhIGluZm9ybWVyLg0K PiANCj4gSW4gcGF0Y2ggMS8zIGRpc2FibGVfSU9fQVBJQyBpcyBjaGFuZ2VkIHRvIG9ubHkgY29u dGFpbiBjb2RlIG9mIGNoYW5nZWluZw0KPiBzeXN0ZW0gdG8gYmUgUElDIG1vZGUgb3IgdmlydHVh bCB3aXJlIG1vZGUgYW5kIGlzIHJlbmFtZWQgYXMNCj4gc3dpdGNoX3RvX2xlZ2FjeV9pcnFfbW9k ZS4gTm93IG9ubHkgY2FsbCBjbGVhcl9JT19BUElDIHdoZXJlIElPLUFQSUMgbmVlZA0KPiBiZSBk aXNhYmxlZCwgYW5kIGNhbGwgc3dpdGNoX3RvX2xlZ2FjeV9pcnFfbW9kZSBiZWZvcmUganVtcCB0 byBrZXhlL2tkdW1wDQo+IGtlcm5lbC4NCj4gDQo+IFBhdGNoIDIvMyBhbmQgMy8zIGFyZSBjbGVh biB1cCBwYXRjaC4NCj4gDQo+IEJhb3F1YW4gSGUgKDMpOg0KPiAgIHg4Ni9hcGljL2tleGVjOiBF bmFibGUgbGVnYWN5IGlycSBtb2RlIGJlZm9yZSBqdW1wIHRvIGtleGVjL2tkdW1wDQo+ICAgICBr ZXJuZWwNCj4gICB4ODYvYXBpYzogQ2xlYW4gdXAgdGhlIG5hbWVzIG9mIGxlZ2FjeSBpcnEgbW9k ZSBzZXR0aW5nIHJlbGF0ZWQNCj4gICAgIGZ1bmN0aW9ucw0KPiAgIHg4Ni9hcGljOiBDbGVhbiB1 cCB0aGUgYXBpYyBkZWxpdmVyeSBtb2RlIG1hY3JvIGRlZmluaXRpb24NCj4gDQo+ICBhcmNoL3g4 Ni9pbmNsdWRlL2FzbS9hcGljLmggICAgICAgIHwgIDIgKy0NCj4gIGFyY2gveDg2L2luY2x1ZGUv YXNtL2FwaWNkZWYuaCAgICAgfCAgMSAtDQo+ICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGlj LmggICAgIHwgIDYgKysrLS0tDQo+ICBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmMgICAgICAg IHwgMTkgKysrKysrKysrKystLS0tLS0tLQ0KPiAgYXJjaC94ODYva2VybmVsL2FwaWMvaW9fYXBp Yy5jICAgICB8IDMyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+ICBhcmNoL3g4 Ni9rZXJuZWwvY3Jhc2guYyAgICAgICAgICAgIHwgIDIgKy0NCj4gIGFyY2gveDg2L2tlcm5lbC9t YWNoaW5lX2tleGVjXzMyLmMgfCAxNSArKysrKy0tLS0tLS0tLS0NCj4gIGFyY2gveDg2L2tlcm5l bC9tYWNoaW5lX2tleGVjXzY0LmMgfCAxNSArKysrKy0tLS0tLS0tLS0NCj4gIGFyY2gveDg2L2tl cm5lbC9yZWJvb3QuYyAgICAgICAgICAgfCAgMiArLQ0KPiAgYXJjaC94ODYva2VybmVsL3g4Nl9p bml0LmMgICAgICAgICB8ICAyICstDQo+ICBkcml2ZXJzL2lvbW11L2lycV9yZW1hcHBpbmcuYyAg ICAgIHwgIDIgKy0NCj4gIDExIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDUyIGRl bGV0aW9ucygtKQ0KPiANCg0KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwprZXhlYyBtYWlsaW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751148AbcGTDzH (ORCPT ); Tue, 19 Jul 2016 23:55:07 -0400 Received: from cn.fujitsu.com ([59.151.112.132]:53432 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751065AbcGTDzF (ORCPT ); Tue, 19 Jul 2016 23:55:05 -0400 X-IronPort-AV: E=Sophos;i="5.22,518,1449504000"; d="scan'208";a="8887392" From: "Wei, Jiangang" To: "bhe@redhat.com" CC: "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "tglx@linutronix.de" , "vgoyal@redhat.com" , "fenghua.yu@intel.com" , "jiang.liu@linux.intel.com" , "ebiederm@xmission.com" , "x86@kernel.org" , "hpa@zytor.com" , "mingo@redhat.com" Subject: Re: [PATCH 0/3] Enable legacy irq mode before jump to kexec/kdump kernel Thread-Topic: [PATCH 0/3] Enable legacy irq mode before jump to kexec/kdump kernel Thread-Index: AQHR4jKR6gVHfGoSLUCTP/ySpN9tf6AgKbqA Date: Wed, 20 Jul 2016 03:54:51 +0000 Message-ID: <1468986741.2020.41.camel@localhost> References: <1468983483-3952-1-git-send-email-bhe@redhat.com> In-Reply-To: <1468983483-3952-1-git-send-email-bhe@redhat.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.167.226.50] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 X-yoursite-MailScanner-ID: 63D8342B87C0.AB334 X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: weijg.fnst@cn.fujitsu.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u6K3tCIb020816 Hi Baoquan He, Well, Indeed there‘s a relationship between the dump-capture hangs in calibrate_delay_converge() and the interrupt mode. but there‘s no essential difference between your patches and mine that calls disable_IO_APIC() again. Actually, disable_IO_APIC will set APIC to virtual wire mode. In fact, Eric and Ingo suggested that "it should be fixed in the bootup path of the dump kernel, not the crash kernel reboot path", which is convincing and reasonable. And i find a better method can fix the problem. It's better to set virtual wire mode for apic in init_bsp_APIC(), which in the bootup path of dump kernel. But now, init_bsp_APIC doesn't initialize the apic to vitual wire mode when smp_found_config is non-zero. FYI, I'm working on this point. later i will send patches to mail list. Wei On Wed, 2016-07-20 at 10:58 +0800, Baoquan He wrote: > Wei Jiangang reported kdump kernel always hang when "notsc" is specified > in boot parameter. After debugging I found there's no timer interrupt > in the current kexec/kdump kernel. This is caused by commit 522e66464467 > ("x86/apic: Disable I/O APIC before shutdown of the local APIC"). Originally > Eric posted below patch to make system be virtual wire mode in which 8259- > equivalent PIC fields all interrupts and the LAPIC becomes a virtual wire. > Like this interrupts can be delivered from PIC to CPU via the LAPIC's local > interrupt 0 (LINTIN0). In virtual wire APIC mode is disabled while LAPIC > is software enabled and its LINT0 and LINT1 need be programmed specifically. > > https://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11/2.6.11-mm1/broken-out/x86_64-apic-virtwire-on-shutdown.patch > > But with commit 522e66464 you can see after disable_IO_APIC had setting > virtual wire mode, lapic_shutdown disabled LAPIC again. Now virtual wire > mode doesn't work, then it cause no timer interrupt during kdump kernel > initialization stage until system enter into APIC mode. > > So people may be wondering why only kdump kernel hang, the normal kernel > with "notsc" can still work. This is because BIOS has already built PIC mode > or virtual wire mode while kexec/kdump kernel doesn't go through BIOS > initialization. That is why we have to change system to be PIC mode or > virtual wire mode before jump to kexec/kdump kernel. > > Then why kdump kernel didn't hang when "notsc" is not specified. This is > because tsc_init will assign the already calibrated value to lpj_fine. > Then kernel doesn't need to count cpu loops between jiffies with the help > of timer interrupt. So "notsc" is not victim, but a informer. > > In patch 1/3 disable_IO_APIC is changed to only contain code of changeing > system to be PIC mode or virtual wire mode and is renamed as > switch_to_legacy_irq_mode. Now only call clear_IO_APIC where IO-APIC need > be disabled, and call switch_to_legacy_irq_mode before jump to kexe/kdump > kernel. > > Patch 2/3 and 3/3 are clean up patch. > > Baoquan He (3): > x86/apic/kexec: Enable legacy irq mode before jump to kexec/kdump > kernel > x86/apic: Clean up the names of legacy irq mode setting related > functions > x86/apic: Clean up the apic delivery mode macro definition > > arch/x86/include/asm/apic.h | 2 +- > arch/x86/include/asm/apicdef.h | 1 - > arch/x86/include/asm/io_apic.h | 6 +++--- > arch/x86/kernel/apic/apic.c | 19 +++++++++++-------- > arch/x86/kernel/apic/io_apic.c | 32 +++++++++++++++++--------------- > arch/x86/kernel/crash.c | 2 +- > arch/x86/kernel/machine_kexec_32.c | 15 +++++---------- > arch/x86/kernel/machine_kexec_64.c | 15 +++++---------- > arch/x86/kernel/reboot.c | 2 +- > arch/x86/kernel/x86_init.c | 2 +- > drivers/iommu/irq_remapping.c | 2 +- > 11 files changed, 46 insertions(+), 52 deletions(-) >