All of lore.kernel.org
 help / color / mirror / Atom feed
* MIPS64 status?
@ 2002-01-14  5:13 Matthew Dharm
  2002-01-14  8:13 ` Jason Gunthorpe
                   ` (2 more replies)
  0 siblings, 3 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-14  5:13 UTC (permalink / raw)
  To: linux-mips

So, lots of people are asking me about 64-bit support for MIPS Linux.  And
this is something I think I know, but I'm not sure.  And before I go
spreading any more bad data, I thought I'd ask the experts. :)

As I understand it, 64-bit support is really two different things:  64-bit
data path (i.e. unsigned long long) and 64-bit addressing (for more than 4G
of RAM).

My understanding is that "MIPS64" generally refers to a kernel which
supports a 64-bit data path, but we're still limited to 32-bit addressing.
Is that correct?

I suspect that this is very much a toolchain issue, as I don't think gcc
will generate 64-bit addressing code.

Comments?  Corrections?  Smack-downs? :)

Matt

-- 
Matthew Dharm                              Work: mdharm@momenco.com
Senior Software Designer, Momentum Computer

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14  5:13 MIPS64 status? Matthew Dharm
@ 2002-01-14  8:13 ` Jason Gunthorpe
  2002-01-14 20:00     ` Matthew Dharm
  2002-01-14 11:17 ` Dominic Sweetman
  2002-01-14 23:05 ` Ralf Baechle
  2 siblings, 1 reply; 29+ messages in thread
From: Jason Gunthorpe @ 2002-01-14  8:13 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips


On Sun, 13 Jan 2002, Matthew Dharm wrote:

> As I understand it, 64-bit support is really two different things:  64-bit
> data path (i.e. unsigned long long) and 64-bit addressing (for more than 4G
> of RAM).

I suppose you could say that. I think I saw someone post to this list
that they were working on a patch to enable 64 bit registers with a 32 bit
kernel.

> My understanding is that "MIPS64" generally refers to a kernel which
> supports a 64-bit data path, but we're still limited to 32-bit addressing.
> Is that correct?

The mips64 tree in CVS is one that is a 64 bit addressing capable kernel.
AFAIK the linx convention is that <foo>64 refers to addressing (which
probably impiles register width too :>)

I'm not sure what the current state of the ELF64 MIPS toolchain is.

Jason

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14  5:13 MIPS64 status? Matthew Dharm
  2002-01-14  8:13 ` Jason Gunthorpe
@ 2002-01-14 11:17 ` Dominic Sweetman
  2002-01-14 12:54     ` Kevin D. Kissell
                     ` (2 more replies)
  2002-01-14 23:05 ` Ralf Baechle
  2 siblings, 3 replies; 29+ messages in thread
From: Dominic Sweetman @ 2002-01-14 11:17 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips


Matthew,

> As I understand it, 64-bit support is really two different things:
> 64-bit data path (i.e. unsigned long long) and 64-bit addressing
> (for more than 4G of RAM).

Yes: the MIPS architecture is designed so there are lots of different
things which can be "64-bit", and you don't have to go for them all at
once.  This kind of choice can be as much curse as blessing, of course.

Ralf etc have worked (with some sponsorship from SGI) on a full-blown
system where you get:

o A very large physical address space
o Very large virtual address spaces, using 64-bit pointer types.
o C "long" (and perhaps even "int") becomes 64-bit.

In such a 64-bit Linux system, though, you might still want to be able
to run 32-bit applications with 32-bit pointers, int and long - either
for compatibility or economy (32-bit data types make for a smaller
program).  SGI do this in Irix: I don't know whether the 64-bit
Linux/MIPS systems got around to it.

There are other potentially useful combinations:

o A Linux where all machine-supported integer data types are 32-bit,
  but capable of addressing physical memory outside of a 4Gbyte map.
  (In practice, you need to use this kind of system to get outside of
  a 512Mbyte map - so it's urgent).

  Ralf says he has done this: it could be done without using any
  64-bit operations, but it might be easier with them.

o A system using 32-bit pointers and 'long' throughout, but with
  support for 'long long' 64-bit integer data types in registers.
  
o A system using 64-bit addressing within the kernel, but not for
  applications. 

However, it's unlikely to make sense to do all of them!

> I suspect that this is very much a toolchain issue, as I don't think
> gcc will generate 64-bit addressing code.

I suspect that the generic GNU toolchains are pretty buggy when you
switch on 64-bit MIPS operation; but it's bug-fixes which are needed,
not wholesale new features.

Politics: MIPS Technologies' advocacy for their "MIPS32" instruction
set dialect in embedded systems means there are now some quite capable
MIPS CPUs (eg Alchemy's 500Mhz integrated CPUs) which don't have
64-bit datapaths or arithmetic.  So casual dependence on 64-bit
operations should probably be avoided.

-- 
Dominic Sweetman
Algorithmics Ltd
The Fruit Farm, Ely Road, Chittering, CAMBS CB5 9PH, ENGLAND
phone: +44 1223 706200 / fax: +44 1223 706250 / home: +44 20 7226 0032
http://www.algor.co.uk

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
@ 2002-01-14 12:54     ` Kevin D. Kissell
  0 siblings, 0 replies; 29+ messages in thread
