OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Mar 29, 2024 2:39 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: The Mobius and 386 machines
PostPosted: Tue Mar 16, 2004 11:11 am 
Hi

I've just tested The Mobius 2003-10-27 from a floppy on most of my machines and I've noticed a problem with 386s

On both my 386DX-40 machines, and my NexGen Nx586 (has 386 instruction set) machine, just after grub finished loading the module mobius.tar.gz, the machine's in question just Reset (possibly tripple fault).

My Am5x86 Machine and up all run it fine. I might test it with an old 486 SX or DX.

Anyway, what are the System Requirements for the Mobius? Is it meant to be able to run on a 386 (and NexGen of course :))?

Or could the error be happening in grub?

srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Tue Mar 16, 2004 2:21 pm 
It doesn't support the 386 :). I'm using INVLPG, which is 486+, and I really don't think it's worth putting in a workaround just to support people mad enough to still own a 386 :p.


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Tue Mar 16, 2004 3:38 pm 
Tim Robinson wrote:
It doesn't support the 386 :). I'm using INVLPG, which is 486+, and I really don't think it's worth putting in a workaround just to support people mad enough to still own a 386 :p.


I see

Out of interest, why are you using this BTW, what advantage does invalidating a single page table entry in the Translation Look-Aside Buffer have, does it make things quicker?

I'm not just mad, I'm insane! I bought 8 386 mobo's from ebay. I've got a 486DLC on the way. Although I suppose I'm a bit of a collector. BTW I'm selling one board with an Intel 386DX 33 (no ram).

My plan is to support the 386 and use conditional compilation dependant on the CPU used. Sure the code size will be bigger but wider support is quite important to me.

srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Tue Mar 16, 2004 4:55 pm 
Offline
Member
Member
User avatar

Joined: Wed Oct 18, 2006 2:31 am
Posts: 5964
Location: In a galaxy, far, far away
you will see enormous performance gain with 'invlpg'. Without it, everytime you change the mapping of a page or make a page absent, you have to flush the whole TLB (by reloading CR3), which means any further access to memory will incur a performance penalty from reading the PDE and PTE back from main memory (or L1/L2 cache).

With 'invlpg', only the PTE/PDE related to that very address need a refresh, other memory references will be unaffected.

Note that it's quite simple to work around:
Code:
#ifdef CPU386
#define invalidate_tlb(x) asm("mov %%cr3,%0; mov %0,%%cr3")
#else
#define // normal invalidate_tlb() definition
#endif


But i understand why Tim don't want to bother with things like these... especially if he has no hardware to test them ...

_________________
Image May the source be with you.


Top
 Profile  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Wed Mar 17, 2004 2:01 am 
I understand

My plan is to be able to recompile for different CPUs based in conditional compilation (Run time descisions would slow the system down of course :) ).

For me it's very important to support the widest range of systems possible.

But I can understand Tim's descision not to support the 386, as you hardly see any 386s any more and there are Hardly any NexGen Nx586s compaired to 486s out there (Which is a shame IMHO). But saying that, it was a bit foolhardy not to update the design for the Nx586 in incorperate new insructions, it kind of sealed it's own coffin (that and the proprietry motherboard).

Would it be possible, Tim, if you could state The Mobius's Minimum System Requirements on your website? This would stop questions like mine in their tracks! ;) So CPU wise, I'm guessing, it would be a minimum of a 486SX 20MHz.

BTW, your website is littered with i386 statements, just changing these to i486 would help.

Anyway, I'll test it later with my 486DLC when I get it (It's comming from Russia), that is suppose to support the 486 instruction set and runs on a 386 board (with BIOS support).

Thanks
srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Sat Mar 20, 2004 3:15 pm 
in my computer it crachs with a page fault!!!


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Sun Mar 21, 2004 2:48 am 
aladdin wrote:
in my computer it crachs with a page fault!!!

Year, I've found that I've never been able to run it without it crashing with a page fault some time.

Sorry
srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Sun Mar 21, 2004 7:59 am 
Which version are you using? Where does it page fault? What is the CR2? What is the EIP? What does the stack dump say? How much memory does your system have? What can you find out by exploring at the debug prompt?


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Mon Mar 22, 2004 8:46 am 
I have now tested The Mobius with a 486DLC and I get an invalid opcode at tbout the same place, it may not have that 486 instruction then.


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Mon Mar 22, 2004 6:09 pm 
Which release is that? They each have a date.

If you can tell me which release it is, and the EIP where the invalid instruction takes place, I can check whether it's a real bug or whether I should increase my hardware spec. Or if you type db, then the hex address of EIP, you'll get a hex dump, from which you (or I) can disassemble the code and check.

I think there's still a CPUID in there without a check for whether CPUID is supported. Maybe that's it.

PS: I just answered a post from Ben Gainey about Mobius Release 5 crashing trying to mount an NTFS volume. I should probably enhance the checks for valid FAT volumes (since the NTFS boot sector is somewhat similar to the FAT one).


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Tue Mar 23, 2004 10:40 am 
Hey, I tested it and my keyboard doesn't work :o
Bochs log:

Code:
00155975058i[KBD  ] reset-disable command received
00157455481e[KBD  ] controller_enQ(): OUTB set!
**similar message repeated several times**
00157466698e[KBD  ] controller_enQ(): OUTB set!
00285290500i[KBD  ] internal keyboard buffer full, ignoring scancode.(20)
00285632500i[KBD  ] internal keyboard buffer full, ignoring scancode.(a0)
00285906500i[KBD  ] internal keyboard buffer full, ignoring scancode.(20)


I don't know what's wrong with it.
(But the startup screen looks quite good ;) )


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Wed Mar 24, 2004 12:45 am 
*hemhem* [rofl] - no, I am not a toad nor a toadstool.

I know, Tim can speak for himself. I just want to remark, that all your nice comments about what's not working are not very helpful. you neither tell which build of m?bius you are testing nor at which position in the code it fails. You can make screenshots or notate the registerdump in the debug console of m?bius (which is a plain good thing). That would be faaar more helpful than vague remarks. Even the doctor is clueless if you only moan about a indifferent hurt in the groin.

Just my two cents


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Wed Mar 24, 2004 3:09 am 
BI lazy wrote:
*hemhem* [rofl] - no, I am not a toad nor a toadstool.

I know, Tim can speak for himself. I just want to remark, that all your nice comments about what's not working are not very helpful. you neither tell which build of m?bius you are testing nor at which position in the code it fails. You can make screenshots or notate the registerdump in the debug console of m?bius (which is a plain good thing). That would be faaar more helpful than vague remarks. Even the doctor is clueless if you only moan about a indifferent hurt in the groin.

Just my two cents


Sorry, I just havn't got round to it yet.

srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Wed Mar 24, 2004 3:54 am 
OK

I'm now using Release 5 (ooooh!).

Anyway, with the DLC, The invalid instruction happens at:

0xc00044df

which is cpuid

Definately that, as it also happens on my Intel 486DX 50MHz

srg


Top
  
 
 Post subject: Re:The Mobius and 386 machines
PostPosted: Mon Mar 29, 2004 3:18 am 
wasn't CPUID only in the late 486's and basically not around until pentiums


Top
  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 30 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group