Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Dec 2012 18:08:31 +0100
From:      =?UTF-8?Q?cmcguirelovrconstance?= <cmcguirelovrconstance@o2.pl>
To:        dd@freebsd.org, stable@freebsd.org, freebsd-ia64@freebsd.org, gambit@profi.ru
Subject:   =?UTF-8?Q?---?=
Message-ID:  <38a47a2f.263534a8.50ba398f.5ee1b@o2.pl>

next in thread | raw e-mail | index | archive | help
http://sgabrielalovhreilly.cu.cc/?ELOISEThank=20god=20pets=20can't=20talk=
,=20they=20know=20so=20much
From owner-freebsd-stable@FreeBSD.ORG  Sat Dec  1 18:30:32 2012
Return-Path: <owner-freebsd-stable@FreeBSD.ORG>
Delivered-To: freebsd-stable@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
 by hub.freebsd.org (Postfix) with ESMTP id 88DEA6BF;
 Sat,  1 Dec 2012 18:30:32 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140])
 by mx1.freebsd.org (Postfix) with ESMTP id 9FC2E8FC12;
 Sat,  1 Dec 2012 18:30:31 +0000 (UTC)
Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua
 [212.40.38.100])
 by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id UAA00482;
 Sat, 01 Dec 2012 20:30:29 +0200 (EET) (envelope-from avg@FreeBSD.org)
Received: from localhost ([127.0.0.1])
 by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD))
 id 1Terpc-0005ZK-R3; Sat, 01 Dec 2012 20:30:28 +0200
Message-ID: <50BA4CC2.1010908@FreeBSD.org>
Date: Sat, 01 Dec 2012 20:30:26 +0200
From: Andriy Gapon <avg@FreeBSD.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
 rv:17.0) Gecko/17.0 Thunderbird/17.0
MIME-Version: 1.0
To: Andreas Longwitz <longwitz@incore.de>
Subject: Re: page fault on verbose boot
References: <50ABE8BC.1010904@incore.de> <50B8CD59.1050308@FreeBSD.org>
 <50B8DD1C.4010308@incore.de> <50B8ED1B.8080009@FreeBSD.org>
 <50B9463C.3090005@incore.de>
In-Reply-To: <50B9463C.3090005@incore.de>
X-Enigmail-Version: 1.4.6
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: freebsd-stable@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>
X-BeenThere: freebsd-stable@freebsd.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Production branch of FreeBSD source code <freebsd-stable.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-stable>,
 <mailto:freebsd-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-stable>;
List-Post: <mailto:freebsd-stable@freebsd.org>
List-Help: <mailto:freebsd-stable-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-stable>,
 <mailto:freebsd-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 01 Dec 2012 18:30:32 -0000

on 01/12/2012 01:50 Andreas Longwitz said the following:
[> "Andriy Gapon wrote" should have been present somewhere around here]
>> Looking at the code in ioapic_program_intpin() this seems to be possible indeed:
>>
>> /* Write the values to the APIC. */
>> intpin->io_lowreg = low;
>> ioapic_write(io->io_addr, IOAPIC_REDTBL_LO(intpin->io_intpin), low);
>>
>> The line above reprograms vector number AND _unmasks_ the pin (which was
>> specifically masked before reprogramming in ioapic_assign_cpu).
>> The lines below reprogram the destination LAPIC/CPU:
>>
>> value = ioapic_read(io->io_addr, IOAPIC_REDTBL_HI(intpin->io_intpin));
>> value &= ~IOART_DEST;
>> value |= high;
>> ioapic_write(io->io_addr, IOAPIC_REDTBL_HI(intpin->io_intpin), value);
>>
>> So a pending interrupt would be happily delivered to a wrong destination (new
>> vector + old lapic).
> 
>> I am not sure if just swapping these two blocks of lines would fix the issue, but
>> I hope that it would.  Could you please try that?
> 
> Yes I did and the first bootverbose run with your block switching patch
> was ok. I will do some more expansive tests next week.

Thank you very much.
I've committed this change to head.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?38a47a2f.263534a8.50ba398f.5ee1b>