From: Kevin D. Kissell @ 2002-01-14 12:54 UTC (permalink / raw)
  To: Dominic Sweetman, Matthew Dharm; +Cc: linux-mips

> > As I understand it, 64-bit support is really two different things:
> > 64-bit data path (i.e. unsigned long long) and 64-bit addressing
> > (for more than 4G of RAM).
> 
> Yes: the MIPS architecture is designed so there are lots of different
> things which can be "64-bit", and you don't have to go for them all at
> once.  This kind of choice can be as much curse as blessing, of course.

Careful, Dom.  As far as user-mode programs are concerned,
older 64-bit MIPS designs (R4xxxx/R5xxxx/R7xxxx), one cannot
enable 64-bit arithmetic without enabling 64-bit addressing,
both of these functions being enabled by the Status.UX bit.
SGI's IRIX OS allowed an execution model that provided
64-bit registers and math, while *simulating* a 32-bit address
space, based on sign-extending 32-bit addresses to 64-bits.
The user was spared doubling the footprint of all his pointers,
but the OS still had to manage the larger page tables.

The official MIPS64[tm] architecture spec from MIPS 
Technologies also provides a bit (Status.PX) which enables
the 64-bit data path without affecting address generation
and translation, which removes this quirk.  Only the very
most recent 64-bit cores and CPUs implement it, however.


            Regards,

            Kevin K.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
@ 2002-01-14 12:54     ` Kevin D. Kissell
  0 siblings, 0 replies; 29+ messages in thread
From: Kevin D. Kissell @ 2002-01-14 12:54 UTC (permalink / raw)
  To: Dominic Sweetman, Matthew Dharm; +Cc: linux-mips

> > As I understand it, 64-bit support is really two different things:
> > 64-bit data path (i.e. unsigned long long) and 64-bit addressing
> > (for more than 4G of RAM).
> 
> Yes: the MIPS architecture is designed so there are lots of different
> things which can be "64-bit", and you don't have to go for them all at
> once.  This kind of choice can be as much curse as blessing, of course.

Careful, Dom.  As far as user-mode programs are concerned,
older 64-bit MIPS designs (R4xxxx/R5xxxx/R7xxxx), one cannot
enable 64-bit arithmetic without enabling 64-bit addressing,
both of these functions being enabled by the Status.UX bit.
SGI's IRIX OS allowed an execution model that provided
64-bit registers and math, while *simulating* a 32-bit address
space, based on sign-extending 32-bit addresses to 64-bits.
The user was spared doubling the footprint of all his pointers,
but the OS still had to manage the larger page tables.

The official MIPS64[tm] architecture spec from MIPS 
Technologies also provides a bit (Status.PX) which enables
the 64-bit data path without affecting address generation
and translation, which removes this quirk.  Only the very
most recent 64-bit cores and CPUs implement it, however.


            Regards,

            Kevin K.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 12:54     ` Kevin D. Kissell
  (?)
