public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-26 20:24 jmerkey
  2004-08-26 20:38 ` William Lee Irwin III
  2004-08-26 21:41 ` Dave Jones
  0 siblings, 2 replies; 27+ messages in thread
From: jmerkey @ 2004-08-26 20:24 UTC (permalink / raw)
  To: William Lee Irwin III, Roland Dreier; +Cc: linux-kernel, jmerkey


Why should Linux, which supports multiple executable formats, tie itself to ELF exclusively?
I doubt I am going to need to run ORACLE or some other piggish app on my embedded
linux system, but I would like to have more kernel address space for drivers and other
appliance type features.  What do you plan to do when the driver base becomes as 
large as the one in WIndows 2000/XP and you don't have enough memory to load all 
the drivers.  Right now, iptables barfs even with 3GB of address space when you load up about a  dozen virtual network interfaces ?  Microsoft had this same problem (only at a much
sooner juncture in their platform evolution) and went to VM support in the kernel itself to increase virtual address space for kernel apps, file systems, and drivers when thye hit the 
wall.    It's coming time to start thinking about it.  

Jeff


> At some point in the past, I wrote:
> William> ELF ABI violation. "...the reserved area shall not
> William> consume more than 1GB of the address space."
> 
> On Wed, Aug 25, 2004 at 09:46:43PM -0700, Roland Dreier wrote:
> > Agreed, but I do like running with PAGE_OFFSET == 0xB0000000 on my
> > main box, which has 1 GB of RAM.  I can avoid highmem and still use
> > the last 128 MB of RAM.  It takes me about 3 seconds to edit
> > <asm/page.h> when I build a new kernel so I'm not arguing for merging
> > this, though.
> 
> Though asinine, the ABI spec is set in stone.
> 
> 
> -- wli

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-31 22:50 jmerkey
  0 siblings, 0 replies; 27+ messages in thread
From: jmerkey @ 2004-08-31 22:50 UTC (permalink / raw)
  To: Roland Dreier, Randy.Dunlap; +Cc: alan, wli, linux-kernel, jmerkey




>     Randy> It doesn't barf on me.  I added one other patch on top of
>     Randy> yours: one from Roland Dreier, for
>     Randy> arch/i386/kernel/doublefault.c [below].
> 
> BTW, I can't imagine my patch would make any difference -- it only
> affects what gets printed out right before the kernel locks up on a
> double fault.
> 
> I am running a 2.6.8.1 kernel with PAGE_OFFSET set to 0xb000000 on my
> desktop with USB mouse and keyboard (and 1 GB of RAM) with no problems.
> 
>  - R.


I'll retest on 2.6.9-rc1  At present, the Orinoco 
Wireless USB Adapter does lock 
up my system when I enable 3BG kernel space.  
1 GB and 2 GB kernel address settings
seem to work OK.

Jeff

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-30  5:56 jmerkey
  2004-08-30 18:10 ` Randy.Dunlap
  0 siblings, 1 reply; 27+ messages in thread
From: jmerkey @ 2004-08-30  5:56 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: alan, wli, roland, linux-kernel, jmerkey





> What kernel version?  I can't even find usb_read_device() in 2.6.9-rc1.
> 
> BTW, as someone else requested, please teach your mail client to wrap
> lines around column 70-72.  Thanks.
> 
> ~Randy

linux-2.6.8.1.tar.gz

static ssize_t usb_device_read(struct file *file, 
                                                         char __user *buf, 
                                                         size_t nbytes, 
                                                         loff_t *ppos)
{
        struct list_head *buslist;
        struct usb_bus *bus;
        ssize_t ret, total_written = 0;
        loff_t skip_bytes = *ppos;
                                                                                
        if (*ppos < 0)
                return -EINVAL;
        if (nbytes <= 0)
                return 0;
        if (!access_ok(VERIFY_WRITE, buf, nbytes))
                return -EFAULT;
                                                                                
        /* enumerate busses */
        down (&usb_bus_list_lock);
        for (buslist = usb_bus_list.next; 
               buslist != &usb_bus_list; 
               buslist = buslist->next) {
                /* print devices for this bus */
                bus = list_entry(buslist, struct usb_bus, 
                                             bus_list);
                /* print devices for this bus */
                bus = list_entry(buslist, struct usb_bus, 
                                             bus_list);
                                                                                
                /* recurse through all children of the root hub */
                if (!bus->root_hub)
                        continue;

// IT BARFS RIGHT HERE -->
                down(&bus->root_hub->serialize);

Jeff

P.S.  I am using my comcast account which
is not as good as MUTT -- line wrap settings
since it is web based.  
drdos.com gets rejected
so I am typing less characters/line. :-)

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-30  4:01 jmerkey
  2004-08-30  4:35 ` Randy.Dunlap
  0 siblings, 1 reply; 27+ messages in thread
