From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: adding support for above 2giga to kvm (include patchs) Date: Tue, 14 Aug 2007 23:25:37 -0500 Message-ID: <1187151937.18708.2.camel@squirrel> References: <64F9B87B6B770947A9F8391472E032160CBECF4F@ehost011-8.exch011.intermedia.net> <20070814150937.GG1228@us.ibm.com> <1187106465.11302.27.camel@izike-desktop.qumranet.com> <20070814182454.GJ1228@us.ibm.com> <1187117890.14753.5.camel@izike-desktop.qumranet.com> <20070814192606.GL1228@us.ibm.com> <1187120417.15054.12.camel@izike-desktop.qumranet.com> <20070814194613.GM1228@us.ibm.com> <1187121522.15054.22.camel@izike-desktop.qumranet.com> <20070814204420.GN1228@us.ibm.com> <20070814222150.GO1228@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Ryan Harper Return-path: In-Reply-To: <20070814222150.GO1228-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org On Tue, 2007-08-14 at 17:21 -0500, Ryan Harper wrote: > * Ryan Harper [2007-08-14 15:44]: > > * Izik Eidus [2007-08-14 15:00]: > > > i am sorry, i wrote you message and it get messed. > > > > > > anyway you remember in the old patch the: > > > + if (ram_size > 0xf0000000) > > > > val = 640; /* base memory in K */ > > > i bet this is the problem :) > > > > I removed that now and I didn't help =( > > So, I don't think passing the structure as a pointer works. The 16-bit > compiler bcc has a number of quirks. I don't pretend to understand what > the issue is here, but, changing the signature of set_e820_range() to: A pointer on the stack is not the same as a normal pointer in 16-bit mode (one is relative to the stack segment and the other is relative to data segment). It may be that when Linux and Windows make calls into e820, ds == ss but when memtest86 does, ds != ss. I suspect this is why the BOCHS bios code goes out of it's way to pass everything by value (and why there are so many functions with a huge number of arguments). I've had this issue myself with the SCSI boot ROM. Regards, Anthony Liguori > void set_e820_range(ES, DI, start, end, extra_start, extra_end, type) > Bit16u ES; > Bit16u DI; > Bit32u start; > Bit32u end; > Bit16u extra_start; > Bit8u extra_end; > Bit16u type; > { > > and the callers accordingly, fixes the issue with memtest iso. I can > still boot guests with more than 4G, and memtest sees the correct > amount, above and below 4G. > ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/