@ 2002-01-14 13:37     ` Maciej W. Rozycki
  -1 siblings, 0 replies; 29+ messages in thread
From: Maciej W. Rozycki @ 2002-01-14 13:37 UTC (permalink / raw)
  To: Kevin D. Kissell; +Cc: Dominic Sweetman, Matthew Dharm, linux-mips

On Mon, 14 Jan 2002, Kevin D. Kissell wrote:

> Careful, Dom.  As far as user-mode programs are concerned,
> older 64-bit MIPS designs (R4xxxx/R5xxxx/R7xxxx), one cannot
> enable 64-bit arithmetic without enabling 64-bit addressing,
> both of these functions being enabled by the Status.UX bit.
> SGI's IRIX OS allowed an execution model that provided
> 64-bit registers and math, while *simulating* a 32-bit address
> space, based on sign-extending 32-bit addresses to 64-bits.
> The user was spared doubling the footprint of all his pointers,
> but the OS still had to manage the larger page tables.

 Note that there is usually no point in using a 64D/32A mode unless you
have weird toolchain problems.  You may get a 64D/32A user program by
mapping its segments appropriately in the 31-bit address space.  Since the
MIPS user segment always starts at zero such a program won't see a
difference between a 64D/32A and a 64D/64A mode.

 Why would an OS need larger page tables?

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 20:00     ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-14 20:00 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: linux-mips

See, it's answers like this that make me skeptical and confused...

So MIPS64 denotes 64-bit data _and_ address?  Great.  But, what is the
current state of the toolchain?  I mean, what point is having the code
if the tools won't compile it properly?

I guess what I'm looking for is what I should tell someone who wants
to run MIPS Linux 64-bit with 8 gigs of RAM.

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: Jason Gunthorpe [mailto:jgg@debian.org]
> Sent: Monday, January 14, 2002 12:13 AM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: Re: MIPS64 status?
>
>
>
> On Sun, 13 Jan 2002, Matthew Dharm wrote:
>
> > As I understand it, 64-bit support is really two
> different things:  64-bit
> > data path (i.e. unsigned long long) and 64-bit addressing
> (for more than 4G
> > of RAM).
>
> I suppose you could say that. I think I saw someone post to
> this list
> that they were working on a patch to enable 64 bit
> registers with a 32 bit
> kernel.
>
> > My understanding is that "MIPS64" generally refers to a
> kernel which
> > supports a 64-bit data path, but we're still limited to
> 32-bit addressing.
> > Is that correct?
>
> The mips64 tree in CVS is one that is a 64 bit addressing
> capable kernel.
> AFAIK the linx convention is that <foo>64 refers to
> addressing (which
> probably impiles register width too :>)
>
> I'm not sure what the current state of the ELF64 MIPS toolchain is.
>
> Jason
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 20:00     ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-14 20:00 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: linux-mips

See, it's answers like this that make me skeptical and confused...

So MIPS64 denotes 64-bit data _and_ address?  Great.  But, what is the
current state of the toolchain?  I mean, what point is having the code
if the tools won't compile it properly?

I guess what I'm looking for is what I should tell someone who wants
to run MIPS Linux 64-bit with 8 gigs of RAM.

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: Jason Gunthorpe [mailto:jgg@debian.org]
> Sent: Monday, January 14, 2002 12:13 AM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: Re: MIPS64 status?
>
>
>
> On Sun, 13 Jan 2002, Matthew Dharm wrote:
>
> > As I understand it, 64-bit support is really two
> different things:  64-bit
> > data path (i.e. unsigned long long) and 64-bit addressing
> (for more than 4G
> > of RAM).
>
> I suppose you could say that. I think I saw someone post to
> this list
> that they were working on a patch to enable 64 bit
> registers with a 32 bit
> kernel.
>
> > My understanding is that "MIPS64" generally refers to a
> kernel which
> > supports a 64-bit data path, but we're still limited to
> 32-bit addressing.
> > Is that correct?
>
> The mips64 tree in CVS is one that is a 64 bit addressing
> capable kernel.
> AFAIK the linx convention is that <foo>64 refers to
> addressing (which
> probably impiles register width too :>)
>
> I'm not sure what the current state of the ELF64 MIPS toolchain is.
>
> Jason
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
  2002-01-14 20:00     ` Matthew Dharm
  (?)
@ 2002-01-14 20:42     ` Jason Gunthorpe
  2002-01-14 23:07       ` Ralf Baechle
  -1 siblings, 1 reply; 29+ messages in thread
From: Jason Gunthorpe @ 2002-01-14 20:42 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips


On Mon, 14 Jan 2002, Matthew Dharm wrote:

> So MIPS64 denotes 64-bit data _and_ address?  Great.  But, what is the
> current state of the toolchain?  I mean, what point is having the code
> if the tools won't compile it properly?

Well, working on the kernel is a good way to get the tools working. That
is how several of the Linux archs have worked in the past.

> I guess what I'm looking for is what I should tell someone who wants
> to run MIPS Linux 64-bit with 8 gigs of RAM.

I have such hardware myself. IMHO the best option is the mips64 kernel and
I hope to try it someday. But in practice I'd guess that Ralf's highmem
patch is more likely to be usuable first (?). 

Jason

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 21:17       ` Dominic Sweetman
  0 siblings, 0 replies; 29+ messages in thread
From: Dominic Sweetman @ 2002-01-14 21:17 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: Jason Gunthorpe, linux-mips


Matthew Dharm (mdharm@momenco.com) writes:

> I guess what I'm looking for is what I should tell someone who wants
> to run MIPS Linux 64-bit with 8 gigs of RAM.

"Ask Ralf".  (at least, that's the best advice for the kernel, which
he worked on at SGI).

For a compiler, you should ask Algorithmics.  We haven't tried the
64-bit configuration yet, but we've done lots of GCC variants and it's
only a program...

-- 
Dominic Sweetman
Algorithmics Ltd
The Fruit Farm, Ely Road, Chittering, CAMBS CB5 9PH, ENGLAND
phone: +44 1223 706200 / fax: +44 1223 706250 / home: +44 20 7226 0032
http://www.algor.co.uk

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 21:17       ` Dominic Sweetman
  0 siblings, 0 replies; 29+ messages in thread
From: Dominic Sweetman @ 2002-01-14 21:17 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: Jason Gunthorpe, linux-mips


Matthew Dharm (mdharm@momenco.com) writes:

> I guess what I'm looking for is what I should tell someone who wants
> to run MIPS Linux 64-bit with 8 gigs of RAM.

"Ask Ralf".  (at least, that's the best advice for the kernel, which
he worked on at SGI).

For a compiler, you should ask Algorithmics.  We haven't tried the
64-bit configuration yet, but we've done lots of GCC variants and it's
only a program...

-- 
Dominic Sweetman
Algorithmics Ltd
The Fruit Farm, Ely Road, Chittering, CAMBS CB5 9PH, ENGLAND
phone: +44 1223 706200 / fax: +44 1223 706250 / home: +44 20 7226 0032
http://www.algor.co.uk

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14  5:13 MIPS64 status? Matthew Dharm
  2002-01-14  8:13 ` Jason Gunthorpe
  2002-01-14 11:17 ` Dominic Sweetman