From: jmerkey @ 2004-08-30  4:01 UTC (permalink / raw)
  To: Alan Cox, William Lee Irwin III
  Cc: Roland Dreier, Linux Kernel Mailing List, jmerkey




> On Sul, 2004-08-29 at 17:42, William Lee Irwin III wrote:

> Ok so I can compile with a.out support. End of problem, that makes the
> patch useful and "spec compliant", although the spec compliance is
> irrelevant anyway. The spec doesn't determine what Linux is it's a
> useful reference for normality. Special cases are special cases and you
> harm the system by seeking to stop stuff that works purely for pieces of
> paper.
> 

Amen.  USB 2.0 orinoco wireless drivers seems to have problems when user space
is set to 1GB.  Works grat with 2GB ad 3GB user space settings.  Problem occurs during
any acces to usb_read_device().  This doesn't look like a ABI problem, looks like 
a problem with the USB subsystem.  The serialize semaphore gets stuck for some
reason. 

On the other topic, ABI compliance sounds a little restrictive since this is after all, an 
open source OS.  Most apps get recompiled and I always download open source 
components for Linux.  

:-)

Jeff

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-26 23:47 linux
  0 siblings, 0 replies; 27+ messages in thread
From: linux @ 2004-08-26 23:47 UTC (permalink / raw)
  To: linux-kernel

>From MAILER-DAEMON Thu Aug 26 08:51:34 2004
Date: 26 Aug 2004 08:51:34 -0000
From: MAILER-DAEMON@horizon.com
To: linux@horizon.com
Subject: failure notice

This is an automated response from the e-mail delivery system at
horizon.com.  Your mail could not be delivered to one or more recipients.
This is a permanent error, so the message is being returned to you as
undeliverable.  The detailed error message is at the end of this text.
	
The most common reason that mail is not deliverable is that the specified
e-mail address does not exist.  horizon.com is Science Horizons, Inc.,
makers of seismic data acquisition equipment, with offices in Florida
and Missouri, USA.  We sometimes receive e-mail that is intended for a
different company entirely.  The most common are:
	- Horizon Airlines, horizonair.com
	- Horizon Organic Dairy, horizonorganic.com
	- Horizon Staffing Services, horizonstaff.com
	- Verizon Wireless, verizon.com
but there are many other companies with the word "horizon" in their name.
	
	
Please note that this response IS A RECORDING.	No human being has seen
your e-mail.  The header From: line of MAILER-DAEMON is the conventional
name for the source of such messages; it does not actually exist,
and mail to it is not accepted or read.  (The envelope sender, where
automated delivery messages are to be delivered, is the null address
"<>", as required by RFC 2821 section 6.1 for such bounce messages.)

If you wish to contact a human, the correct e-mail address is "postmaster"
(at whatever domain is of interest), as specified and required by RFC
2821 section 4.5.1.


The address to which your e-mail could not be delivered, and the specific
reason why, is:

<linux-kerne@vger.kernel.org>:
12.107.209.244 does not like recipient.
Remote host said: 554 Hi [192.35.100.1], 5.0.0 unresolvable address: <linux-kerne@vger.kernel.org>; nosuchuser; linux-kerne@vger.kernel.org
Giving up on 12.107.209.244.

--- Below this line is a copy of the message.

Return-Path: <linux@horizon.com>
Received: (qmail 22885 invoked by uid 1000); 26 Aug 2004 08:51:02 -0000
Date: 26 Aug 2004 08:51:02 -0000
Message-ID: <20040826085102.22884.qmail@science.horizon.com>
From: linux@horizon.com
To: linux-kerne@vger.kernel.org
Subject: Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
Cc: 

William Lee Irwin III wrote:
> ELF ABI violation. "...the reserved area shall not consume more than
> 1GB of the address space."

and in another message:

> Though asinine, the ABI spec is set in stone.

So document that in Kconfig and violate away.

The point is that the vast majority of programs don't care.
Any program that uses a shared library can't depend on the exact size of
the address space that will be left to it.

I'm very dubious about a 1 GB user-land/3 GB kernel patch, but the
0xb0000000 patch (2.75/1.25) is damn useful to avoid HIGHMEM on 1 GB
RAM machines.  PAE requires the split to be on a 1 GB boundary, but
if you're using it to avoid highmem entirely, you're not running
PAE.  And normal page tables only require 4 MB granularity.

