- 19 Sep, 2002 9 commits
-
-
Andrew Morton authored
Somebody somewhere is stomping on PF_NOWARN, and page allocation failure warnings are coming out of the wrong places. So change the handling of current->flags to be: int pf_flags = current->flags; current->flags |= PF_NOWARN; ... current->flags = pf_flags; which is a generally more robust approach.
-
Andrew Morton authored
- writev currently returns -EFAULT if _any_ of the segments has an invalid address. We should only return -EFAULT if the first segment has a bad address. If some of the first segments have valid addresses we need to write them and return a partial result. - The current code only checks if the sum-of-lengths is negative. If individual segments have a negative length but the result is positive we miss that. So rework the code to detect this, and to be immune to odd wrapping situations. As a bonus, we save one pass across the iovec. - ditto for readv. The check for "does any segment have a negative length" has already been performed in do_readv_writev(), but it's basically free here, and we need to do it for generic_file_read/write anyway. This all means that the iov_length() function is unsafe because of wrap/overflow isues. It should only be used after the generic_file_read/write or do_readv_writev() checking has been performed. Its callers have been reviewed and they are OK. The code now passes LTP testing and has been QA'd by Janet's team.
-
Andrew Morton authored
A patch from Hirokazu Takahashi to speed up the new sped-up writev code. Instead of running ->prepare_write/->commit_write for each individual segment, we walk the segments between prepage and commit. So potentially much larger amounts of data are passed to commit_write(), and prepare_write() is called much less often. Added bonus: the segment walk happens inside the kmap_atomic(), so we run kmap_atomic() once per page, not once per segment. We've demonstrated a speedup of over 3x. This is writing 1024-segment iovecs where the individual segments have an average length of 24 bytes, which is a favourable case for this patch.
-
Andrew Morton authored
Silly bug which was halving swapout bandwidth: we've taken a copy of page->mapping into a local convenience variable, but forgot to update that local after adding the page to swapcache.
-
Andrew Morton authored
This was designed to be a really sterm throttling threshold: if dirty memory reaches this level then perform writeback and actually wait on it. It doesn't work. Because memory dirtiers are required to perform writeback if the amount of dirty AND writeback memory exceeds dirty_async_ratio. So kill it, and rely just on the request queues being appropriately scaled to the machine size (they are). This is basically what 2.4 does.
-
Andrew Morton authored
Bill Irwin's patch to avoid having to walk pagetables while generating /proc/stat output. It can significantly overstate the size of various mappings because it assumes that all VMAs are fully populated. But spending 100% of one of my four CPUs running top(1) is a bug. Bill says this fixes a bug, too. The `SIZE' parameter is supposed to display the amount of memory which the process would consume if it faulted everything in. But "before it only showed instantiated 3rd-level pagetables, so if something within a 4MB aligned range hadn't been faulted in it would slip past the old one".
-
Andrew Morton authored
Patch from Martin Bligh. It should only affect machines using discontigmem. "This patch is was originally from Andrea's tree (from SGI??), and has been tweaked since by both Christoph (who cleaned up all the code), and myself (who just hit it until it worked). It removes _alloc_pages, and adds all nodes to the zonelists directly, which also changes the fallback zone order to something more sensible ... instead of: "foreach (node) { foreach (zone) }" we now do something more like "foreach (zone_type) { foreach (node) }" Christoph has a more recent version that's fancier and does a couple more cleanups, but it seems to have a bug in it that I can't track down easily, so I propose we do the simple thing for now, and take the rest of the cleanups when it works ... it seems to build nicely on top of this seperately to me. Tested on 16-way NUMA-Q with discontigmem + NUMA support."
-
Andrew Morton authored
Patch from Martin Bligh. It should only affect machines using discontigmem. "This patch cleans up free_area_init stuff, and undefines mem_map and max_mapnr for discontigmem, where they were horrible kludges anyway ... We just use the lmem_maps instead, which makes much more sense. It also kills pgdat->node_start_mapnr, which is tarred with the same brush. It breaks free_area_init_core into a couple of sections, pulls the allocation of the lmem_map back into the next higher function, and passes more things via the pgdat. But that's not very interesting, the objective was to kill mem_map for discontigmem, which seems to attract bugs like flypaper. This brings any misuses to obvious compile-time errors rather than wierd oopses, which I can't help but feel is a good thing. It does break other discontigmem architectures, but in a very obvious way (they won't compile) and it's easy to fix. I think that's a small price to pay ... ;-) At some point soon I will follow up with a patch to remove free_area_init_node for the contig mem case, or at the very least rename it to something more sensible, like __free_area_init. Christoph has grander plans to kill mem_map more extensively in addition to the attatched, but I've heard nobody disagree that it should die for the discontigmem case at least. Oh, and I renamed mem_map in drivers/pcmcia/sa1100 to pc_mem_map because my tiny little brain (and cscope) find it confusing like that. Tested on 16-way NUMA-Q with discontigmem + NUMA support and on a standard PC (well, boots and appears functional). On top of 2.5.33-mm4"
-
Andrew Morton authored
The writeback code paths which walk the superblocks and inodes are getting an increasing arguments passed to them. The patch wraps those args into the new `struct writeback_control', and uses that instead. There is no functional change. The new writeback_control structure is passed down through the writeback paths in the place where the old `nr_to_write' pointer used to be. writeback_control will be used to pass new information up and down the writeback paths. Such as whether the writeback should be non-blocking, and whether queue congestion was encountered.
-
- 17 Sep, 2002 19 commits
-
-
Linus Torvalds authored
-
David S. Miller authored
Andrew removed a flush_dcache_page in his kmap_atomic generic_file_* changes. Doing that sort of corrupts data on some platforms.
-
http://linux-isdn.bkbits.net/linux-2.5.makeLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Kai Germaschewski authored
Now that all archs use the same way to generate the link script, we can handle it from the common top-level Makefile instead of the individual arch/*/Makefile's.
-
Kai Germaschewski authored
Untested, but at least it should show how to adapt the mips arch.
-
Kai Germaschewski authored
Untested, but at least it should show how to adapt the cris arch.
-
Kai Germaschewski authored
This is an untested attempt to convert ARM to preprocessing vmlinux.lds.S instead of running sed on it - This probably allows for further cleanup, but I'll leave that to _rmk_.
-
Kai Germaschewski authored
For consistency reasons, generate arch/$(ARCH)/vmlinux.lds.s from arch/$(ARCH)/vmlinux.lds.S on all archs, even those which do not need preprocessing (yet).
-
Kai Germaschewski authored
Sam Ravnborg: Yep, "if_changed_dep" uses fixdep, so a dependency to scripts is needed. Added echo_target as well, so the result file is printed as well.
-
bk://linuxconsole.bkbits.net/stableLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Jens Axboe authored
remove unused pdc202xx.h
-
Linus Torvalds authored
but makes it impossible to shut down cleanly.
-
James Simmons authored
Renames console.c and vt.c. The idea is to break these massive files into smaller ones. The main goal is to move all the high end tterminal emulation into one file. This way we can have a light weight printk without the extra weight. nice for embedded systems.
-
James Simmons authored
Removed selection.h header. It is not needed and in the future selections will be a pure userland solution. Use set_current_state instead in tty_ioctl.c.
-
James Simmons authored
-
http://linuxconsole.bkbits.net/stableJames Simmons authored
into maxwell.earthlink.net:/usr/src/console-stable
-
http://linux-ntfs.bkbits.net/ntfs-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Anton Altaparmakov authored
-
Jens Axboe authored
hpt366 pci_tbl has a cut-n-paste error, last entry should be '4' and not 15. fixes a bug where hpt366_init_one() gets passed bogus id->driver_data and thus goes way beyond hpt366_chipsets[]
-
- 16 Sep, 2002 12 commits
-
-
bk://linuxusb.bkbits.net/linus-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Linus Torvalds authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
Note the cdc-ether.c driver does NOT work properly now, someone who understands the interface mess in that driver needs to fix it up.
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
This adds the requirement that the usb-serial drivers call usb_register() and usb_unregister() themselves, instead of having the usbserial.c file do it. Step one in moving the usbserial.c code to being a "class" :)
-
Greg Kroah-Hartman authored
-