From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LxPQK-0001Vc-UG for qemu-devel@nongnu.org; Fri, 24 Apr 2009 13:42:52 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LxPQJ-0001VQ-JV for qemu-devel@nongnu.org; Fri, 24 Apr 2009 13:42:51 -0400 Received: from [199.232.76.173] (port=43628 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LxPQJ-0001VN-9U for qemu-devel@nongnu.org; Fri, 24 Apr 2009 13:42:51 -0400 Received: from fg-out-1718.google.com ([72.14.220.155]:58383) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LxPQI-0006qW-Q5 for qemu-devel@nongnu.org; Fri, 24 Apr 2009 13:42:51 -0400 Received: by fg-out-1718.google.com with SMTP id l27so210969fgb.8 for ; Fri, 24 Apr 2009 10:42:49 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 24 Apr 2009 20:42:49 +0300 Message-ID: Subject: Re: [Qemu-devel] [PATCH] sparc64 support TSB related MMU registers From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Kovalenko Cc: qemu-devel@nongnu.org On 4/24/09, Igor Kovalenko wrote: > Hi! > > This change allows reading ultrasparc I/D MMU TSB tag target register > and TSB pointer register (8k and 64k). > Linux kernel uses TSB for memory management, and with this change it > now can use early allocation routines. > > I'm testing with linux-2.6.29.1 minimalistic sparc64 uniprocessor > build, now kernel is able to start build device tree. > Without the change kernel was not able to handle D-MMU miss while > creating first device tree node. > Currently it stops shortly after building device tree, trying to find > out path to console. Nice, though I didn't notice any visible improvement in my tests. About the patch, there are a few problems: - it breaks Sparc32 - commented out code is ugly - if and else should be on the same line as '{' or '}' - long lines should be wrapped - in the line: + return (((tag_access_register & 0x1fff)<<48)|(tag_access_register >> 22)); there should be white space between ) and << and 48. > (PS with openbios instance-to-path method fails in client interface > call, in the same way > it fails without loading kernel when I try invoking get-instance-path > on stdin handle from command prompt. > there fmove invokes memmove() with size argument looking like some > pointer which leads to unhandled D-MMU fault) Similar very obscure problem was fixed with PPC (r481), the bug was with the PCI nodes.