Subject: RE: how can kernel space expand to >1GB?
To: 'Stephan Uphoff' <ups@stups.com>
From: Ming Lei <mlei@Brocade.COM>
List: tech-kern
Date: 07/31/2003 17:15:15
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_001_01C357C1.FB88B150
Content-Type: text/plain
thanks all. think remaping work is expensive though.
-----Original Message-----
From: Stephan Uphoff [mailto:ups@stups.com]
Sent: Thursday, July 31, 2003 5:08 PM
To: Ming Lei
Cc: 'Jonathan Stone'; Jason Thorpe; tech-kern@NetBSD.org; ups@stups.com
Subject: Re: how can kernel space expand to >1GB?
Ming Lei wrote:
> netbsd does have an config option to split kernel/user space to 1G/3G as
> linux does. This option exists for every platform.
>
> Jason, sorry that I didnt make myself clear in the previous emails. Let's
> get an example, say I have kernel subsystem D(D is not an user app!) needs
> to use *lots of memory* and I enable the code to use all the kernel memory
> that I can grab. Do you think D has the limit of how much memory it can
use?
>
> I think D would first reach the limit posted by kernel 1GB virtual memory
> restriction. When all the kernel virtual addess(1GB) are exhausted, and if
D
> wants even more memory(see there are still some phys memory left), how
does
> kernel do?
>
> This is basically my question.
>
> Thanks,
> Ming
NetBSD does not linearly map physical space into the kernel virtual space.
You can however allocate purely virtual kernel space and use it to map/unmap
arbitrary physical pages later.
Think of it as always using HIGHMEM.
Stephan
------_=_NextPart_001_01C357C1.FB88B150
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: how can kernel space expand to >1GB?</TITLE>
</HEAD>
<BODY>
<BR>
<P><FONT SIZE=2>thanks all. think remaping work is expensive though.</FONT>
</P>
<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: Stephan Uphoff [<A HREF="mailto:ups@stups.com">mailto:ups@stups.com</A>]</FONT>
<BR><FONT SIZE=2>Sent: Thursday, July 31, 2003 5:08 PM</FONT>
<BR><FONT SIZE=2>To: Ming Lei</FONT>
<BR><FONT SIZE=2>Cc: 'Jonathan Stone'; Jason Thorpe; tech-kern@NetBSD.org; ups@stups.com</FONT>
<BR><FONT SIZE=2>Subject: Re: how can kernel space expand to >1GB?</FONT>
</P>
<BR>
<P><FONT SIZE=2>Ming Lei wrote:</FONT>
<BR><FONT SIZE=2>> netbsd does have an config option to split kernel/user space to 1G/3G as</FONT>
<BR><FONT SIZE=2>> linux does. This option exists for every platform.</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Jason, sorry that I didnt make myself clear in the previous emails. Let's</FONT>
<BR><FONT SIZE=2>> get an example, say I have kernel subsystem D(D is not an user app!) needs</FONT>
<BR><FONT SIZE=2>> to use *lots of memory* and I enable the code to use all the kernel memory</FONT>
<BR><FONT SIZE=2>> that I can grab. Do you think D has the limit of how much memory it can use?</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> I think D would first reach the limit posted by kernel 1GB virtual memory</FONT>
<BR><FONT SIZE=2>> restriction. When all the kernel virtual addess(1GB) are exhausted, and if D</FONT>
<BR><FONT SIZE=2>> wants even more memory(see there are still some phys memory left), how does</FONT>
<BR><FONT SIZE=2>> kernel do?</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> This is basically my question.</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Thanks,</FONT>
<BR><FONT SIZE=2>> Ming</FONT>
</P>
<BR>
<P><FONT SIZE=2>NetBSD does not linearly map physical space into the kernel virtual space.</FONT>
<BR><FONT SIZE=2>You can however allocate purely virtual kernel space and use it to map/unmap</FONT>
<BR><FONT SIZE=2>arbitrary physical pages later.</FONT>
<BR><FONT SIZE=2>Think of it as always using HIGHMEM.</FONT>
</P>
<P> <FONT SIZE=2>Stephan</FONT>
<BR><FONT SIZE=2> </FONT>
</P>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>
------_=_NextPart_001_01C357C1.FB88B150--