@ 2002-01-14 23:05 ` Ralf Baechle
  2002-01-14 23:25     ` Matthew Dharm
  2 siblings, 1 reply; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:05 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips

On Sun, Jan 13, 2002 at 09:13:23PM -0800, Matthew Dharm wrote:

> As I understand it, 64-bit support is really two different things:  64-bit
> data path (i.e. unsigned long long) and 64-bit addressing (for more than 4G
> of RAM).

Right but due to the CPU architecture of pre-MIPS64 CPUs they always come
together unless the software does funny attempts at truncating OS support
to just 32-bit.  So the 32-bit kernel gives you none of the two, the mips64
kernel both.

> My understanding is that "MIPS64" generally refers to a kernel which
> supports a 64-bit data path, but we're still limited to 32-bit addressing.
> Is that correct?

MIPS64 is MIPS's MIPS64 processor architecture, mips64 is the 64-bit kernel.
That may sound like nitpicking but it's important to understand that both
are not the same.

> I suspect that this is very much a toolchain issue, as I don't think gcc
> will generate 64-bit addressing code.

Gcc is fine; the problem are binutils, that is as and ld.  As a result of
the gcc problems we don't have a 64-bit userspace either so all software
running on 64-bit kernels is currently old 32-bit software running in
compatibility mode.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 20:42     ` Jason Gunthorpe
@ 2002-01-14 23:07       ` Ralf Baechle
  2002-01-15  0:08         ` Jason Gunthorpe
  2002-01-15 20:00         ` John Heil
  0 siblings, 2 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:07 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: Matthew Dharm, linux-mips

On Mon, Jan 14, 2002 at 01:42:22PM -0700, Jason Gunthorpe wrote:

> I have such hardware myself. IMHO the best option is the mips64 kernel and
> I hope to try it someday. But in practice I'd guess that Ralf's highmem
> patch is more likely to be usuable first (?). 

Depends if you can live with the problems of the current mips64 kernel.
If you can then it's highmem-free memory managment is certainly the way
to go.  It's also not limited to peanuts numbers of gigabytes but can
support as much memory as your can tack on a MIPS.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 21:17       ` Dominic Sweetman
  (?)
@ 2002-01-14 23:09       ` Ralf Baechle
  -1 siblings, 0 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:09 UTC (permalink / raw)
  To: Dominic Sweetman; +Cc: Matthew Dharm, Jason Gunthorpe, linux-mips

On Mon, Jan 14, 2002 at 09:17:12PM +0000, Dominic Sweetman wrote:

> > I guess what I'm looking for is what I should tell someone who wants
> > to run MIPS Linux 64-bit with 8 gigs of RAM.
> 
> "Ask Ralf".  (at least, that's the best advice for the kernel, which
> he worked on at SGI).

Tested with upto 128gb :-)

> For a compiler, you should ask Algorithmics.  We haven't tried the
> 64-bit configuration yet, but we've done lots of GCC variants and it's
> only a program...

May I have full support for N32 and N64 tomorrow after lunch, please ;-)

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 11:17 ` Dominic Sweetman
  2002-01-14 12:54     ` Kevin D. Kissell
@ 2002-01-14 23:22   ` Ralf Baechle
  2002-01-15 19:11   ` Thiemo Seufer
  2 siblings, 0 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:22 UTC (permalink / raw)
  To: Dominic Sweetman; +Cc: Matthew Dharm, linux-mips

On Mon, Jan 14, 2002 at 11:17:08AM +0000, Dominic Sweetman wrote:

> o Very large virtual address spaces, using 64-bit pointer types.

Actually I only implemented support for something like 0.5TB.  As for
supercomputing that's peanuts (Like five years ago a customer requested
SGI to increase the per process size of the address space from 1TB, the
limit of the R4000 to 16TB, the limit of R10000 class processors.)

> o C "long" (and perhaps even "int") becomes 64-bit.

We follow the MIPS ABI which uses 32-bit ints and 64-bit longs.

> In such a 64-bit Linux system, though, you might still want to be able
> to run 32-bit applications with 32-bit pointers, int and long - either
> for compatibility or economy (32-bit data types make for a smaller
> program).  SGI do this in Irix: I don't know whether the 64-bit
> Linux/MIPS systems got around to it.

Yes.  The environment provided however is slightly different.  32-bit
software on the mips64 kernel is running with UX=1 thus 64-bit instructions
are allowed.

> There are other potentially useful combinations:
> 
> o A Linux where all machine-supported integer data types are 32-bit,

I don't want to support 32-bit char and short, sorry :-)

>   but capable of addressing physical memory outside of a 4Gbyte map.
>   (In practice, you need to use this kind of system to get outside of
>   a 512Mbyte map - so it's urgent).

I'd be working on this right now if you'd not be bothering me with email ;-)

>   Ralf says he has done this: it could be done without using any
>   64-bit operations, but it might be easier with them.

There are still MIPS32 systems which don't support 64-bit operations just
may have an address space of upto 36 bits.

