From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: Debian linux-image-2.6.32-4-xen-amd64 2.6.32-11 doesn't boot with > 4 GiB; resets immediatelly, no log messages Date: Sat, 10 Apr 2010 15:52:45 -0700 Message-ID: <4BC1013D.2020003@goop.org> References: <20100408113422.GD4183@kepler.schwinge.homeip.net> <20100408133820.GA29832@phenom.dumpdata.com> <20100408221953.GG4183@kepler.schwinge.homeip.net> <4BBE5DF2.6040707@goop.org> <20100409180016.GA14029@kepler.schwinge.homeip.net> <4BBF7004.8000707@goop.org> <20100410221349.GM4183@kepler.schwinge.homeip.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100410221349.GM4183@kepler.schwinge.homeip.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Thomas Schwinge Cc: xen-devel@lists.xensource.com, Konrad Rzeszutek Wilk , Ian Campbell List-Id: xen-devel@lists.xenproject.org On 04/10/2010 03:13 PM, Thomas Schwinge wrote: >> Normally that would be OK, because it uses: >> >> __get_user(pfn, &machine_to_phys_mapping[mfn]); >> >> to dereference the array. But at this early stage, none of the kernel's >> exception handlers have been set up, so this will just fault into Xen. >> >> It would be interesting to confirm this by building your kernel with >> CONFIG_DEBUG_INFO=y in the .config, and verify that the faulting >> instruction is actually this line. >> > Bingo! > Excellent. Now I just need to work out how to do a proper manual limit check on the mfn. (I've always been a bit suspicious of this code, because there's no guarantee that a random invalid mfn *won't* happen to return the pfn we're looking for...) > $ for ip in ffffffff814f6d88 ffffffff81433e38 ffffffff814f6d3d ffffffff81433e60 ffffffff815a73ac ffffffff81433f98 ffffffff814f6f85 ffffffff8152b2d0 ffffffff814f95fb ffffffff814f8249 ffffffff813f3f5f ffffffff813b4119 ffffffff81433f90 ffffffff811ff14f ffffffff8100e361 ffffffff8100e343 ffffffff813b4119 ffffffff813f3f5f ffffffff8152a7b0 ffffffff814f49d0 ffffffff81001000 ffffffff814f6aca ffffffff82fdb000; do echo "* $ip:" && addr2line -fie debian/build/build_amd64_xen_amd64/vmlinux "$ip" && gdb -q --batch --eval-command="x/i 0x$ip" --eval-command="list *0x$ip" debian/build/build_amd64_xen_amd64/vmlinux; done > Oooh, nifty. J