From: ePAc <ep...@ko...> - 2004-02-02 23:02:39
|
I have some output from the kernel debugger, but i don't have the symbols files (gotta hunt those suckers down on the MS website), and no linux.pdb to trace either. this looks like it can work (i say that, but i have no idea what i'm tlaking about, other than the fact it seems that the system is trying to write to something it shouldn't be writing to :o) and one studpid question, but why round it up ? and not down ? Jok On Tue, 3 Feb 2004, Dan Aloni wrote: > Date: Tue, 3 Feb 2004 00:48:03 +0200 > From: Dan Aloni <da...@gm...> > To: Richard Goodwin <ric...@ri...> > Cc: Cooperative Linux Development <col...@li...>, > Shachar Shemesh <win...@sh...>, > Steven Edwards <ste...@ya...> > Subject: Re: [coLinux-devel] Re: BSOD, DDK dependency > > On Mon, Feb 02, 2004 at 04:35:36PM -0600, Richard Goodwin wrote: > > I think it works! :) So far no crash!! What did you change? > > Cool. > > This might take care of those BSODs for now. > > --- colinux-20040131/src/colinux/kernel/monitor.c 2004-01-31 18:57:06.000000000 +0200 > +++ colinux-20040131-patch/src/colinux/kernel/monitor.c 2004-02-03 00:19:25.000000000 +0200 > @@ -114,9 +114,9 @@ > co_rc_t rc; > > cmon->page_tables_size = cmon->physical_frames * sizeof(unsigned long *); > - cmon->page_tables_pages = (cmon->page_tables_size + PAGE_SHIFT-1) >> PAGE_SHIFT; > + cmon->page_tables_pages = (cmon->page_tables_size + PAGE_SIZE-1) >> PAGE_SHIFT; > cmon->pa_maps_size = cmon->manager->host_memory_pages * sizeof(unsigned long); > - cmon->pa_maps_pages = (cmon->pa_maps_size + PAGE_SHIFT-1) >> PAGE_SHIFT; > + cmon->pa_maps_pages = (cmon->pa_maps_size + PAGE_SIZE-1) >> PAGE_SHIFT; > > rc = co_monitor_alloc_pages(cmon, cmon->page_tables_pages, (void **)&cmon->page_tables); > if (!CO_OK(rc)) { > > An obvious bug-o. > > But I don't think it's the end of the fix. The problem is that the > amount of physical RAM reported from userspace is not divided > by 16MB, which means that something went wrong in its calculation. > > Look at this: > > unsigned long co_os_get_physical_ram_size() > { > MEMORYSTATUS memstat; > > GlobalMemoryStatus(&memstat); > > /* Round up in MBs: */ > > return (memstat.dwTotalPhys + 0xFFFFF) & 0xFFF00000; > } > > It's BAD. > > Does anyone know a better way to get this information? > > -- > Dan Aloni > da...@gm... > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > coLinux-devel mailing list > coL...@li... > https://lists.sourceforge.net/lists/listinfo/colinux-devel > --- Nothing is foolproof to a sufficiently talented fool... oo ,(..)\ ~~ |