> o A system using 32-bit pointers and 'long' throughout, but with
>   support for 'long long' 64-bit integer data types in registers.
>   
> o A system using 64-bit addressing within the kernel, but not for
>   applications. 
> 
> However, it's unlikely to make sense to do all of them!

Correct.  We may add support for the one or other code of these models
over time.

> > I suspect that this is very much a toolchain issue, as I don't think
> > gcc will generate 64-bit addressing code.
> 
> I suspect that the generic GNU toolchains are pretty buggy when you
> switch on 64-bit MIPS operation; but it's bug-fixes which are needed,
> not wholesale new features.

Actually in the past somebody was doing paid work to get the combo
g++ + SGI as + GNU ld to work for N32.  Due to the similarity of N32 and
N64 that already brought us quite a bit closer to N64 support.  That
still leaves alot of work including plenty of gas work.

> Politics: MIPS Technologies' advocacy for their "MIPS32" instruction
> set dialect in embedded systems means there are now some quite capable
> MIPS CPUs (eg Alchemy's 500Mhz integrated CPUs) which don't have
> 64-bit datapaths or arithmetic.  So casual dependence on 64-bit
> operations should probably be avoided.

I'm doing the best to avoid that.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 12:54     ` Kevin D. Kissell
  (?)
  (?)
@ 2002-01-14 23:23     ` Ralf Baechle
  2002-01-15 13:07       ` Maciej W. Rozycki
  -1 siblings, 1 reply; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:23 UTC (permalink / raw)
  To: Kevin D. Kissell; +Cc: Dominic Sweetman, Matthew Dharm, linux-mips

On Mon, Jan 14, 2002 at 01:54:42PM +0100, Kevin D. Kissell wrote:

> The official MIPS64[tm] architecture spec from MIPS 
> Technologies also provides a bit (Status.PX) which enables
> the 64-bit data path without affecting address generation
> and translation, which removes this quirk.  Only the very
> most recent 64-bit cores and CPUs implement it, however.

And Linux doesn't use PX at all.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 23:25     ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-14 23:25 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips

Ralf --

Thanks for the info.  Too bad "MIPS64" and "mips64" sound exactly the
same on the telephone.

But, I need to be pedantic, just to be clear on a couple of
questions...

So, the "mips64" kernel can use 64-bits of address, for RAM >4G?
But, the apps running are always 32-bit?
Does this mean that any individual application can only use 4G of
memory, tho you could have several applications in physical memory
doing this? (i.e. multiple applications using 1G of RAM each, but not
swapping to disk?)
Does this mean we could map PCI memory/IO addresses above 4G and have
it work?

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: owner-linux-mips@oss.sgi.com
> [mailto:owner-linux-mips@oss.sgi.com]On Behalf Of Ralf Baechle
> Sent: Monday, January 14, 2002 3:06 PM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: Re: MIPS64 status?
>
>
> On Sun, Jan 13, 2002 at 09:13:23PM -0800, Matthew Dharm wrote:
>
> > As I understand it, 64-bit support is really two
> different things:  64-bit
> > data path (i.e. unsigned long long) and 64-bit addressing
> (for more than 4G
> > of RAM).
>
> Right but due to the CPU architecture of pre-MIPS64 CPUs
> they always come
> together unless the software does funny attempts at
> truncating OS support
> to just 32-bit.  So the 32-bit kernel gives you none of the
> two, the mips64
> kernel both.
>
> > My understanding is that "MIPS64" generally refers to a
> kernel which
> > supports a 64-bit data path, but we're still limited to
> 32-bit addressing.
> > Is that correct?
>
> MIPS64 is MIPS's MIPS64 processor architecture, mips64 is
> the 64-bit kernel.
> That may sound like nitpicking but it's important to
> understand that both
> are not the same.
>
> > I suspect that this is very much a toolchain issue, as I
> don't think gcc
> > will generate 64-bit addressing code.
>
> Gcc is fine; the problem are binutils, that is as and ld.
> As a result of
> the gcc problems we don't have a 64-bit userspace either so
> all software
> running on 64-bit kernels is currently old 32-bit software
> running in
> compatibility mode.
>
>   Ralf
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-14 23:25     ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-14 23:25 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips

Ralf --

Thanks for the info.  Too bad "MIPS64" and "mips64" sound exactly the
same on the telephone.

But, I need to be pedantic, just to be clear on a couple of
questions...

So, the "mips64" kernel can use 64-bits of address, for RAM >4G?
But, the apps running are always 32-bit?
Does this mean that any individual application can only use 4G of
memory, tho you could have several applications in physical memory
doing this? (i.e. multiple applications using 1G of RAM each, but not
swapping to disk?)
Does this mean we could map PCI memory/IO addresses above 4G and have
it work?

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: owner-linux-mips@oss.sgi.com
> [mailto:owner-linux-mips@oss.sgi.com]On Behalf Of Ralf Baechle
> Sent: Monday, January 14, 2002 3:06 PM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: Re: MIPS64 status?
>
>
> On Sun, Jan 13, 2002 at 09:13:23PM -0800, Matthew Dharm wrote:
>
> > As I understand it, 64-bit support is really two
> different things:  64-bit
> > data path (i.e. unsigned long long) and 64-bit addressing
> (for more than 4G
> > of RAM).
>
> Right but due to the CPU architecture of pre-MIPS64 CPUs
> they always come
> together unless the software does funny attempts at
> truncating OS support
> to just 32-bit.  So the 32-bit kernel gives you none of the
> two, the mips64
> kernel both.
>
> > My understanding is that "MIPS64" generally refers to a
> kernel which
> > supports a 64-bit data path, but we're still limited to
> 32-bit addressing.
> > Is that correct?
>
> MIPS64 is MIPS's MIPS64 processor architecture, mips64 is
> the 64-bit kernel.
> That may sound like nitpicking but it's important to
> understand that both
> are not the same.
>
> > I suspect that this is very much a toolchain issue, as I
> don't think gcc
> > will generate 64-bit addressing code.
>
> Gcc is fine; the problem are binutils, that is as and ld.
> As a result of
> the gcc problems we don't have a 64-bit userspace either so
> all software
> running on 64-bit kernels is currently old 32-bit software
> running in
> compatibility mode.
>
>   Ralf
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 23:25     ` Matthew Dharm
  (?)
@ 2002-01-14 23:45     ` Ralf Baechle
  -1 siblings, 0 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-14 23:45 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips

On Mon, Jan 14, 2002 at 03:25:44PM -0800, Matthew Dharm wrote:

> Thanks for the info.  Too bad "MIPS64" and "mips64" sound exactly the
> same on the telephone.
> 
> But, I need to be pedantic, just to be clear on a couple of
> questions...
> 
> So, the "mips64" kernel can use 64-bits of address, for RAM >4G?
> But, the apps running are always 32-bit?

In theory the kernel has the capability to run 64-bit applications.  In
practice that doesn't work due to the lack of 64-bit apps and stuff.

> Does this mean that any individual application can only use 4G of
> memory, tho you could have several applications in physical memory
> doing this? (i.e. multiple applications using 1G of RAM each, but not
> swapping to disk?)

In theory we don't limit the address space of 32-bit applications in 64-bit
mode so they could go and use all memory and syscalls on the 64-bit
address space also.  In practice that's just too ugly to be usable so
consider 32-bit apps on the 64-bit kernel as limited to 2gb as they are
currently.  You can however run an arbitrary number of these processes.

> Does this mean we could map PCI memory/IO addresses above 4G and have
> it work?

Sure.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
  2002-01-14 23:25     ` Matthew Dharm
  (?)
  (?)
@ 2002-01-14 23:59     ` Jason Gunthorpe
  2002-01-15  0:27         ` Matthew Dharm
  -1 siblings, 1 reply; 29+ messages in thread
From: Jason Gunthorpe @ 2002-01-14 23:59 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-mips


On Mon, 14 Jan 2002, Matthew Dharm wrote:

> Does this mean we could map PCI memory/IO addresses above 4G and have
> it work?

Ooh, don't go there :> We looked at that and actually did it then backed
it out.

The PCI spec (particuarly PCI-X) tries to make it possible, but in a
general system with PCI sockets/etc it is just is not feasible. PCI
bridges need to be located below 4G, as do the majority of devices made. 
There is also a performance hit for having device registers > 4G.

You'd definately need the mips64 kernel to do that, or use ugly wired TLB
entries with normal mips.

Jason

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 23:07       ` Ralf Baechle
@ 2002-01-15  0:08         ` Jason Gunthorpe
  2002-01-15 20:59           ` Ralf Baechle
  2002-01-15 20:00         ` John Heil
  1 sibling, 1 reply; 29+ messages in thread
From: Jason Gunthorpe @ 2002-01-15  0:08 UTC (permalink / raw)
  Cc: linux-mips


On Mon, 14 Jan 2002, Ralf Baechle wrote:

> On Mon, Jan 14, 2002 at 01:42:22PM -0700, Jason Gunthorpe wrote:
> 
> > I have such hardware myself. IMHO the best option is the mips64 kernel and
> > I hope to try it someday. But in practice I'd guess that Ralf's highmem
> > patch is more likely to be usuable first (?). 
> 
> Depends if you can live with the problems of the current mips64 kernel.
> If you can then it's highmem-free memory managment is certainly the way
> to go.  It's also not limited to peanuts numbers of gigabytes but can
> support as much memory as your can tack on a MIPS.

Yep, totally.

I thought about starting with mips64 but it was simpler to go with the
pre-existing processor support in the mips32 kernel. I'd like to patch
mips64 up to support the CPU's I have here, but not this month :>

Could someone quickly comment on how it is running? Can it boot normal 32
bit user space OK? I know with sparc64 there were (are?) a number of
problems with missing 32 bit syscall translations for some obscure
things.. 

Jason

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-15  0:27         ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-15  0:27 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: linux-mips

Hrm...

Were you actually using 64-bit addresses on the PCI bus?

My guess is that with some creative address mappings, this could be
done.  The PCI bus itself would use only 32-bit address, but the CPU
would use a base address offset into the >4G range.

Yeah, I could see how that could get ugly...

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: owner-linux-mips@oss.sgi.com
> [mailto:owner-linux-mips@oss.sgi.com]On Behalf Of Jason Gunthorpe
> Sent: Monday, January 14, 2002 4:00 PM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: RE: MIPS64 status?
>
>
>
> On Mon, 14 Jan 2002, Matthew Dharm wrote:
>
> > Does this mean we could map PCI memory/IO addresses above
> 4G and have
> > it work?
>
> Ooh, don't go there :> We looked at that and actually did
> it then backed
> it out.
>
> The PCI spec (particuarly PCI-X) tries to make it possible, but in a
> general system with PCI sockets/etc it is just is not feasible. PCI
> bridges need to be located below 4G, as do the majority of
> devices made.
> There is also a performance hit for having device registers > 4G.
>
> You'd definately need the mips64 kernel to do that, or use
> ugly wired TLB
> entries with normal mips.
>
> Jason
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* RE: MIPS64 status?
@ 2002-01-15  0:27         ` Matthew Dharm
  0 siblings, 0 replies; 29+ messages in thread
From: Matthew Dharm @ 2002-01-15  0:27 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: linux-mips

Hrm...

Were you actually using 64-bit addresses on the PCI bus?

My guess is that with some creative address mappings, this could be
done.  The PCI bus itself would use only 32-bit address, but the CPU
would use a base address offset into the >4G range.

Yeah, I could see how that could get ugly...

Matt

--
Matthew D. Dharm                            Senior Software Designer
Momentum Computer Inc.                      1815 Aston Ave.  Suite 107
(760) 431-8663 X-115                        Carlsbad, CA 92008-7310
Momentum Works For You                      www.momenco.com

> -----Original Message-----
> From: owner-linux-mips@oss.sgi.com
> [mailto:owner-linux-mips@oss.sgi.com]On Behalf Of Jason Gunthorpe
> Sent: Monday, January 14, 2002 4:00 PM
> To: Matthew Dharm
> Cc: linux-mips@oss.sgi.com
> Subject: RE: MIPS64 status?
>
>
>
> On Mon, 14 Jan 2002, Matthew Dharm wrote:
>
> > Does this mean we could map PCI memory/IO addresses above
> 4G and have
> > it work?
>
> Ooh, don't go there :> We looked at that and actually did
> it then backed
> it out.
>
> The PCI spec (particuarly PCI-X) tries to make it possible, but in a
> general system with PCI sockets/etc it is just is not feasible. PCI
> bridges need to be located below 4G, as do the majority of
> devices made.
> There is also a performance hit for having device registers > 4G.
>
> You'd definately need the mips64 kernel to do that, or use
> ugly wired TLB
> entries with normal mips.
>
> Jason
>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 23:23     ` Ralf Baechle
@ 2002-01-15 13:07       ` Maciej W. Rozycki
  0 siblings, 0 replies; 29+ messages in thread
From: Maciej W. Rozycki @ 2002-01-15 13:07 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: Kevin D. Kissell, Dominic Sweetman, Matthew Dharm, linux-mips

On Mon, 14 Jan 2002, Ralf Baechle wrote:

> > The official MIPS64[tm] architecture spec from MIPS 
> > Technologies also provides a bit (Status.PX) which enables
> > the 64-bit data path without affecting address generation
> > and translation, which removes this quirk.  Only the very
> > most recent 64-bit cores and CPUs implement it, however.
> 
> And Linux doesn't use PX at all.

 Especially as there is no real need for the bit for the standard MIPS64
TLB organization.  The functionality of the PX bit can be replaced by the
UX bit together with an appropriate mapping of segments to the 31-bit
address space.  Of course the kernel needs to handle the XTLB exception
for UX as opposed to the TLB one for PX, but for programs it doesn't
matter.

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 11:17 ` Dominic Sweetman
  2002-01-14 12:54     ` Kevin D. Kissell
  2002-01-14 23:22   ` Ralf Baechle
@ 2002-01-15 19:11   ` Thiemo Seufer
  2 siblings, 0 replies; 29+ messages in thread
From: Thiemo Seufer @ 2002-01-15 19:11 UTC (permalink / raw)
  To: linux-mips

Dominic Sweetman wrote:
[snip]
> > I suspect that this is very much a toolchain issue, as I don't think
> > gcc will generate 64-bit addressing code.

gcc does 64bit adressing, but binutils (ld/gas) do only partially yet.

> I suspect that the generic GNU toolchains are pretty buggy when you
> switch on 64-bit MIPS operation; but it's bug-fixes which are needed,
> not wholesale new features.

It needs definitely more than bug fixing. I commited some support
for n64 non-PIC to binutils CVS some time ago, but support for
n64 PIC and n32 still needs to be done.


Thiemo

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-14 23:07       ` Ralf Baechle
  2002-01-15  0:08         ` Jason Gunthorpe
@ 2002-01-15 20:00         ` John Heil
  2002-01-15 20:55           ` Ralf Baechle
  2002-01-16 18:55           ` Dominic Sweetman
  1 sibling, 2 replies; 29+ messages in thread
From: John Heil @ 2002-01-15 20:00 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: Jason Gunthorpe, Matthew Dharm, linux-mips

On Mon, 14 Jan 2002, Ralf Baechle wrote:

> Date: Mon, 14 Jan 2002 15:07:51 -0800
> From: Ralf Baechle <ralf@oss.sgi.com>
> To: Jason Gunthorpe <jgg@debian.org>
> Cc: Matthew Dharm <mdharm@momenco.com>, linux-mips@oss.sgi.com
> Subject: Re: MIPS64 status?
> 
> On Mon, Jan 14, 2002 at 01:42:22PM -0700, Jason Gunthorpe wrote:
> 
> > I have such hardware myself. IMHO the best option is the mips64 kernel and
> > I hope to try it someday. But in practice I'd guess that Ralf's highmem
> > patch is more likely to be usuable first (?). 
> 
> Depends if you can live with the problems of the current mips64 kernel.
> If you can then it's highmem-free memory managment is certainly the way
> to go.  It's also not limited to peanuts numbers of gigabytes but can
> support as much memory as your can tack on a MIPS.
> 
>   Ralf
> 
Who, if anyone, has a MIPS64 reference design board available ?
...With >4G memory capacity ?


Thanx
Johnh

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-15 20:00         ` John Heil
@ 2002-01-15 20:55           ` Ralf Baechle
  2002-01-16 18:55           ` Dominic Sweetman
  1 sibling, 0 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-15 20:55 UTC (permalink / raw)
  To: John Heil; +Cc: Jason Gunthorpe, Matthew Dharm, linux-mips

On Tue, Jan 15, 2002 at 12:00:12PM -0800, John Heil wrote:

> Who, if anyone, has a MIPS64 reference design board available ?
> ...With >4G memory capacity ?

I think such boards are currently quite rare.  2gb using latest memory
modules seems to be as much as you can get right now.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-15  0:08         ` Jason Gunthorpe
@ 2002-01-15 20:59           ` Ralf Baechle
  0 siblings, 0 replies; 29+ messages in thread
From: Ralf Baechle @ 2002-01-15 20:59 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: linux-mips

On Mon, Jan 14, 2002 at 05:08:24PM -0700, Jason Gunthorpe wrote:

> Could someone quickly comment on how it is running? Can it boot normal 32
> bit user space OK? I know with sparc64 there were (are?) a number of
> problems with missing 32 bit syscall translations for some obscure
> things.. 

Same situation for mips64.

  Ralf

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: MIPS64 status?
  2002-01-15 20:00         ` John Heil
  2002-01-15 20:55           ` Ralf Baechle
@ 2002-01-16 18:55           ` Dominic Sweetman
  1 sibling, 0 replies; 29+ messages in thread
From: Dominic Sweetman @ 2002-01-16 18:55 UTC (permalink / raw)
  To: John Heil; +Cc: Ralf Baechle, Jason Gunthorpe, Matthew Dharm, linux-mips


> Who, if anyone, has a MIPS64 reference design board available ?

Algorithmics P-6064 (http://www.algor.co.uk/algor/info/p6064.html) 

> ...With >4G memory capacity ?

A mere 2Gbytes today - we've got two DIMM slots and 1Gbyte SDRAM DIMMs
are readily available.  The 1Gbyte boards have 32 x 256Mbit chips, but
I think there may even now be boards with more chips "stacked" in
pairs.

We've got no significant addressing restrictions on the memory
controller and the existing DIMM modules still have address lines
remaining...  We can support even larger memories when and if the
DIMMs show up.

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2002-01-16 20:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-14  5:13 MIPS64 status? Matthew Dharm
2002-01-14  8:13 ` Jason Gunthorpe
2002-01-14 20:00   ` Matthew Dharm
2002-01-14 20:00     ` Matthew Dharm
2002-01-14 20:42     ` Jason Gunthorpe
2002-01-14 23:07       ` Ralf Baechle
2002-01-15  0:08         ` Jason Gunthorpe
2002-01-15 20:59           ` Ralf Baechle
2002-01-15 20:00         ` John Heil
2002-01-15 20:55           ` Ralf Baechle
2002-01-16 18:55           ` Dominic Sweetman
2002-01-14 21:17     ` Dominic Sweetman
2002-01-14 21:17       ` Dominic Sweetman
2002-01-14 23:09       ` Ralf Baechle
2002-01-14 11:17 ` Dominic Sweetman
2002-01-14 12:54   ` Kevin D. Kissell
2002-01-14 12:54     ` Kevin D. Kissell
2002-01-14 13:37     ` Maciej W. Rozycki
2002-01-14 23:23     ` Ralf Baechle
2002-01-15 13:07       ` Maciej W. Rozycki
2002-01-14 23:22   ` Ralf Baechle
2002-01-15 19:11   ` Thiemo Seufer
2002-01-14 23:05 ` Ralf Baechle
2002-01-14 23:25   ` Matthew Dharm
2002-01-14 23:25     ` Matthew Dharm
2002-01-14 23:45     ` Ralf Baechle
2002-01-14 23:59     ` Jason Gunthorpe
2002-01-15  0:27       ` Matthew Dharm
2002-01-15  0:27         ` Matthew Dharm

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.