Ryan Cumming wrote:
> And at least one app (valgrind) chokes with as little as 1.25G of reserved 
> space.

You can mention that in the help, too.  But it's probably that valgrind
tries to put itself up there and present the debuged application with
the illusion of a smaller machine.  And to the extent that this works,
the debugged program doesn't care about the split, which actually proves
the point.

Valgrind can probably be hacked to cope fairly easily.

^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-26 21:08 jmerkey
  2004-08-26 21:43 ` William Lee Irwin III
  0 siblings, 1 reply; 27+ messages in thread
From: jmerkey @ 2004-08-26 21:08 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: Roland Dreier, linux-kernel, jmerkey




> You're years late to this game. It's been thought about and the
> consensus (which I disagreed with) was to reject virtualspace pressure
> related changes of this kind for 32-bit platforms in favor of refusing
> to support 32-bit platforms and/or workloads requiring them.
> 

This has nothing to do with only having 1GB of kernel address 
space and not enough virtual space to load a large swath of drivers
or support modules loading reentrantly.  It's a little difficult to quantify
 how much kernel address space will be needed when you don't
know if a full configuration will fit into it.  The fact people use this 
patch at all is **EVIDENCE THAT THERE ALREADY IS A PROBLEM**
with limiting kernel address space to 1GB.  And who the hell cares about 
a mouldy, antiquated ABI spec modeled after 1970 Unix technology anyway?  It 
should be another option for executable formats.   All this ABI compatibility huey 
is some Intel/SCO pipe dream for supporting applications across multiple Unix 
platforms anyway.  If it doesn't run on Linux, who the hell cares?

:-)

Jeff

^ permalink raw reply	[flat|nested] 27+ messages in thread
* 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM)
@ 2004-08-26  4:21 jmerkey
  2004-08-26  4:33 ` William Lee Irwin III
                   ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: jmerkey @ 2004-08-26  4:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: jmerkey


That incredibly useful patch for 2.4.X that Andrea wrote that splits the kernel user space 
into 1GB/2GB/3GB sections  I ported to 2.6.8.1 and posted it to:

ftp.kernel.org:/pub/linux/kernel/people/jmerkey/patches/linux-2.6.8.1-highmem-split-08-25-04.patch

I was not able to located a 2.6.8 version of this patch so I ported one.  I apologize in advance
if I replicated anyone elses work.

Using HIGHMEM (aka.  the extended Linux TLB reloading hits/second test) is not optimal for embedded systems and appliance versions of Linux we use so this is submitted.  I'll maintain
this patch (and keep it working) for folks who need it.

Would be nice to have in the kernel for appliance Linux.

** I CERTIFY THAT THIS CODE DOES NOT CONTAIN ANY INTELECTUAL PROPERTY 
OF ANYONE OTHER THAN THE ORIGINAL LINUX CONTRIBUTORS THE FILES
WERE DERIVED FROM. ***

Jeff V. Merkey


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

end of thread, other threads:[~2004-09-27 14:55 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-26 20:24 1GB/2GB/3GB User Space Splitting Patch 2.6.8.1 (PSEUDO SPAM) jmerkey
2004-08-26 20:38 ` William Lee Irwin III
2004-08-26 21:41 ` Dave Jones
  -- strict thread matches above, loose matches on Subject: below --
2004-08-31 22:50 jmerkey
2004-08-30  5:56 jmerkey
2004-08-30 18:10 ` Randy.Dunlap
2004-08-30 18:28   ` Roland Dreier
2004-09-22 18:52   ` Timothy Miller
2004-09-22 18:51     ` Roland Dreier
2004-09-22 20:22       ` Timothy Miller
2004-09-27 14:55         ` Roland Dreier
2004-08-30  4:01 jmerkey
2004-08-30  4:35 ` Randy.Dunlap
2004-08-26 23:47 linux
2004-08-26 21:08 jmerkey
2004-08-26 21:43 ` William Lee Irwin III
2004-08-26  4:21 jmerkey
2004-08-26  4:33 ` William Lee Irwin III
2004-08-26  4:46   ` Roland Dreier
2004-08-26  4:49     ` William Lee Irwin III
2004-08-26  8:40       ` Ryan Cumming
2004-08-29 12:48       ` Alan Cox
2004-08-29 16:42         ` William Lee Irwin III
2004-08-29 15:45           ` Alan Cox
2004-08-29 17:00             ` William Lee Irwin III
2004-08-26  4:38 ` Martin J. Bligh
2004-08-26  4:42 ` Roland Dreier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox